Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
Date: 06-18-2008
Initial Package Version: 5.6
Origin: Upstream
Upstream Status: Applied
Description: This is a branch update for NCurses-5.6, and should be
             rechecked periodically. This patch covers up to 5.6-20080614.

diff -Naur ncurses-5.6.orig/Ada95/gen/Makefile.in ncurses-5.6/Ada95/gen/Makefile.in
--- ncurses-5.6.orig/Ada95/gen/Makefile.in	2006-12-17 11:53:33.000000000 -0500
+++ ncurses-5.6/Ada95/gen/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -28,7 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  $Id: Makefile.in,v 1.51 2006/12/17 16:53:33 tom Exp $
+#  $Id: Makefile.in,v 1.60 2007/09/15 17:55:33 tom Exp $
 #
 .SUFFIXES:
 
@@ -42,10 +42,13 @@
 srcdir		= @srcdir@
 prefix		= @prefix@
 exec_prefix	= @exec_prefix@
+bindir		= @bindir@
+
 ADA_INCLUDE	= $(DESTDIR)@ADA_INCLUDE@
 ADA_OBJECTS	= $(DESTDIR)@ADA_OBJECTS@
 
 INSTALL		= @INSTALL@
+INSTALL_PROG	= @INSTALL_PROGRAM@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AWK		= @AWK@
@@ -78,6 +81,9 @@
 M4		= m4
 M4FLAGS		=
 
+ADACURSES_CONFIG = adacurses-config
+
+WRAPPER		= sh $(top_srcdir)/misc/shlib
 GENERATE	= ./gen$x '@DFT_ARG_SUFFIX@'
 DEL_ADAMODE	= sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
 
@@ -92,17 +98,18 @@
 
 GEN_FILES0      = Base_Defs
 
-GEN_FILES1      = Key_Definitions              		\
-		  Old_Keys                     		\
-		  Character_Attribute_Set_Rep  		\
+GEN_FILES1      = ACS_Map                      		\
 		  AC_Rep                       		\
+		  Base_Defs			        \
+		  Character_Attribute_Set_Rep  		\
 		  Color_Defs                   		\
-		  ACS_Map                      		\
+		  Key_Definitions              		\
 		  Linker_Options               		\
-		  Base_Defs			        \
-		  Window_Offsets                        \
+		  Old_Keys                     		\
+		  Public_Variables                      \
+		  Trace_Defs				\
 		  Version_Info				\
-		  Trace_Defs
+		  Window_Offsets
 
 GEN_FILES2      = Menu_Opt_Rep        		    	\
 		  Menu_Base_Defs               		\
@@ -123,6 +130,7 @@
 		  Eti_Defs
 
 GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads         			\
+		  $(ADA_SRCDIR)/$(ABASE).adb         			\
 	          $(ADA_SRCDIR)/$(ABASE)-aux.ads   			\
 	          $(ADA_SRCDIR)/$(ABASE)-trace.ads   			\
 	          $(ADA_SRCDIR)/$(ABASE)-menus.ads   			\
@@ -137,6 +145,7 @@
 	          $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
 
 GEN_SRC		= $(srcdir)/$(ABASE).ads.m4				\
+		  $(srcdir)/$(ABASE).adb.m4				\
 	          $(srcdir)/$(ABASE)-aux.ads.m4 	  		\
 	          $(srcdir)/$(ABASE)-trace.ads.m4 	  		\
 	          $(srcdir)/$(ABASE)-menus.ads.m4 	  		\
@@ -159,7 +168,7 @@
 
 $(ADA_INCLUDE) \
 $(ADA_OBJECTS) :
-	$(top_srcdir)/mkinstalldirs $@
+	sh $(top_srcdir)/mkdirs.sh $@
 
 install \
 install.libs :: $(ADA_INCLUDE)
@@ -177,6 +186,10 @@
 	@$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
 	@-chmod u+x $(ADA_SRCDIR)/*.ali
 
+install \
+install.libs :: $(DESTDIR)$(bindir) adacurses-config
+	$(INSTALL_PROG) adacurses-config $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
+
 uninstall \
 uninstall.libs ::
 	@echo removing package $(ALIB) from $(ADA_INCLUDE)
@@ -187,93 +200,106 @@
 	@echo removing package $(ALIB) from $(ADA_OBJECTS)
 	-@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
 
+uninstall \
+uninstall.libs ::
+	-rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
+
 gen$x:	gen.o
 	@ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
 
 gen.o:	$(srcdir)/gen.c
 	$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
-
+################################################################################
 Character_Attribute_Set_Rep: gen$x
-	$(GENERATE) B A >$@
+	$(WRAPPER) "$(GENERATE) B A" >$@
 
 Base_Defs: gen$x
-	$(GENERATE) B B >$@
+	$(WRAPPER) "$(GENERATE) B B" >$@
 
 Color_Defs: gen$x
-	$(GENERATE) B C >$@
+	$(WRAPPER) "$(GENERATE) B C" >$@
+
+Window_Offsets: gen$x
+	$(WRAPPER) "$(GENERATE) B D" >$@
 
 Key_Definitions: gen$x
-	$(GENERATE) B K >$@
+	$(WRAPPER) "$(GENERATE) B K" >$@
 
-Old_Keys: gen$x
-	$(GENERATE) B O >$@
+Linker_Options: gen$x
+	$(WRAPPER) "$(GENERATE) B L" >$@
 
 ACS_Map: gen$x
-	$(GENERATE) B M >$@
+	$(WRAPPER) "$(GENERATE) B M" >$@
 
-AC_Rep: gen$x
-	$(GENERATE) B R >$@
+Old_Keys: gen$x
+	$(WRAPPER) "$(GENERATE) B O" >$@
 
-Linker_Options: gen$x
-	$(GENERATE) B L >$@
+Public_Variables: gen$x
+	$(WRAPPER) "$(GENERATE) B P" >$@
 
-Version_Info: gen$x
-	$(GENERATE) B V >$@
+AC_Rep: gen$x
+	$(WRAPPER) "$(GENERATE) B R" >$@
 
-Window_Offsets: gen$x
-	$(GENERATE) B D >$@
+Version_Info: gen$x
+	$(WRAPPER) "$(GENERATE) B V" >$@
 
 Trace_Defs: gen$x
-	$(GENERATE) B T >$@
-
+	$(WRAPPER) "$(GENERATE) B T" >$@
+################################################################################
 Menu_Opt_Rep: gen$x
-	$(GENERATE) M R >$@
+	$(WRAPPER) "$(GENERATE) M R" >$@
 
 Menu_Base_Defs: gen$x
-	$(GENERATE) M B >$@
+	$(WRAPPER) "$(GENERATE) M B" >$@
 
 Menu_Linker_Options: gen$x
-	$(GENERATE) M L >$@
+	$(WRAPPER) "$(GENERATE) M L" >$@
 
 Item_Rep: gen$x
-	$(GENERATE) M I >$@
-
+	$(WRAPPER) "$(GENERATE) M I" >$@
+################################################################################
 Form_Opt_Rep: gen$x
-	$(GENERATE) F R >$@
+	$(WRAPPER) "$(GENERATE) F R" >$@
 
 Form_Base_Defs: gen$x
-	$(GENERATE) F B >$@
+	$(WRAPPER) "$(GENERATE) F B" >$@
 
 Form_Linker_Options: gen$x
-	$(GENERATE) F L >$@
+	$(WRAPPER) "$(GENERATE) F L" >$@
 
 Field_Rep: gen$x
-	$(GENERATE) F I >$@
-
+	$(WRAPPER) "$(GENERATE) F I" >$@
+################################################################################
 Mouse_Base_Defs: gen$x
-	$(GENERATE) P B >$@
+	$(WRAPPER) "$(GENERATE) P B" >$@
 
 Mouse_Event_Rep: gen$x
-	$(GENERATE) P M >$@
+	$(WRAPPER) "$(GENERATE) P M" >$@
 
 Mouse_Events: gen$x
-	$(GENERATE) B E >$@
+	$(WRAPPER) "$(GENERATE) B E" >$@
 
 Panel_Linker_Options: gen$x
-	$(GENERATE) P L >$@
+	$(WRAPPER) "$(GENERATE) P L" >$@
 
 Chtype_Def: gen$x
-	$(GENERATE) E C >$@
+	$(WRAPPER) "$(GENERATE) E C" >$@
 
 Eti_Defs: gen$x
-	$(GENERATE) E E >$@
-
+	$(WRAPPER) "$(GENERATE) E E" >$@
+################################################################################
 $(ADA_SRCDIR)/$(ABASE).ads: 	$(srcdir)/$(ABASE).ads.m4 \
 				$(GEN_FILES1) $(srcdir)/normal.m4
 	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
 	$(srcdir)/$(ABASE).ads.m4 |\
 	$(DEL_ADAMODE) >$@
 
+$(ADA_SRCDIR)/$(ABASE).adb: 	$(srcdir)/$(ABASE).adb.m4 \
+				$(GEN_FILES1) $(srcdir)/normal.m4
+	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+	$(srcdir)/$(ABASE).adb.m4 |\
+	$(DEL_ADAMODE) >$@
+
 $(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
 				$(GEN_FILES5) $(srcdir)/normal.m4
 	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
@@ -357,8 +383,8 @@
 tags:
 	ctags *.[ch]
 
-TAGS:
-	etags *.[ch]
+@MAKE_UPPER_TAGS@TAGS:
+@MAKE_UPPER_TAGS@	etags *.[ch]
 
 mostlyclean ::
 	-rm -f a.out core gen$x *.o
@@ -372,7 +398,8 @@
 	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
 
 distclean :: clean
-	rm -f Makefile
+	-rm -f adacurses-config
+	-rm -f Makefile
 
 realclean :: distclean
 
@@ -408,9 +435,14 @@
 	@mkdir -p $(HTML_DIR)
 	cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
 	ln -sf ../src/*.ali .
-	for f in $(GEN_SRC); do \
+	@echo "Filtering generated files"
+	@for f in $(GEN_SRC); do \
+	   h=`basename $$f` ;\
 	   g=`basename $$f .ads.m4` ;\
-	   $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
+	   if test "$$g" != "$$h" ; then \
+	      $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
+	      echo "... $$g.ads" ;\
+	   fi \
 	done
 	@-rm -f $(HTML_DIR)/$(ALIB)*.htm*
 	$(GNATHTML) -d -f $(ALIB)*.ads
@@ -423,7 +455,7 @@
 	   sed -e 's/3X/3x/g' |\
 	   sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
 	   sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
-           mv $$a.tmp $$f ;\
+	   mv $$a.tmp $$f ;\
 	done
 	@rm -f *.ad[sb] *.ali *.tmp
 	@for f in funcs.htm main.htm ; do \
diff -Naur ncurses-5.6.orig/Ada95/gen/adacurses-config.in ncurses-5.6/Ada95/gen/adacurses-config.in
--- ncurses-5.6.orig/Ada95/gen/adacurses-config.in	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/Ada95/gen/adacurses-config.in	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,35 @@
+#! /bin/sh
+# $Id: adacurses-config.in,v 1.2 2007/04/07 21:06:50 tom Exp $
+#
+# This script will return the option to add to `gnatmake' for using
+# AdaCurses.
+#
+
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+libdir="@libdir@"
+
+VERSION="@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@"
+
+CFLAGS="-I$libdir/adacurses -L$libdir/adacurses"
+LIBS="-L$prefix/lib -lAdaCurses"
+
+case "x$1" in
+    x--version)
+        echo AdaCurses $VERSION
+        ;;
+    x--cflags)
+        echo $CFLAGS
+        ;;
+    x--libs)
+        echo $LIBS
+        ;;
+    x)
+    	# if no parameter is given, give what gnatmake needs
+        echo $CFLAGS -largs $LIBS
+        ;;
+    *)
+        echo 'Usage: adacurses-config [--version | --cflags | --libs]' >&2
+        exit 1
+        ;;
+esac
diff -Naur ncurses-5.6.orig/Ada95/gen/gen.c ncurses-5.6/Ada95/gen/gen.c
--- ncurses-5.6.orig/Ada95/gen/gen.c	2005-01-22 12:03:48.000000000 -0500
+++ ncurses-5.6/Ada95/gen/gen.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 /*
     Version Control
-    $Id: gen.c,v 1.40 2005/01/22 17:03:48 tom Exp $
+    $Id: gen.c,v 1.48 2007/05/05 17:24:36 tom Exp $
   --------------------------------------------------------------------------*/
 /*
   This program generates various record structures and constants from the
@@ -41,6 +41,8 @@
   to produce the real source.
   */
 
+#include <ncurses_cfg.h>
+
 #include <stdlib.h>
 #include <stddef.h>
 #include <string.h>
@@ -771,6 +773,23 @@
 static void
 gen_acs(void)
 {
+  printf("   type C_ACS_Map is array (Character'Val (0) .. Character'Val (127))\n");
+  printf("        of Attributed_Character;\n");
+#if USE_REENTRANT || BROKEN_LINKER
+  printf("   type C_ACS_Ptr is access C_ACS_Map;\n");
+  printf("   function ACS_Map return C_ACS_Ptr;\n");
+  printf("   pragma Import (C, ACS_Map, \"_nc_acs_map\");\n");
+#else
+  printf("   ACS_Map : C_ACS_Map;\n");
+  printf("   pragma Import (C, ACS_Map, \"acs_map\");\n");
+#endif
+  printf("   --\n");
+  printf("   --\n");
+  printf("   --  Constants for several characters from the Alternate Character Set\n");
+  printf("   --  You must use these constants as indices into the ACS_Map array\n");
+  printf("   --  to get the corresponding attributed character at runtime.\n");
+  printf("   --\n");
+
 #ifdef ACS_ULCORNER
   acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
 #endif
@@ -877,8 +896,7 @@
    printf("   %-25s : constant Event_Mask := 8#%011lo#;\n", \
           #name, name)
 
-static
-void
+static void
 gen_mouse_events(void)
 {
   mmask_t all1 = 0;
@@ -1004,6 +1022,56 @@
   GEN_EVENT(BUTTON4_EVENTS, all4);
 }
 
+static void
+wrap_one_var(const char *c_var,
+	     const char *c_type,
+	     const char *ada_func,
+	     const char *ada_type)
+{
+#if USE_REENTRANT
+  /* must wrap variables */
+  printf("\n");
+  printf("   function %s return %s\n", ada_func, ada_type);
+  printf("   is\n");
+  printf("      function Result return %s;\n", c_type);
+  printf("      pragma Import (C, Result, \"_nc_%s\");\n", c_var);
+  printf("   begin\n");
+  if (strcmp(c_type, ada_type))
+    printf("      return %s (Result);\n", ada_type);
+  else
+    printf("      return Result;\n");
+  printf("   end %s;\n", ada_func);
+#else
+  /* global variables are really global */
+  printf("\n");
+  printf("   function %s return %s\n", ada_func, ada_type);
+  printf("   is\n");
+  printf("      Result : %s;\n", c_type);
+  printf("      pragma Import (C, Result, \"%s\");\n", c_var);
+  printf("   begin\n");
+  if (strcmp(c_type, ada_type))
+    printf("      return %s (Result);\n", ada_type);
+  else
+    printf("      return Result;\n");
+  printf("   end %s;\n", ada_func);
+#endif
+}
+
+#define GEN_PUBLIC_VAR(c_var, c_type, ada_func, ada_type) \
+	wrap_one_var(#c_var, #c_type, #ada_func, #ada_type)
+
+static void
+gen_public_vars(void)
+{
+  GEN_PUBLIC_VAR(stdscr, Window, Standard_Window, Window);
+  GEN_PUBLIC_VAR(curscr, Window, Current_Window, Window);
+  GEN_PUBLIC_VAR(LINES, C_Int, Lines, Line_Count);
+  GEN_PUBLIC_VAR(COLS, C_Int, Columns, Column_Count);
+  GEN_PUBLIC_VAR(TABSIZE, C_Int, Tab_Size, Natural);
+  GEN_PUBLIC_VAR(COLORS, C_Int, Number_Of_Colors, Natural);
+  GEN_PUBLIC_VAR(COLOR_PAIRS, C_Int, Number_Of_Color_Pairs, Natural);
+}
+
 /*
  * Output some comment lines indicating that the file is generated.
  * The name parameter is the name of the facility to be used in
@@ -1178,70 +1246,21 @@
   return strlen(buf);
 }
 
-#define GEN_OFFSET(member,itype)                                    \
-  if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) {                \
-    o = offsetof(WINDOW, member);                                   \
-    if ((o%sizeof(itype) == 0)) {                                   \
-       printf("   Offset%-*s : constant Natural := %2ld; --  %s\n", \
-              12, #member, (long)(o/sizeof(itype)),#itype);         \
-    }                                                               \
-  }
-
 static void
 gen_offsets(void)
 {
-  long o;
   const char *s_bool = "";
 
-  GEN_OFFSET(_maxy, short);
-  GEN_OFFSET(_maxx, short);
-  GEN_OFFSET(_begy, short);
-  GEN_OFFSET(_begx, short);
-  GEN_OFFSET(_cury, short);
-  GEN_OFFSET(_curx, short);
-  GEN_OFFSET(_yoffset, short);
-  GEN_OFFSET(_pary, int);
-  GEN_OFFSET(_parx, int);
   if (sizeof(bool) == sizeof(char))
     {
-      GEN_OFFSET(_notimeout, char);
-      GEN_OFFSET(_clear, char);
-      GEN_OFFSET(_leaveok, char);
-      GEN_OFFSET(_scroll, char);
-      GEN_OFFSET(_idlok, char);
-      GEN_OFFSET(_idcok, char);
-      GEN_OFFSET(_immed, char);
-      GEN_OFFSET(_sync, char);
-      GEN_OFFSET(_use_keypad, char);
-
       s_bool = "char";
     }
   else if (sizeof(bool) == sizeof(short))
     {
-      GEN_OFFSET(_notimeout, short);
-      GEN_OFFSET(_clear, short);
-      GEN_OFFSET(_leaveok, short);
-      GEN_OFFSET(_scroll, short);
-      GEN_OFFSET(_idlok, short);
-      GEN_OFFSET(_idcok, short);
-      GEN_OFFSET(_immed, short);
-      GEN_OFFSET(_sync, short);
-      GEN_OFFSET(_use_keypad, short);
-
       s_bool = "short";
     }
   else if (sizeof(bool) == sizeof(int))
     {
-      GEN_OFFSET(_notimeout, int);
-      GEN_OFFSET(_clear, int);
-      GEN_OFFSET(_leaveok, int);
-      GEN_OFFSET(_scroll, int);
-      GEN_OFFSET(_idlok, int);
-      GEN_OFFSET(_idcok, int);
-      GEN_OFFSET(_immed, int);
-      GEN_OFFSET(_sync, int);
-      GEN_OFFSET(_use_keypad, int);
-
       s_bool = "int";
     }
   printf("   Sizeof%-*s : constant Natural := %2ld; --  %s\n",
@@ -1291,9 +1310,6 @@
 	case 'A':		/* chtype translation into Ada95 record type */
 	  gen_attr_set("Character_Attribute_Set");
 	  break;
-	case 'K':		/* translation of keycodes */
-	  gen_keydefs(0);
-	  break;
 	case 'B':		/* write some initial comment lines */
 	  basedefs();
 	  break;
@@ -1306,24 +1322,30 @@
 	case 'E':		/* generate Mouse Event codes */
 	  gen_mouse_events();
 	  break;
-	case 'M':		/* generate constants for the ACS characters */
-	  gen_acs();
+	case 'K':		/* translation of keycodes */
+	  gen_keydefs(0);
 	  break;
 	case 'L':		/* generate the Linker_Options pragma */
 	  gen_linkopts();
 	  break;
+	case 'M':		/* generate constants for the ACS characters */
+	  gen_acs();
+	  break;
 	case 'O':		/* generate definitions of the old key code names */
 	  gen_keydefs(1);
 	  break;
+	case 'P':		/* generate definitions of the public variables */
+	  gen_public_vars();
+	  break;
 	case 'R':		/* generate representation clause for Attributed character */
 	  gen_chtype_rep("Attributed_Character");
 	  break;
-	case 'V':		/* generate version info */
-	  gen_version_info();
-	  break;
 	case 'T':		/* generate the Trace info */
 	  gen_trace("Trace_Attribute_Set");
 	  break;
+	case 'V':		/* generate version info */
+	  gen_version_info();
+	  break;
 	default:
 	  break;
 	}
diff -Naur ncurses-5.6.orig/Ada95/gen/html.m4 ncurses-5.6/Ada95/gen/html.m4
--- ncurses-5.6.orig/Ada95/gen/html.m4	2006-04-22 19:16:44.000000000 -0400
+++ ncurses-5.6/Ada95/gen/html.m4	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 2000,2006 Free Software Foundation, Inc.                   *
+dnl Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: html.m4,v 1.2 2006/04/22 23:16:44 tom Exp $
+dnl $Id: html.m4,v 1.3 2007/09/01 23:59:59 tom Exp $
 define(`ANCHORIDX',`0')dnl
 define(`MANPAGE',`define(`MANPG',$1)dnl
 |=====================================================================
@@ -35,6 +35,6 @@
 define(`ANCHOR',`define(`ANCHORIDX',incr(ANCHORIDX))dnl
 `#'1A NAME="AFU`_'ANCHORIDX"`#'2dnl
 define(`CFUNAME',`$1')define(`AFUNAME',`$2')dnl
-|')
+|')dnl
 define(`AKA',``AKA': <A HREF="../man/MANPG.html">CFUNAME</A>')dnl
 define(`ALIAS',``AKA': $1')dnl
diff -Naur ncurses-5.6.orig/Ada95/gen/terminal_interface-curses-aux.ads.m4 ncurses-5.6/Ada95/gen/terminal_interface-curses-aux.ads.m4
--- ncurses-5.6.orig/Ada95/gen/terminal_interface-curses-aux.ads.m4	2003-10-25 11:39:18.000000000 -0400
+++ ncurses-5.6/Ada95/gen/terminal_interface-curses-aux.ads.m4	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,7 @@
 --  -*- ada -*-
 define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
+include(M4MACRO)dnl
+------------------------------------------------------------------------------
 --                                                                          --
 --                           GNAT ncurses Binding                           --
 --                                                                          --
@@ -37,7 +38,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.16 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
diff -Naur ncurses-5.6.orig/Ada95/gen/terminal_interface-curses-menus.ads.m4 ncurses-5.6/Ada95/gen/terminal_interface-curses-menus.ads.m4
--- ncurses-5.6.orig/Ada95/gen/terminal_interface-curses-menus.ads.m4	2006-06-25 10:30:22.000000000 -0400
+++ ncurses-5.6/Ada95/gen/terminal_interface-curses-menus.ads.m4	2008-06-18 06:49:44.000000000 -0400
@@ -38,8 +38,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.26 $
---  $Date: 2006/06/25 14:30:22 $
+--  $Revision: 1.27 $
+--  $Date: 2007/05/05 20:20:52 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Menu_Base_Defs')
@@ -360,7 +360,7 @@
    --  Implemented as function
    pragma Inline (Mark);
 
-   --  MANPAGE(`menu_attribs.3x')
+   --  MANPAGE(`menu_attributes.3x')
 
    --  ANCHOR(`set_menu_fore()',`Set_Foreground')
    procedure Set_Foreground
diff -Naur ncurses-5.6.orig/Ada95/gen/terminal_interface-curses.adb.m4 ncurses-5.6/Ada95/gen/terminal_interface-curses.adb.m4
--- ncurses-5.6.orig/Ada95/gen/terminal_interface-curses.adb.m4	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/Ada95/gen/terminal_interface-curses.adb.m4	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,2501 @@
+--  -*- ada -*-
+define(`HTMLNAME',`terminal_interface-curses__adb.htm')dnl
+include(M4MACRO)------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                        Terminal_Interface.Curses                         --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998-2006,2007 Free 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.4 $
+--  $Date: 2007/05/05 20:09:10 $
+--  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 Ada.Characters.Handling;       use Ada.Characters.Handling;
+with Ada.Strings.Fixed;
+
+package body Terminal_Interface.Curses is
+
+   use Aux;
+   use type System.Bit_Order;
+
+   package ASF renames Ada.Strings.Fixed;
+
+   type chtype_array is array (size_t range <>)
+      of aliased Attributed_Character;
+   pragma Convention (C, chtype_array);
+
+------------------------------------------------------------------------------
+   function Key_Name (Key : in Real_Key_Code) return String
+   is
+      function Keyname (K : C_Int) return chars_ptr;
+      pragma Import (C, Keyname, "keyname");
+
+      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
+            declare
+               S : String (1 .. 1);
+            begin
+               S (1) := Ch;
+               return S;
+            end;
+         else
+            return "";
+         end if;
+      else
+         return Fill_String (Keyname (C_Int (Key)));
+      end if;
+   end Key_Name;
+
+   procedure Key_Name (Key  : in  Real_Key_Code;
+                       Name : out String)
+   is
+   begin
+      ASF.Move (Key_Name (Key), Name);
+   end Key_Name;
+
+------------------------------------------------------------------------------
+   procedure Init_Screen
+   is
+      function Initscr return Window;
+      pragma Import (C, Initscr, "initscr");
+
+      W : Window;
+   begin
+      W := Initscr;
+      if W = Null_Window then
+         raise Curses_Exception;
+      end if;
+   end Init_Screen;
+
+   procedure End_Windows
+   is
+      function Endwin return C_Int;
+      pragma Import (C, Endwin, "endwin");
+   begin
+      if Endwin = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end End_Windows;
+
+   function Is_End_Window return Boolean
+   is
+      function Isendwin return Curses_Bool;
+      pragma Import (C, Isendwin, "isendwin");
+   begin
+      if Isendwin = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Is_End_Window;
+------------------------------------------------------------------------------
+   procedure Move_Cursor (Win    : in Window := Standard_Window;
+                          Line   : in Line_Position;
+                          Column : in Column_Position)
+   is
+      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;
+      end if;
+   end Move_Cursor;
+------------------------------------------------------------------------------
+   procedure Add (Win : in Window := Standard_Window;
+                  Ch  : in Attributed_Character)
+   is
+      function Waddch (W  : Window;
+                       Ch : C_Chtype) return C_Int;
+      pragma Import (C, Waddch, "waddch");
+   begin
+      if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Add;
+
+   procedure Add (Win : in Window := Standard_Window;
+                  Ch  : in Character)
+   is
+   begin
+      Add (Win,
+           Attributed_Character'(Ch    => Ch,
+                                 Color => Color_Pair'First,
+                                 Attr  => Normal_Video));
+   end Add;
+
+   procedure Add
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Ch     : in Attributed_Character)
+   is
+      function mvwaddch (W  : Window;
+                         Y  : C_Int;
+                         X  : C_Int;
+                         Ch : C_Chtype) return C_Int;
+      pragma Import (C, mvwaddch, "mvwaddch");
+   begin
+      if mvwaddch (Win, C_Int (Line),
+                   C_Int (Column),
+                   AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Add;
+
+   procedure Add
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Ch     : in Character)
+   is
+   begin
+      Add (Win,
+           Line,
+           Column,
+           Attributed_Character'(Ch    => Ch,
+                                 Color => Color_Pair'First,
+                                 Attr  => Normal_Video));
+   end Add;
+
+   procedure Add_With_Immediate_Echo
+     (Win : in Window := Standard_Window;
+      Ch  : in Attributed_Character)
+   is
+      function Wechochar (W  : Window;
+                          Ch : C_Chtype) return C_Int;
+      pragma Import (C, Wechochar, "wechochar");
+   begin
+      if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Add_With_Immediate_Echo;
+
+   procedure Add_With_Immediate_Echo
+     (Win : in Window := Standard_Window;
+      Ch  : in 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
+   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;
+      pragma Import (C, Newwin, "newwin");
+
+      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;
+      end if;
+      return W;
+   end Create;
+
+   procedure Delete (Win : in out Window)
+   is
+      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;
+      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;
+      pragma Import (C, Derwin, "derwin");
+
+      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;
+      end if;
+      return W;
+   end Derived_Window;
+
+   function Duplicate (Win : Window) return Window
+   is
+      function Dupwin (Win : Window) return Window;
+      pragma Import (C, Dupwin, "dupwin");
+
+      W : constant Window := Dupwin (Win);
+   begin
+      if W = Null_Window then
+         raise Curses_Exception;
+      end if;
+      return W;
+   end Duplicate;
+
+   procedure Move_Window (Win    : in Window;
+                          Line   : in Line_Position;
+                          Column : in Column_Position)
+   is
+      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;
+      end if;
+   end Move_Window;
+
+   procedure Move_Derived_Window (Win    : in Window;
+                                  Line   : in Line_Position;
+                                  Column : in Column_Position)
+   is
+      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;
+      end if;
+   end Move_Derived_Window;
+
+   procedure Set_Synch_Mode (Win  : in Window  := Standard_Window;
+                             Mode : in Boolean := False)
+   is
+      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;
+      end if;
+   end Set_Synch_Mode;
+------------------------------------------------------------------------------
+   procedure Add (Win : in Window := Standard_Window;
+                  Str : in String;
+                  Len : in Integer := -1)
+   is
+      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;
+   begin
+      To_C (Str, Txt, Length);
+      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Add;
+
+   procedure Add
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Str    : in String;
+      Len    : in Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Add (Win, Str, Len);
+   end Add;
+------------------------------------------------------------------------------
+   procedure Add
+     (Win : in Window := Standard_Window;
+      Str : in Attributed_String;
+      Len : in Integer := -1)
+   is
+      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);
+   begin
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Add;
+
+   procedure Add
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Str    : in Attributed_String;
+      Len    : in Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Add (Win, Str, Len);
+   end Add;
+------------------------------------------------------------------------------
+   procedure Border
+     (Win                       : in Window := Standard_Window;
+      Left_Side_Symbol          : in Attributed_Character := Default_Character;
+      Right_Side_Symbol         : in Attributed_Character := Default_Character;
+      Top_Side_Symbol           : in Attributed_Character := Default_Character;
+      Bottom_Side_Symbol        : in Attributed_Character := Default_Character;
+      Upper_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
+      Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
+      Lower_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
+      Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character)
+   is
+      function Wborder (W   : Window;
+                        LS  : C_Chtype;
+                        RS  : C_Chtype;
+                        TS  : C_Chtype;
+                        BS  : C_Chtype;
+                        ULC : C_Chtype;
+                        URC : C_Chtype;
+                        LLC : C_Chtype;
+                        LRC : C_Chtype) return C_Int;
+      pragma Import (C, Wborder, "wborder");
+   begin
+      if Wborder (Win,
+                  AttrChar_To_Chtype (Left_Side_Symbol),
+                  AttrChar_To_Chtype (Right_Side_Symbol),
+                  AttrChar_To_Chtype (Top_Side_Symbol),
+                  AttrChar_To_Chtype (Bottom_Side_Symbol),
+                  AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
+                  AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
+                  AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
+                  AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
+                  ) = Curses_Err
+      then
+         raise Curses_Exception;
+      end if;
+   end Border;
+
+   procedure Box
+     (Win               : in Window := Standard_Window;
+      Vertical_Symbol   : in Attributed_Character := Default_Character;
+      Horizontal_Symbol : in Attributed_Character := Default_Character)
+   is
+   begin
+      Border (Win,
+              Vertical_Symbol, Vertical_Symbol,
+              Horizontal_Symbol, Horizontal_Symbol);
+   end Box;
+
+   procedure Horizontal_Line
+     (Win         : in Window := Standard_Window;
+      Line_Size   : in Natural;
+      Line_Symbol : in Attributed_Character := Default_Character)
+   is
+      function Whline (W   : Window;
+                       Ch  : C_Chtype;
+                       Len : C_Int) return C_Int;
+      pragma Import (C, Whline, "whline");
+   begin
+      if Whline (Win,
+                 AttrChar_To_Chtype (Line_Symbol),
+                 C_Int (Line_Size)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Horizontal_Line;
+
+   procedure Vertical_Line
+     (Win         : in Window := Standard_Window;
+      Line_Size   : in Natural;
+      Line_Symbol : in Attributed_Character := Default_Character)
+   is
+      function Wvline (W   : Window;
+                       Ch  : C_Chtype;
+                       Len : C_Int) return C_Int;
+      pragma Import (C, Wvline, "wvline");
+   begin
+      if Wvline (Win,
+                 AttrChar_To_Chtype (Line_Symbol),
+                 C_Int (Line_Size)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Vertical_Line;
+
+------------------------------------------------------------------------------
+   function Get_Keystroke (Win : Window := Standard_Window)
+     return Real_Key_Code
+   is
+      function Wgetch (W : Window) return C_Int;
+      pragma Import (C, Wgetch, "wgetch");
+
+      C : constant C_Int := Wgetch (Win);
+   begin
+      if C = Curses_Err then
+         return Key_None;
+      else
+         return Real_Key_Code (C);
+      end if;
+   end Get_Keystroke;
+
+   procedure Undo_Keystroke (Key : in Real_Key_Code)
+   is
+      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;
+      end if;
+   end Undo_Keystroke;
+
+   function Has_Key (Key : Special_Key_Code) return Boolean
+   is
+      function Haskey (Key : C_Int) return C_Int;
+      pragma Import (C, Haskey, "has_key");
+   begin
+      if Haskey (C_Int (Key)) = Curses_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Has_Key;
+
+   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));
+   begin
+      if (Key >= Key_F0) and then (Key <= L) then
+         return True;
+      else
+         return False;
+      end if;
+   end Is_Function_Key;
+
+   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);
+      else
+         raise Constraint_Error;
+      end if;
+   end Function_Key;
+
+   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)
+   is
+      function wstandout (Win : Window) return C_Int;
+      pragma Import (C, wstandout, "wstandout");
+      function wstandend (Win : Window) return C_Int;
+      pragma Import (C, wstandend, "wstandend");
+
+      Err : C_Int;
+   begin
+      if On then
+         Err := wstandout (Win);
+      else
+         Err := wstandend (Win);
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Standout;
+
+   procedure Switch_Character_Attribute
+     (Win  : in Window := Standard_Window;
+      Attr : in Character_Attribute_Set := Normal_Video;
+      On   : in Boolean := True)
+   is
+      function Wattron (Win    : Window;
+                        C_Attr : C_AttrType) return C_Int;
+      pragma Import (C, Wattron, "wattr_on");
+      function Wattroff (Win    : Window;
+                         C_Attr : C_AttrType) 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, AttrChar_To_AttrType (AC));
+      else
+         Err := Wattroff (Win, AttrChar_To_AttrType (AC));
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Switch_Character_Attribute;
+
+   procedure Set_Character_Attributes
+     (Win   : in Window := Standard_Window;
+      Attr  : in Character_Attribute_Set := Normal_Video;
+      Color : in Color_Pair := Color_Pair'First)
+   is
+      function Wattrset (Win    : Window;
+                         C_Attr : C_AttrType) return C_Int;
+      pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
+   begin
+      if Wattrset (Win,
+                   AttrChar_To_AttrType (Attributed_Character'
+                                         (Ch    => Character'First,
+                                          Color => Color,
+                                          Attr  => Attr))) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Character_Attributes;
+
+   function Get_Character_Attribute (Win : Window := Standard_Window)
+                                     return Character_Attribute_Set
+   is
+      function Wattrget (Win : Window;
+                         Atr : access C_AttrType;
+                         Col : access C_Short;
+                         Opt : System.Address) return C_Int;
+      pragma Import (C, Wattrget, "wattr_get");
+
+      Attr : aliased C_AttrType;
+      Col  : aliased C_Short;
+      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+                                         System.Null_Address);
+      Ch   : Attributed_Character;
+   begin
+      if Res = Curses_Ok then
+         Ch := AttrType_To_AttrChar (Attr);
+         return Ch.Attr;
+      else
+         raise Curses_Exception;
+      end if;
+   end Get_Character_Attribute;
+
+   function Get_Character_Attribute (Win : Window := Standard_Window)
+                                     return Color_Pair
+   is
+      function Wattrget (Win : Window;
+                         Atr : access C_AttrType;
+                         Col : access C_Short;
+                         Opt : System.Address) return C_Int;
+      pragma Import (C, Wattrget, "wattr_get");
+
+      Attr : aliased C_AttrType;
+      Col  : aliased C_Short;
+      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+                                         System.Null_Address);
+      Ch   : Attributed_Character;
+   begin
+      if Res = Curses_Ok then
+         Ch := AttrType_To_AttrChar (Attr);
+         return Ch.Color;
+      else
+         raise Curses_Exception;
+      end if;
+   end Get_Character_Attribute;
+
+   procedure Set_Color (Win  : in Window := Standard_Window;
+                        Pair : in Color_Pair)
+   is
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Set_Color;
+
+   procedure Change_Attributes
+     (Win   : in Window := Standard_Window;
+      Count : in Integer := -1;
+      Attr  : in Character_Attribute_Set := Normal_Video;
+      Color : in Color_Pair := Color_Pair'First)
+   is
+      function Wchgat (Win   : Window;
+                       Cnt   : C_Int;
+                       Attr  : C_AttrType;
+                       Color : C_Short;
+                       Opts  : System.Address := System.Null_Address)
+                       return C_Int;
+      pragma Import (C, Wchgat, "wchgat");
+
+      Ch : constant Attributed_Character :=
+        (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
+   begin
+      if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
+                 C_Short (Color)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Change_Attributes;
+
+   procedure Change_Attributes
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position := Line_Position'First;
+      Column : in Column_Position := Column_Position'First;
+      Count  : in Integer := -1;
+      Attr   : in Character_Attribute_Set := Normal_Video;
+      Color  : in Color_Pair := Color_Pair'First)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Change_Attributes (Win, Count, Attr, Color);
+   end Change_Attributes;
+------------------------------------------------------------------------------
+   procedure Beep
+   is
+      function Beeper return C_Int;
+      pragma Import (C, Beeper, "beep");
+   begin
+      if Beeper = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Beep;
+
+   procedure Flash_Screen
+   is
+      function Flash return C_Int;
+      pragma Import (C, Flash, "flash");
+   begin
+      if Flash = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Flash_Screen;
+------------------------------------------------------------------------------
+   procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True)
+   is
+      function Cbreak return C_Int;
+      pragma Import (C, Cbreak, "cbreak");
+      function NoCbreak return C_Int;
+      pragma Import (C, NoCbreak, "nocbreak");
+
+      Err : C_Int;
+   begin
+      if SwitchOn then
+         Err := Cbreak;
+      else
+         Err := NoCbreak;
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Cbreak_Mode;
+
+   procedure Set_Raw_Mode (SwitchOn : in Boolean := True)
+   is
+      function Raw return C_Int;
+      pragma Import (C, Raw, "raw");
+      function NoRaw return C_Int;
+      pragma Import (C, NoRaw, "noraw");
+
+      Err : C_Int;
+   begin
+      if SwitchOn then
+         Err := Raw;
+      else
+         Err := NoRaw;
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Raw_Mode;
+
+   procedure Set_Echo_Mode (SwitchOn : in Boolean := True)
+   is
+      function Echo return C_Int;
+      pragma Import (C, Echo, "echo");
+      function NoEcho return C_Int;
+      pragma Import (C, NoEcho, "noecho");
+
+      Err : C_Int;
+   begin
+      if SwitchOn then
+         Err := Echo;
+      else
+         Err := NoEcho;
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Echo_Mode;
+
+   procedure Set_Meta_Mode (Win      : in Window := Standard_Window;
+                            SwitchOn : in Boolean := True)
+   is
+      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;
+      end if;
+   end Set_Meta_Mode;
+
+   procedure Set_KeyPad_Mode (Win      : in Window := Standard_Window;
+                              SwitchOn : in Boolean := True)
+   is
+      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;
+      end if;
+   end Set_KeyPad_Mode;
+
+   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
+                             return Boolean
+   is
+      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;
+
+   procedure Half_Delay (Amount : in Half_Delay_Amount)
+   is
+      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;
+      end if;
+   end Half_Delay;
+
+   procedure Set_Flush_On_Interrupt_Mode
+     (Win  : in Window := Standard_Window;
+      Mode : in Boolean := True)
+   is
+      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;
+      end if;
+   end Set_Flush_On_Interrupt_Mode;
+
+   procedure Set_Queue_Interrupt_Mode
+     (Win   : in Window := Standard_Window;
+      Flush : in Boolean := True)
+   is
+      procedure Qiflush;
+      pragma Import (C, Qiflush, "qiflush");
+      procedure No_Qiflush;
+      pragma Import (C, No_Qiflush, "noqiflush");
+   begin
+      if Win = Null_Window then
+         raise Curses_Exception;
+      end if;
+      if Flush then
+         Qiflush;
+      else
+         No_Qiflush;
+      end if;
+   end Set_Queue_Interrupt_Mode;
+
+   procedure Set_NoDelay_Mode
+     (Win  : in Window := Standard_Window;
+      Mode : in Boolean := False)
+   is
+      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;
+      end if;
+   end Set_NoDelay_Mode;
+
+   procedure Set_Timeout_Mode (Win    : in Window := Standard_Window;
+                               Mode   : in Timeout_Mode;
+                               Amount : in Natural)
+   is
+      procedure Wtimeout (Win : Window; Amount : C_Int);
+      pragma Import (C, Wtimeout, "wtimeout");
+
+      Time : C_Int;
+   begin
+      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);
+      end case;
+      Wtimeout (Win, Time);
+   end Set_Timeout_Mode;
+
+   procedure Set_Escape_Timer_Mode
+     (Win       : in Window := Standard_Window;
+      Timer_Off : in Boolean := False)
+   is
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Set_Escape_Timer_Mode;
+
+------------------------------------------------------------------------------
+   procedure Set_NL_Mode (SwitchOn : in Boolean := True)
+   is
+      function NL return C_Int;
+      pragma Import (C, NL, "nl");
+      function NoNL return C_Int;
+      pragma Import (C, NoNL, "nonl");
+
+      Err : C_Int;
+   begin
+      if SwitchOn then
+         Err := NL;
+      else
+         Err := NoNL;
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_NL_Mode;
+
+   procedure Clear_On_Next_Update
+     (Win      : in Window := Standard_Window;
+      Do_Clear : in Boolean := True)
+   is
+      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;
+      end if;
+   end Clear_On_Next_Update;
+
+   procedure Use_Insert_Delete_Line
+     (Win    : in Window := Standard_Window;
+      Do_Idl : in Boolean := True)
+   is
+      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;
+      end if;
+   end Use_Insert_Delete_Line;
+
+   procedure Use_Insert_Delete_Character
+     (Win    : in Window := Standard_Window;
+      Do_Idc : in Boolean := True)
+   is
+      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;
+
+   procedure Leave_Cursor_After_Update
+     (Win      : in Window := Standard_Window;
+      Do_Leave : in Boolean := True)
+   is
+      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;
+      end if;
+   end Leave_Cursor_After_Update;
+
+   procedure Immediate_Update_Mode
+     (Win  : in Window := Standard_Window;
+      Mode : in Boolean := False)
+   is
+      procedure Immedok (Win : Window; Mode : Curses_Bool);
+      pragma Import (C, Immedok, "immedok");
+   begin
+      Immedok (Win, Curses_Bool (Boolean'Pos (Mode)));
+   end Immediate_Update_Mode;
+
+   procedure Allow_Scrolling
+     (Win  : in Window  := Standard_Window;
+      Mode : in Boolean := False)
+   is
+      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;
+      end if;
+   end Allow_Scrolling;
+
+   function Scrolling_Allowed (Win : Window := Standard_Window)
+                               return Boolean
+   is
+      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;
+
+   procedure Set_Scroll_Region
+     (Win         : in Window := Standard_Window;
+      Top_Line    : in Line_Position;
+      Bottom_Line : in Line_Position)
+   is
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Set_Scroll_Region;
+------------------------------------------------------------------------------
+   procedure Update_Screen
+   is
+      function Do_Update return C_Int;
+      pragma Import (C, Do_Update, "doupdate");
+   begin
+      if Do_Update = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Update_Screen;
+
+   procedure Refresh (Win : in Window := Standard_Window)
+   is
+      function Wrefresh (W : Window) return C_Int;
+      pragma Import (C, Wrefresh, "wrefresh");
+   begin
+      if Wrefresh (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Refresh;
+
+   procedure Refresh_Without_Update
+     (Win : in Window := Standard_Window)
+   is
+      function Wnoutrefresh (W : Window) return C_Int;
+      pragma Import (C, Wnoutrefresh, "wnoutrefresh");
+   begin
+      if Wnoutrefresh (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Refresh_Without_Update;
+
+   procedure Redraw (Win : in Window := Standard_Window)
+   is
+      function Redrawwin (Win : Window) return C_Int;
+      pragma Import (C, Redrawwin, "redrawwin");
+   begin
+      if Redrawwin (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Redraw;
+
+   procedure Redraw
+     (Win        : in Window := Standard_Window;
+      Begin_Line : in Line_Position;
+      Line_Count : in Positive)
+   is
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Redraw;
+
+------------------------------------------------------------------------------
+   procedure Erase (Win : in Window := Standard_Window)
+   is
+      function Werase (W : Window) return C_Int;
+      pragma Import (C, Werase, "werase");
+   begin
+      if Werase (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Erase;
+
+   procedure Clear (Win : in Window := Standard_Window)
+   is
+      function Wclear (W : Window) return C_Int;
+      pragma Import (C, Wclear, "wclear");
+   begin
+      if Wclear (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Clear;
+
+   procedure Clear_To_End_Of_Screen (Win : in Window := Standard_Window)
+   is
+      function Wclearbot (W : Window) return C_Int;
+      pragma Import (C, Wclearbot, "wclrtobot");
+   begin
+      if Wclearbot (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Clear_To_End_Of_Screen;
+
+   procedure Clear_To_End_Of_Line (Win : in Window := Standard_Window)
+   is
+      function Wcleareol (W : Window) return C_Int;
+      pragma Import (C, Wcleareol, "wclrtoeol");
+   begin
+      if Wcleareol (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Clear_To_End_Of_Line;
+------------------------------------------------------------------------------
+   procedure Set_Background
+     (Win : in Window := Standard_Window;
+      Ch  : in Attributed_Character)
+   is
+      procedure WBackground (W : in Window; Ch : in C_Chtype);
+      pragma Import (C, WBackground, "wbkgdset");
+   begin
+      WBackground (Win, AttrChar_To_Chtype (Ch));
+   end Set_Background;
+
+   procedure Change_Background
+     (Win : in Window := Standard_Window;
+      Ch  : in Attributed_Character)
+   is
+      function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
+      pragma Import (C, WChangeBkgd, "wbkgd");
+   begin
+      if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Change_Background;
+
+   function Get_Background (Win : Window := Standard_Window)
+     return Attributed_Character
+   is
+      function Wgetbkgd (Win : Window) return C_Chtype;
+      pragma Import (C, Wgetbkgd, "getbkgd");
+   begin
+      return Chtype_To_AttrChar (Wgetbkgd (Win));
+   end Get_Background;
+------------------------------------------------------------------------------
+   procedure Change_Lines_Status (Win   : in Window := Standard_Window;
+                                  Start : in Line_Position;
+                                  Count : in Positive;
+                                  State : in 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 then
+         raise Curses_Exception;
+      end if;
+   end Change_Lines_Status;
+
+   procedure Touch (Win : in Window := Standard_Window)
+   is
+      Y : Line_Position;
+      X : Column_Position;
+   begin
+      Get_Size (Win, Y, X);
+      Change_Lines_Status (Win, 0, Positive (Y), True);
+   end Touch;
+
+   procedure Untouch (Win : in Window := Standard_Window)
+   is
+      Y : Line_Position;
+      X : Column_Position;
+   begin
+      Get_Size (Win, Y, X);
+      Change_Lines_Status (Win, 0, Positive (Y), False);
+   end Untouch;
+
+   procedure Touch (Win   : in Window := Standard_Window;
+                    Start : in Line_Position;
+                    Count : in Positive)
+   is
+   begin
+      Change_Lines_Status (Win, Start, Count, True);
+   end Touch;
+
+   function Is_Touched
+     (Win  : Window := Standard_Window;
+      Line : Line_Position) return Boolean
+   is
+      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
+         return False;
+      else
+         return True;
+      end if;
+   end Is_Touched;
+
+   function Is_Touched
+     (Win : Window := Standard_Window) return Boolean
+   is
+      function WWinTouched (W : Window) return Curses_Bool;
+      pragma Import (C, WWinTouched, "is_wintouched");
+   begin
+      if WWinTouched (Win) = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Is_Touched;
+------------------------------------------------------------------------------
+   procedure Copy
+     (Source_Window            : in Window;
+      Destination_Window       : in Window;
+      Source_Top_Row           : in Line_Position;
+      Source_Left_Column       : in Column_Position;
+      Destination_Top_Row      : in Line_Position;
+      Destination_Left_Column  : in Column_Position;
+      Destination_Bottom_Row   : in Line_Position;
+      Destination_Right_Column : in Column_Position;
+      Non_Destructive_Mode     : in 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 then
+         raise Curses_Exception;
+      end if;
+   end Copy;
+
+   procedure Overwrite
+     (Source_Window      : in Window;
+      Destination_Window : in Window)
+   is
+      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;
+      end if;
+   end Overwrite;
+
+   procedure Overlay
+     (Source_Window      : in Window;
+      Destination_Window : in Window)
+   is
+      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;
+      end if;
+   end Overlay;
+
+------------------------------------------------------------------------------
+   procedure Insert_Delete_Lines
+     (Win   : in Window := Standard_Window;
+      Lines : in Integer       := 1) -- default is to insert one line above
+   is
+      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;
+      end if;
+   end Insert_Delete_Lines;
+
+   procedure Delete_Line (Win : in Window := Standard_Window)
+   is
+   begin
+      Insert_Delete_Lines (Win, -1);
+   end Delete_Line;
+
+   procedure Insert_Line (Win : in Window := Standard_Window)
+   is
+   begin
+      Insert_Delete_Lines (Win, 1);
+   end Insert_Line;
+------------------------------------------------------------------------------
+
+   procedure Get_Size
+     (Win               : in Window := Standard_Window;
+      Number_Of_Lines   : out Line_Count;
+      Number_Of_Columns : out Column_Count)
+   is
+      function GetMaxY (W : Window) return C_Int;
+      pragma Import (C, GetMaxY, "getmaxy");
+
+      function GetMaxX (W : Window) return C_Int;
+      pragma Import (C, GetMaxX, "getmaxx");
+
+      Y : constant C_Int := GetMaxY (Win)
+                          + C_Int (Offset_XY);
+      X : constant C_Int := GetMaxX (Win)
+                          + C_Int (Offset_XY);
+   begin
+      Number_Of_Lines   := Line_Count (Y);
+      Number_Of_Columns := Column_Count (X);
+   end Get_Size;
+
+   procedure Get_Window_Position
+     (Win             : in Window := Standard_Window;
+      Top_Left_Line   : out Line_Position;
+      Top_Left_Column : out Column_Position)
+   is
+      function GetBegY (W : Window) return C_Int;
+      pragma Import (C, GetBegY, "getbegy");
+
+      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));
+   begin
+      Top_Left_Line   := Line_Position (Y);
+      Top_Left_Column := Column_Position (X);
+   end Get_Window_Position;
+
+   procedure Get_Cursor_Position
+     (Win    : in  Window := Standard_Window;
+      Line   : out Line_Position;
+      Column : out Column_Position)
+   is
+      function GetCurY (W : Window) return C_Int;
+      pragma Import (C, GetCurY, "getcury");
+
+      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));
+   begin
+      Line   := Line_Position (Y);
+      Column := Column_Position (X);
+   end Get_Cursor_Position;
+
+   procedure Get_Origin_Relative_To_Parent
+     (Win                : in  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;
+      pragma Import (C, GetParY, "getpary");
+
+      function GetParX (W : Window) return C_Int;
+      pragma Import (C, GetParX, "getparx");
+
+      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;
+      else
+         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
+   is
+      function Newpad (Lines : C_Int; Columns : C_Int) return Window;
+      pragma Import (C, Newpad, "newpad");
+
+      W : Window;
+   begin
+      W := Newpad (C_Int (Lines), C_Int (Columns));
+      if W = Null_Window then
+         raise Curses_Exception;
+      end if;
+      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
+   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;
+      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                      : in Window;
+      Source_Top_Row           : in Line_Position;
+      Source_Left_Column       : in Column_Position;
+      Destination_Top_Row      : in Line_Position;
+      Destination_Left_Column  : in Column_Position;
+      Destination_Bottom_Row   : in Line_Position;
+      Destination_Right_Column : in 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 then
+         raise Curses_Exception;
+      end if;
+   end Refresh;
+
+   procedure Refresh_Without_Update
+     (Pad                      : in Window;
+      Source_Top_Row           : in Line_Position;
+      Source_Left_Column       : in Column_Position;
+      Destination_Top_Row      : in Line_Position;
+      Destination_Left_Column  : in Column_Position;
+      Destination_Bottom_Row   : in Line_Position;
+      Destination_Right_Column : in 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 then
+         raise Curses_Exception;
+      end if;
+   end Refresh_Without_Update;
+
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : in Window;
+      Ch  : in Attributed_Character)
+   is
+      function Pechochar (Pad : Window; Ch : C_Chtype)
+                          return C_Int;
+      pragma Import (C, Pechochar, "pechochar");
+   begin
+      if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Add_Character_To_Pad_And_Echo_It;
+
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : in Window;
+      Ch  : in 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    : in Window := Standard_Window;
+                     Amount : in Integer := 1)
+   is
+      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;
+      end if;
+   end Scroll;
+
+------------------------------------------------------------------------------
+   procedure Delete_Character (Win : in Window := Standard_Window)
+   is
+      function Wdelch (Win : Window) return C_Int;
+      pragma Import (C, Wdelch, "wdelch");
+   begin
+      if Wdelch (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Delete_Character;
+
+   procedure Delete_Character
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position)
+   is
+      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;
+      end if;
+   end Delete_Character;
+------------------------------------------------------------------------------
+   function Peek (Win : Window := Standard_Window)
+     return Attributed_Character
+   is
+      function Winch (Win : Window) return C_Chtype;
+      pragma Import (C, Winch, "winch");
+   begin
+      return Chtype_To_AttrChar (Winch (Win));
+   end Peek;
+
+   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 C_Chtype;
+      pragma Import (C, Mvwinch, "mvwinch");
+   begin
+      return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Insert (Win : in Window := Standard_Window;
+                     Ch  : in Attributed_Character)
+   is
+      function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
+      pragma Import (C, Winsch, "winsch");
+   begin
+      if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Insert;
+
+   procedure Insert
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Ch     : in Attributed_Character)
+   is
+      function Mvwinsch (Win : Window;
+                         Lin : C_Int;
+                         Col : C_Int;
+                         Ch  : C_Chtype) return C_Int;
+      pragma Import (C, Mvwinsch, "mvwinsch");
+   begin
+      if Mvwinsch (Win,
+                   C_Int (Line),
+                   C_Int (Column),
+                   AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Insert;
+------------------------------------------------------------------------------
+   procedure Insert (Win : in Window := Standard_Window;
+                     Str : in String;
+                     Len : in Integer := -1)
+   is
+      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;
+   begin
+      To_C (Str, Txt, Length);
+      if Winsnstr (Win, Txt, Len) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Insert;
+
+   procedure Insert
+     (Win    : in Window := Standard_Window;
+      Line   : in Line_Position;
+      Column : in Column_Position;
+      Str    : in String;
+      Len    : in Integer := -1)
+   is
+      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;
+   begin
+      To_C (Str, Txt, Length);
+      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
+        = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Insert;
+------------------------------------------------------------------------------
+   procedure Peek (Win : in  Window := Standard_Window;
+                   Str : out String;
+                   Len : in  Integer := -1)
+   is
+      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;
+   begin
+      if N < 0 then
+         N := Str'Length;
+      end if;
+      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;
+      end if;
+      To_Ada (Txt, Str, Cnt, True);
+      if Cnt < Str'Length then
+         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
+      end if;
+   end Peek;
+
+   procedure Peek
+     (Win    : in  Window := Standard_Window;
+      Line   : in  Line_Position;
+      Column : in  Column_Position;
+      Str    : out String;
+      Len    : in  Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Peek (Win, Str, Len);
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Peek
+     (Win : in  Window := Standard_Window;
+      Str : out Attributed_String;
+      Len : in  Integer := -1)
+   is
+      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;
+   begin
+      if N < 0 then
+         N := Str'Length;
+      end if;
+      if N > Str'Length then
+         raise Constraint_Error;
+      end if;
+      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;
+      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    : in  Window := Standard_Window;
+      Line   : in  Line_Position;
+      Column : in  Column_Position;
+      Str    : out Attributed_String;
+      Len    : in Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Peek (Win, Str, Len);
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Get (Win : in  Window := Standard_Window;
+                  Str : out String;
+                  Len : in  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;
+   begin
+      if N < 0 then
+         N := Str'Length;
+      end if;
+      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;
+      end if;
+      To_Ada (Txt, Str, Cnt, True);
+      if Cnt < Str'Length then
+         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
+      end if;
+   end Get;
+
+   procedure Get
+     (Win    : in  Window := Standard_Window;
+      Line   : in  Line_Position;
+      Column : in  Column_Position;
+      Str    : out String;
+      Len    : in  Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Get (Win, Str, Len);
+   end Get;
+------------------------------------------------------------------------------
+   procedure Init_Soft_Label_Keys
+     (Format : in Soft_Label_Key_Format := Three_Two_Three)
+   is
+      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;
+      end if;
+   end Init_Soft_Label_Keys;
+
+   procedure Set_Soft_Label_Key (Label : in Label_Number;
+                                 Text  : in String;
+                                 Fmt   : in Label_Justification := Left)
+   is
+      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;
+   begin
+      To_C (Text, Txt, Len);
+      if Slk_Set (C_Int (Label), Txt,
+                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Soft_Label_Key;
+
+   procedure Refresh_Soft_Label_Keys
+   is
+      function Slk_Refresh return C_Int;
+      pragma Import (C, Slk_Refresh, "slk_refresh");
+   begin
+      if Slk_Refresh = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Refresh_Soft_Label_Keys;
+
+   procedure Refresh_Soft_Label_Keys_Without_Update
+   is
+      function Slk_Noutrefresh return C_Int;
+      pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
+   begin
+      if Slk_Noutrefresh = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Refresh_Soft_Label_Keys_Without_Update;
+
+   procedure Get_Soft_Label_Key (Label : in Label_Number;
+                                 Text  : out String)
+   is
+      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;
+
+   function Get_Soft_Label_Key (Label : in Label_Number) return String
+   is
+      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;
+
+   procedure Clear_Soft_Label_Keys
+   is
+      function Slk_Clear return C_Int;
+      pragma Import (C, Slk_Clear, "slk_clear");
+   begin
+      if Slk_Clear = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Clear_Soft_Label_Keys;
+
+   procedure Restore_Soft_Label_Keys
+   is
+      function Slk_Restore return C_Int;
+      pragma Import (C, Slk_Restore, "slk_restore");
+   begin
+      if Slk_Restore = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Restore_Soft_Label_Keys;
+
+   procedure Touch_Soft_Label_Keys
+   is
+      function Slk_Touch return C_Int;
+      pragma Import (C, Slk_Touch, "slk_touch");
+   begin
+      if Slk_Touch = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Touch_Soft_Label_Keys;
+
+   procedure Switch_Soft_Label_Key_Attributes
+     (Attr : in Character_Attribute_Set;
+      On   : in Boolean := True)
+   is
+      function Slk_Attron (Ch : C_Chtype) return C_Int;
+      pragma Import (C, Slk_Attron, "slk_attron");
+      function Slk_Attroff (Ch : C_Chtype) 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);
+   begin
+      if On then
+         Err := Slk_Attron  (AttrChar_To_Chtype (Ch));
+      else
+         Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
+      end if;
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Switch_Soft_Label_Key_Attributes;
+
+   procedure Set_Soft_Label_Key_Attributes
+     (Attr  : in Character_Attribute_Set := Normal_Video;
+      Color : in Color_Pair := Color_Pair'First)
+   is
+      function Slk_Attrset (Ch : C_Chtype) return C_Int;
+      pragma Import (C, Slk_Attrset, "slk_attrset");
+
+      Ch : constant Attributed_Character := (Ch    => Character'First,
+                                             Attr  => Attr,
+                                             Color => Color);
+   begin
+      if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Set_Soft_Label_Key_Attributes;
+
+   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
+   is
+      function Slk_Attr return C_Chtype;
+      pragma Import (C, Slk_Attr, "slk_attr");
+
+      Attr : constant C_Chtype := Slk_Attr;
+   begin
+      return Chtype_To_AttrChar (Attr).Attr;
+   end Get_Soft_Label_Key_Attributes;
+
+   function Get_Soft_Label_Key_Attributes return Color_Pair
+   is
+      function Slk_Attr return C_Chtype;
+      pragma Import (C, Slk_Attr, "slk_attr");
+
+      Attr : constant C_Chtype := Slk_Attr;
+   begin
+      return Chtype_To_AttrChar (Attr).Color;
+   end Get_Soft_Label_Key_Attributes;
+
+   procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair)
+   is
+      function Slk_Color (Color : in 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;
+      end if;
+   end Set_Soft_Label_Key_Color;
+
+------------------------------------------------------------------------------
+   procedure Enable_Key (Key    : in Special_Key_Code;
+                         Enable : in Boolean := True)
+   is
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Enable_Key;
+------------------------------------------------------------------------------
+   procedure Define_Key (Definition : in String;
+                         Key        : in Special_Key_Code)
+   is
+      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;
+   begin
+      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  : in Attributed_Character;
+                         Str : out String)
+   is
+      function Unctrl (Ch : C_Chtype) return chars_ptr;
+      pragma Import (C, Unctrl, "unctrl");
+   begin
+      Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
+   end Un_Control;
+
+   function Un_Control (Ch : in Attributed_Character) return String
+   is
+      function Unctrl (Ch : C_Chtype) return chars_ptr;
+      pragma Import (C, Unctrl, "unctrl");
+   begin
+      return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
+   end Un_Control;
+
+   procedure Delay_Output (Msecs : in Natural)
+   is
+      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;
+      end if;
+   end Delay_Output;
+
+   procedure Flush_Input
+   is
+      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;
+      end if;
+   end Flush_Input;
+------------------------------------------------------------------------------
+   function Baudrate return Natural
+   is
+      function Baud return C_Int;
+      pragma Import (C, Baud, "baudrate");
+   begin
+      return Natural (Baud);
+   end Baudrate;
+
+   function Erase_Character return Character
+   is
+      function Erasechar return C_Int;
+      pragma Import (C, Erasechar, "erasechar");
+   begin
+      return Character'Val (Erasechar);
+   end Erase_Character;
+
+   function Kill_Character return Character
+   is
+      function Killchar return C_Int;
+      pragma Import (C, Killchar, "killchar");
+   begin
+      return Character'Val (Killchar);
+   end Kill_Character;
+
+   function Has_Insert_Character return Boolean
+   is
+      function Has_Ic return Curses_Bool;
+      pragma Import (C, Has_Ic, "has_ic");
+   begin
+      if Has_Ic = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Has_Insert_Character;
+
+   function Has_Insert_Line return Boolean
+   is
+      function Has_Il return Curses_Bool;
+      pragma Import (C, Has_Il, "has_il");
+   begin
+      if Has_Il = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Has_Insert_Line;
+
+   function Supported_Attributes return Character_Attribute_Set
+   is
+      function Termattrs return C_Chtype;
+      pragma Import (C, Termattrs, "termattrs");
+
+      Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
+   begin
+      return Ch.Attr;
+   end Supported_Attributes;
+
+   procedure Long_Name (Name : out String)
+   is
+      function Longname return chars_ptr;
+      pragma Import (C, Longname, "longname");
+   begin
+      Fill_String (Longname, Name);
+   end Long_Name;
+
+   function Long_Name return String
+   is
+      function Longname return chars_ptr;
+      pragma Import (C, Longname, "longname");
+   begin
+      return Fill_String (Longname);
+   end Long_Name;
+
+   procedure Terminal_Name (Name : out String)
+   is
+      function Termname return chars_ptr;
+      pragma Import (C, Termname, "termname");
+   begin
+      Fill_String (Termname, Name);
+   end Terminal_Name;
+
+   function Terminal_Name return String
+   is
+      function Termname return chars_ptr;
+      pragma Import (C, Termname, "termname");
+   begin
+      return Fill_String (Termname);
+   end Terminal_Name;
+------------------------------------------------------------------------------
+   procedure Init_Pair (Pair : in Redefinable_Color_Pair;
+                        Fore : in Color_Number;
+                        Back : in Color_Number)
+   is
+      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
+         raise Constraint_Error;
+      end if;
+      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 then
+         raise Curses_Exception;
+      end if;
+   end Init_Pair;
+
+   procedure Pair_Content (Pair : in 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;
+      pragma Import (C, Paircontent, "pair_content");
+
+      F, B : aliased C_Short;
+   begin
+      if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
+         raise Curses_Exception;
+      else
+         Fore := Color_Number (F);
+         Back := Color_Number (B);
+      end if;
+   end Pair_Content;
+
+   function Has_Colors return Boolean
+   is
+      function Hascolors return Curses_Bool;
+      pragma Import (C, Hascolors, "has_colors");
+   begin
+      if Hascolors = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Has_Colors;
+
+   procedure Init_Color (Color : in Color_Number;
+                         Red   : in RGB_Value;
+                         Green : in RGB_Value;
+                         Blue  : in RGB_Value)
+   is
+      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 then
+            raise Curses_Exception;
+      end if;
+   end Init_Color;
+
+   function Can_Change_Color return Boolean
+   is
+      function Canchangecolor return Curses_Bool;
+      pragma Import (C, Canchangecolor, "can_change_color");
+   begin
+      if Canchangecolor = Curses_Bool_False then
+         return False;
+      else
+         return True;
+      end if;
+   end Can_Change_Color;
+
+   procedure Color_Content (Color : in  Color_Number;
+                            Red   : out RGB_Value;
+                            Green : out RGB_Value;
+                            Blue  : out RGB_Value)
+   is
+      type C_Short_Access is access all C_Short;
+
+      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;
+   begin
+      if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
+        Curses_Err then
+         raise Curses_Exception;
+      else
+         Red   := RGB_Value (R);
+         Green := RGB_Value (G);
+         Blue  := RGB_Value (B);
+      end if;
+   end Color_Content;
+
+------------------------------------------------------------------------------
+   procedure Save_Curses_Mode (Mode : in Curses_Mode)
+   is
+      function Def_Prog_Mode return C_Int;
+      pragma Import (C, Def_Prog_Mode, "def_prog_mode");
+      function Def_Shell_Mode return C_Int;
+      pragma Import (C, Def_Shell_Mode, "def_shell_mode");
+
+      Err : C_Int;
+   begin
+      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;
+      end if;
+   end Save_Curses_Mode;
+
+   procedure Reset_Curses_Mode (Mode : in Curses_Mode)
+   is
+      function Reset_Prog_Mode return C_Int;
+      pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
+      function Reset_Shell_Mode return C_Int;
+      pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
+
+      Err : C_Int;
+   begin
+      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;
+      end if;
+   end Reset_Curses_Mode;
+
+   procedure Save_Terminal_State
+   is
+      function Savetty return C_Int;
+      pragma Import (C, Savetty, "savetty");
+   begin
+      if Savetty = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Save_Terminal_State;
+
+   procedure Reset_Terminal_State
+   is
+      function Resetty return C_Int;
+      pragma Import (C, Resetty, "resetty");
+   begin
+      if Resetty = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Reset_Terminal_State;
+
+   procedure Rip_Off_Lines (Lines : in Integer;
+                            Proc  : in Stdscr_Init_Proc)
+   is
+      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;
+      end if;
+   end Rip_Off_Lines;
+
+   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
+   is
+      function Curs_Set (Curs : C_Int) return C_Int;
+      pragma Import (C, Curs_Set, "curs_set");
+
+      Res : C_Int;
+   begin
+      Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
+      if Res /= Curses_Err then
+         Visibility := Cursor_Visibility'Val (Res);
+      end if;
+   end Set_Cursor_Visibility;
+
+   procedure Nap_Milli_Seconds (Ms : in Natural)
+   is
+      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;
+      end if;
+   end Nap_Milli_Seconds;
+------------------------------------------------------------------------------
+include(`Public_Variables')
+------------------------------------------------------------------------------
+   procedure Transform_Coordinates
+     (W      : in Window := Standard_Window;
+      Line   : in out Line_Position;
+      Column : in out Column_Position;
+      Dir    : in 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;
+   begin
+      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;
+      else
+         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;
+      pragma Import (C, C_Use_Default_Colors, "use_default_colors");
+      Err : constant C_Int := C_Use_Default_Colors;
+   begin
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Use_Default_Colors;
+
+   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;
+      pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
+
+      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
+                                                       C_Int (Back));
+   begin
+      if Err = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Assume_Default_Colors;
+------------------------------------------------------------------------------
+   function Curses_Version return String
+   is
+      function curses_versionC return chars_ptr;
+      pragma Import (C, curses_versionC, "curses_version");
+      Result : constant chars_ptr := curses_versionC;
+   begin
+      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;
+      pragma Import (C, use_extended_namesC, "use_extended_names");
+
+      Res : constant C_Int :=
+         use_extended_namesC (Curses_Bool (Boolean'Pos (Enable)));
+   begin
+      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 : in String)
+   is
+      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;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_dump (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Dump_To_File;
+
+   procedure Screen_Restore_From_File (Filename : in String)
+   is
+      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;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_restore (Txt)  then
+         raise Curses_Exception;
+      end if;
+   end Screen_Restore_From_File;
+
+   procedure Screen_Init_From_File (Filename : in String)
+   is
+      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;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_init (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Init_From_File;
+
+   procedure Screen_Set_File (Filename : in String)
+   is
+      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;
+      pragma Import (C, wresize);
+   begin
+      if wresize (Win,
+                  C_Int (Number_Of_Lines),
+                  C_Int (Number_Of_Columns)) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+   end Resize;
+------------------------------------------------------------------------------
+
+end Terminal_Interface.Curses;
diff -Naur ncurses-5.6.orig/Ada95/gen/terminal_interface-curses.ads.m4 ncurses-5.6/Ada95/gen/terminal_interface-curses.ads.m4
--- ncurses-5.6.orig/Ada95/gen/terminal_interface-curses.ads.m4	2006-06-25 10:30:22.000000000 -0400
+++ ncurses-5.6/Ada95/gen/terminal_interface-curses.ads.m4	2008-06-18 06:49:44.000000000 -0400
@@ -9,7 +9,7 @@
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --
+-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -37,8 +37,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.37 $
---  $Date: 2006/06/25 14:30:22 $
+--  $Revision: 1.41 $
+--  $Date: 2007/05/05 20:33:52 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 include(`Base_Defs')
@@ -188,25 +188,21 @@
    function Number_Of_Color_Pairs return Natural;
    pragma Inline (Number_Of_Color_Pairs);
 
-   ACS_Map : array (Character'Val (0) .. Character'Val (127)) of
-     Attributed_Character;
-   pragma Import (C, ACS_Map, "acs_map");
-   --
-   --
-   --  Constants for several characters from the Alternate Character Set
-   --  You must use this constants as indices into the ACS_Map array
-   --  to get the corresponding attributed character at runtime.
-   --
 include(`ACS_Map')dnl
 
    --  MANPAGE(`curs_initscr.3x')
-   --  | Not implemented: newterm, set_term, delscreen, curscr
+   --  | Not implemented: newterm, set_term, delscreen
 
    --  ANCHOR(`stdscr',`Standard_Window')
    function Standard_Window return Window;
    --  AKA
    pragma Inline (Standard_Window);
 
+   --  ANCHOR(`curscr',`Current_Window')
+   function Current_Window return Window;
+   --  AKA
+   pragma Inline (Current_Window);
+
    --  ANCHOR(`initscr()',`Init_Screen')
    procedure Init_Screen;
 
@@ -1478,7 +1474,7 @@
    --  Window or if you pass the Null_Window as argument.
    --  We don't inline this procedure
 
-   --  MANPAGE(`dft_fgbg.3x')
+   --  MANPAGE(`default_colors.3x')
 
    --  ANCHOR(`use_default_colors()',`Use_Default_Colors')
    procedure Use_Default_Colors;
@@ -1502,6 +1498,12 @@
    function Use_Extended_Names (Enable : Boolean) return Boolean;
    --  AKA
 
+   --  MANPAGE(`curs_trace.3x')
+
+   --  ANCHOR(`_nc_freeall()',`Curses_Free_All')
+   procedure Curses_Free_All;
+   --  AKA
+
    --  MANPAGE(`curs_scr_dump.3x')
 
    --  ANCHOR(`scr_dump()',`Screen_Dump_To_File')
diff -Naur ncurses-5.6.orig/Ada95/samples/ncurses2-attr_test.adb ncurses-5.6/Ada95/samples/ncurses2-attr_test.adb
--- ncurses-5.6.orig/Ada95/samples/ncurses2-attr_test.adb	2006-06-25 10:24:40.000000000 -0400
+++ ncurses-5.6/Ada95/samples/ncurses2-attr_test.adb	2008-06-18 06:49:44.000000000 -0400
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000-2004,2006 Free Software Foundation, Inc.              --
+-- Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,8 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.6 $
---  $Date: 2006/06/25 14:24:40 $
+--  $Revision: 1.8 $
+--  $Date: 2007/05/05 21:28:18 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with ncurses2.util; use ncurses2.util;
@@ -56,7 +56,7 @@
                         attr : Character_Attribute_Set;
                         name : String;
                         once : Boolean) return Line_Position;
-   procedure attr_getc (skip : out Integer;
+   procedure attr_getc (skip : in out Integer;
                         fg, bg : in out Color_Number;
                         result : out Boolean);
 
@@ -233,20 +233,18 @@
       return row + 2;
    end show_attr;
 
-   procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number;
-                                            result : out Boolean) is
+   procedure attr_getc (skip : in out Integer;
+                        fg, bg : in out Color_Number;
+                        result : out Boolean) is
       ch : constant Key_Code := Getchar;
       nc : constant Color_Number := Color_Number (Number_Of_Colors);
-      curscr : Window;
-      pragma Import (C, curscr, "curscr");
-      --  curscr is not implemented in the Ada binding
    begin
       result := True;
       if Ada.Characters.Handling.Is_Digit (Character'Val (ch)) then
          skip := ctoi (Code_To_Char (ch));
       elsif ch = CTRL ('L') then
          Touch;
-         Touch (curscr);
+         Touch (Current_Window);
          Refresh;
       elsif Has_Colors then
          case ch is
diff -Naur ncurses-5.6.orig/Ada95/samples/ncurses2-m.adb ncurses-5.6/Ada95/samples/ncurses2-m.adb
--- ncurses-5.6.orig/Ada95/samples/ncurses2-m.adb	2006-06-25 10:24:40.000000000 -0400
+++ ncurses-5.6/Ada95/samples/ncurses2-m.adb	2008-06-18 06:49:44.000000000 -0400
@@ -35,8 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.6 $
---  $Date: 2006/06/25 14:24:40 $
+--  $Revision: 1.7 $
+--  $Date: 2007/05/05 18:02:40 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  TODO use Default_Character where appropriate
@@ -442,6 +442,7 @@
 
          exit when command = 'q';
       end loop;
+      Curses_Free_All;
       return 0; -- TODO ExitProgram(EXIT_SUCCESS);
    end main;
 
diff -Naur ncurses-5.6.orig/Ada95/samples/rain.adb ncurses-5.6/Ada95/samples/rain.adb
--- ncurses-5.6.orig/Ada95/samples/rain.adb	2003-10-25 11:39:18.000000000 -0400
+++ ncurses-5.6/Ada95/samples/rain.adb	2008-06-18 06:49:44.000000000 -0400
@@ -36,7 +36,8 @@
 --  Author:  Laurent Pautet <pautet@gnat.com>
 --  Modified by:  Juergen Pfeifer, 1997
 --  Version Control
---  $Revision: 1.6 $
+--  $Revision: 1.7 $
+--  $Date: 2007/05/05 18:54:03 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --                                                                          --
@@ -158,5 +159,6 @@
    Visibility := Normal;
    Set_Cursor_Visibility (Visibility);
    End_Windows;
+   Curses_Free_All;
 
 end Rain;
diff -Naur ncurses-5.6.orig/Ada95/samples/sample.adb ncurses-5.6/Ada95/samples/sample.adb
--- ncurses-5.6.orig/Ada95/samples/sample.adb	2003-10-25 11:39:18.000000000 -0400
+++ ncurses-5.6/Ada95/samples/sample.adb	2008-06-18 06:49:44.000000000 -0400
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control
---  $Revision: 1.14 $
+--  $Revision: 1.15 $
+--  $Date: 2007/05/05 18:46:21 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Text_IO;
@@ -204,6 +205,7 @@
       --  We have some fixed key throughout this sample
       Main_Menu;
       End_Windows;
+      Curses_Free_All;
 
    exception
       when Event : others =>
diff -Naur ncurses-5.6.orig/Ada95/src/Makefile.in ncurses-5.6/Ada95/src/Makefile.in
--- ncurses-5.6.orig/Ada95/src/Makefile.in	2004-08-21 17:29:50.000000000 -0400
+++ ncurses-5.6/Ada95/src/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  $Id: Makefile.in,v 1.30 2004/08/21 21:29:50 tom Exp $
+#  $Id: Makefile.in,v 1.31 2007/09/15 18:22:24 tom Exp $
 #
 .SUFFIXES:
 
@@ -197,7 +197,7 @@
 
 realclean :: distclean
 
-BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(srcdir)/$(ABASE).adb
+BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(ABASE).adb
 
 $(ALIB).o: $(srcdir)/$(ALIB).ads
 	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ALIB).ads
@@ -207,8 +207,8 @@
 	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-aux.adb
 
 
-$(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
-	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
+$(ABASE).o: $(ABASE).adb $(BASEDEPS)
+	$(ADA) $(ADAFLAGS) -c -o $@ $(ABASE).adb
 
 
 $(ABASE)-terminfo.o: \
diff -Naur ncurses-5.6.orig/Ada95/src/terminal_interface-curses.adb ncurses-5.6/Ada95/src/terminal_interface-curses.adb
--- ncurses-5.6.orig/Ada95/src/terminal_interface-curses.adb	2006-06-25 10:30:22.000000000 -0400
+++ ncurses-5.6/Ada95/src/terminal_interface-curses.adb	1969-12-31 19:00:00.000000000 -0500
@@ -1,2565 +0,0 @@
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                        Terminal_Interface.Curses                         --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright (c) 1998-2004,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.34 $
---  $Date: 2006/06/25 14:30:22 $
---  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 Interfaces.C.Pointers;
-with Ada.Characters.Handling;       use Ada.Characters.Handling;
-with Ada.Strings.Fixed;
-with Ada.Unchecked_Conversion;
-
-package body Terminal_Interface.Curses is
-
-   use Aux;
-   use type System.Bit_Order;
-
-   package ASF renames Ada.Strings.Fixed;
-
-   type chtype_array is array (size_t range <>)
-      of aliased Attributed_Character;
-   pragma Convention (C, chtype_array);
-
-------------------------------------------------------------------------------
-   generic
-      type Element is (<>);
-   function W_Get_Element (Win    : in Window;
-                           Offset : in Natural) return Element;
-
-   function W_Get_Element (Win    : in Window;
-                           Offset : in Natural) return Element is
-      type E_Array is array (Natural range <>) of aliased Element;
-      package C_E_Array is new
-        Interfaces.C.Pointers (Natural, Element, E_Array, Element'Val (0));
-      use C_E_Array;
-
-      function To_Pointer is new
-        Ada.Unchecked_Conversion (Window, Pointer);
-
-      P : Pointer := To_Pointer (Win);
-   begin
-      if Win = Null_Window then
-         raise Curses_Exception;
-      else
-         P := P + ptrdiff_t (Offset);
-         return P.all;
-      end if;
-   end W_Get_Element;
-
-   function W_Get_Int   is new W_Get_Element (C_Int);
-   function W_Get_Short is new W_Get_Element (C_Short);
-   function W_Get_Byte  is new W_Get_Element (Interfaces.C.unsigned_char);
-
-   function Get_Flag (Win    : Window;
-                      Offset : Natural) return Boolean;
-
-   function Get_Flag (Win    : Window;
-                      Offset : Natural) return Boolean
-   is
-      Res : C_Int;
-   begin
-      case Sizeof_bool is
-         when 1 => Res := C_Int (W_Get_Byte  (Win, Offset));
-         when 2 => Res := C_Int (W_Get_Short (Win, Offset));
-         when 4 => Res := C_Int (W_Get_Int   (Win, Offset));
-         when others => raise Curses_Exception;
-      end case;
-
-      case Res is
-         when 0       => return False;
-         when others  => return True;
-      end case;
-   end Get_Flag;
-
-------------------------------------------------------------------------------
-   function Key_Name (Key : in Real_Key_Code) return String
-   is
-      function Keyname (K : C_Int) return chars_ptr;
-      pragma Import (C, Keyname, "keyname");
-
-      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
-            declare
-               S : String (1 .. 1);
-            begin
-               S (1) := Ch;
-               return S;
-            end;
-         else
-            return "";
-         end if;
-      else
-         return Fill_String (Keyname (C_Int (Key)));
-      end if;
-   end Key_Name;
-
-   procedure Key_Name (Key  : in  Real_Key_Code;
-                       Name : out String)
-   is
-   begin
-      ASF.Move (Key_Name (Key), Name);
-   end Key_Name;
-
-------------------------------------------------------------------------------
-   procedure Init_Screen
-   is
-      function Initscr return Window;
-      pragma Import (C, Initscr, "initscr");
-
-      W : Window;
-   begin
-      W := Initscr;
-      if W = Null_Window then
-         raise Curses_Exception;
-      end if;
-   end Init_Screen;
-
-   procedure End_Windows
-   is
-      function Endwin return C_Int;
-      pragma Import (C, Endwin, "endwin");
-   begin
-      if Endwin = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end End_Windows;
-
-   function Is_End_Window return Boolean
-   is
-      function Isendwin return Curses_Bool;
-      pragma Import (C, Isendwin, "isendwin");
-   begin
-      if Isendwin = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Is_End_Window;
-------------------------------------------------------------------------------
-   procedure Move_Cursor (Win    : in Window := Standard_Window;
-                          Line   : in Line_Position;
-                          Column : in Column_Position)
-   is
-      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;
-      end if;
-   end Move_Cursor;
-------------------------------------------------------------------------------
-   procedure Add (Win : in Window := Standard_Window;
-                  Ch  : in Attributed_Character)
-   is
-      function Waddch (W  : Window;
-                       Ch : C_Chtype) return C_Int;
-      pragma Import (C, Waddch, "waddch");
-   begin
-      if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Add;
-
-   procedure Add (Win : in Window := Standard_Window;
-                  Ch  : in Character)
-   is
-   begin
-      Add (Win,
-           Attributed_Character'(Ch    => Ch,
-                                 Color => Color_Pair'First,
-                                 Attr  => Normal_Video));
-   end Add;
-
-   procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Ch     : in Attributed_Character)
-   is
-      function mvwaddch (W  : Window;
-                         Y  : C_Int;
-                         X  : C_Int;
-                         Ch : C_Chtype) return C_Int;
-      pragma Import (C, mvwaddch, "mvwaddch");
-   begin
-      if mvwaddch (Win, C_Int (Line),
-                   C_Int (Column),
-                   AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Add;
-
-   procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Ch     : in Character)
-   is
-   begin
-      Add (Win,
-           Line,
-           Column,
-           Attributed_Character'(Ch    => Ch,
-                                 Color => Color_Pair'First,
-                                 Attr  => Normal_Video));
-   end Add;
-
-   procedure Add_With_Immediate_Echo
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character)
-   is
-      function Wechochar (W  : Window;
-                          Ch : C_Chtype) return C_Int;
-      pragma Import (C, Wechochar, "wechochar");
-   begin
-      if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Add_With_Immediate_Echo;
-
-   procedure Add_With_Immediate_Echo
-     (Win : in Window := Standard_Window;
-      Ch  : in 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
-   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;
-      pragma Import (C, Newwin, "newwin");
-
-      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;
-      end if;
-      return W;
-   end Create;
-
-   procedure Delete (Win : in out Window)
-   is
-      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;
-      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;
-      pragma Import (C, Derwin, "derwin");
-
-      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;
-      end if;
-      return W;
-   end Derived_Window;
-
-   function Duplicate (Win : Window) return Window
-   is
-      function Dupwin (Win : Window) return Window;
-      pragma Import (C, Dupwin, "dupwin");
-
-      W : constant Window := Dupwin (Win);
-   begin
-      if W = Null_Window then
-         raise Curses_Exception;
-      end if;
-      return W;
-   end Duplicate;
-
-   procedure Move_Window (Win    : in Window;
-                          Line   : in Line_Position;
-                          Column : in Column_Position)
-   is
-      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;
-      end if;
-   end Move_Window;
-
-   procedure Move_Derived_Window (Win    : in Window;
-                                  Line   : in Line_Position;
-                                  Column : in Column_Position)
-   is
-      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;
-      end if;
-   end Move_Derived_Window;
-
-   procedure Set_Synch_Mode (Win  : in Window  := Standard_Window;
-                             Mode : in Boolean := False)
-   is
-      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;
-      end if;
-   end Set_Synch_Mode;
-------------------------------------------------------------------------------
-   procedure Add (Win : in Window := Standard_Window;
-                  Str : in String;
-                  Len : in Integer := -1)
-   is
-      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;
-   begin
-      To_C (Str, Txt, Length);
-      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Add;
-
-   procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Str    : in String;
-      Len    : in Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Add (Win, Str, Len);
-   end Add;
-------------------------------------------------------------------------------
-   procedure Add
-     (Win : in Window := Standard_Window;
-      Str : in Attributed_String;
-      Len : in Integer := -1)
-   is
-      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);
-   begin
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Add;
-
-   procedure Add
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Str    : in Attributed_String;
-      Len    : in Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Add (Win, Str, Len);
-   end Add;
-------------------------------------------------------------------------------
-   procedure Border
-     (Win                       : in Window := Standard_Window;
-      Left_Side_Symbol          : in Attributed_Character := Default_Character;
-      Right_Side_Symbol         : in Attributed_Character := Default_Character;
-      Top_Side_Symbol           : in Attributed_Character := Default_Character;
-      Bottom_Side_Symbol        : in Attributed_Character := Default_Character;
-      Upper_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
-      Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
-      Lower_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
-      Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character)
-   is
-      function Wborder (W   : Window;
-                        LS  : C_Chtype;
-                        RS  : C_Chtype;
-                        TS  : C_Chtype;
-                        BS  : C_Chtype;
-                        ULC : C_Chtype;
-                        URC : C_Chtype;
-                        LLC : C_Chtype;
-                        LRC : C_Chtype) return C_Int;
-      pragma Import (C, Wborder, "wborder");
-   begin
-      if Wborder (Win,
-                  AttrChar_To_Chtype (Left_Side_Symbol),
-                  AttrChar_To_Chtype (Right_Side_Symbol),
-                  AttrChar_To_Chtype (Top_Side_Symbol),
-                  AttrChar_To_Chtype (Bottom_Side_Symbol),
-                  AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
-                  AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
-                  AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
-                  AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
-                  ) = Curses_Err
-      then
-         raise Curses_Exception;
-      end if;
-   end Border;
-
-   procedure Box
-     (Win               : in Window := Standard_Window;
-      Vertical_Symbol   : in Attributed_Character := Default_Character;
-      Horizontal_Symbol : in Attributed_Character := Default_Character)
-   is
-   begin
-      Border (Win,
-              Vertical_Symbol, Vertical_Symbol,
-              Horizontal_Symbol, Horizontal_Symbol);
-   end Box;
-
-   procedure Horizontal_Line
-     (Win         : in Window := Standard_Window;
-      Line_Size   : in Natural;
-      Line_Symbol : in Attributed_Character := Default_Character)
-   is
-      function Whline (W   : Window;
-                       Ch  : C_Chtype;
-                       Len : C_Int) return C_Int;
-      pragma Import (C, Whline, "whline");
-   begin
-      if Whline (Win,
-                 AttrChar_To_Chtype (Line_Symbol),
-                 C_Int (Line_Size)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Horizontal_Line;
-
-   procedure Vertical_Line
-     (Win         : in Window := Standard_Window;
-      Line_Size   : in Natural;
-      Line_Symbol : in Attributed_Character := Default_Character)
-   is
-      function Wvline (W   : Window;
-                       Ch  : C_Chtype;
-                       Len : C_Int) return C_Int;
-      pragma Import (C, Wvline, "wvline");
-   begin
-      if Wvline (Win,
-                 AttrChar_To_Chtype (Line_Symbol),
-                 C_Int (Line_Size)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Vertical_Line;
-
-------------------------------------------------------------------------------
-   function Get_Keystroke (Win : Window := Standard_Window)
-     return Real_Key_Code
-   is
-      function Wgetch (W : Window) return C_Int;
-      pragma Import (C, Wgetch, "wgetch");
-
-      C : constant C_Int := Wgetch (Win);
-   begin
-      if C = Curses_Err then
-         return Key_None;
-      else
-         return Real_Key_Code (C);
-      end if;
-   end Get_Keystroke;
-
-   procedure Undo_Keystroke (Key : in Real_Key_Code)
-   is
-      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;
-      end if;
-   end Undo_Keystroke;
-
-   function Has_Key (Key : Special_Key_Code) return Boolean
-   is
-      function Haskey (Key : C_Int) return C_Int;
-      pragma Import (C, Haskey, "has_key");
-   begin
-      if Haskey (C_Int (Key)) = Curses_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Has_Key;
-
-   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));
-   begin
-      if (Key >= Key_F0) and then (Key <= L) then
-         return True;
-      else
-         return False;
-      end if;
-   end Is_Function_Key;
-
-   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);
-      else
-         raise Constraint_Error;
-      end if;
-   end Function_Key;
-
-   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)
-   is
-      function wstandout (Win : Window) return C_Int;
-      pragma Import (C, wstandout, "wstandout");
-      function wstandend (Win : Window) return C_Int;
-      pragma Import (C, wstandend, "wstandend");
-
-      Err : C_Int;
-   begin
-      if On then
-         Err := wstandout (Win);
-      else
-         Err := wstandend (Win);
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Standout;
-
-   procedure Switch_Character_Attribute
-     (Win  : in Window := Standard_Window;
-      Attr : in Character_Attribute_Set := Normal_Video;
-      On   : in Boolean := True)
-   is
-      function Wattron (Win    : Window;
-                        C_Attr : C_AttrType) return C_Int;
-      pragma Import (C, Wattron, "wattr_on");
-      function Wattroff (Win    : Window;
-                         C_Attr : C_AttrType) 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, AttrChar_To_AttrType (AC));
-      else
-         Err := Wattroff (Win, AttrChar_To_AttrType (AC));
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Switch_Character_Attribute;
-
-   procedure Set_Character_Attributes
-     (Win   : in Window := Standard_Window;
-      Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First)
-   is
-      function Wattrset (Win    : Window;
-                         C_Attr : C_AttrType) return C_Int;
-      pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
-   begin
-      if Wattrset (Win,
-                   AttrChar_To_AttrType (Attributed_Character'
-                                         (Ch    => Character'First,
-                                          Color => Color,
-                                          Attr  => Attr))) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Character_Attributes;
-
-   function Get_Character_Attribute (Win : Window := Standard_Window)
-                                     return Character_Attribute_Set
-   is
-      function Wattrget (Win : Window;
-                         Atr : access C_AttrType;
-                         Col : access C_Short;
-                         Opt : System.Address) return C_Int;
-      pragma Import (C, Wattrget, "wattr_get");
-
-      Attr : aliased C_AttrType;
-      Col  : aliased C_Short;
-      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
-                                         System.Null_Address);
-      Ch   : Attributed_Character;
-   begin
-      if Res = Curses_Ok then
-         Ch := AttrType_To_AttrChar (Attr);
-         return Ch.Attr;
-      else
-         raise Curses_Exception;
-      end if;
-   end Get_Character_Attribute;
-
-   function Get_Character_Attribute (Win : Window := Standard_Window)
-                                     return Color_Pair
-   is
-      function Wattrget (Win : Window;
-                         Atr : access C_AttrType;
-                         Col : access C_Short;
-                         Opt : System.Address) return C_Int;
-      pragma Import (C, Wattrget, "wattr_get");
-
-      Attr : aliased C_AttrType;
-      Col  : aliased C_Short;
-      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
-                                         System.Null_Address);
-      Ch   : Attributed_Character;
-   begin
-      if Res = Curses_Ok then
-         Ch := AttrType_To_AttrChar (Attr);
-         return Ch.Color;
-      else
-         raise Curses_Exception;
-      end if;
-   end Get_Character_Attribute;
-
-   procedure Set_Color (Win  : in Window := Standard_Window;
-                        Pair : in Color_Pair)
-   is
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Set_Color;
-
-   procedure Change_Attributes
-     (Win   : in Window := Standard_Window;
-      Count : in Integer := -1;
-      Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First)
-   is
-      function Wchgat (Win   : Window;
-                       Cnt   : C_Int;
-                       Attr  : C_AttrType;
-                       Color : C_Short;
-                       Opts  : System.Address := System.Null_Address)
-                       return C_Int;
-      pragma Import (C, Wchgat, "wchgat");
-
-      Ch : constant Attributed_Character :=
-        (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
-   begin
-      if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
-                 C_Short (Color)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Change_Attributes;
-
-   procedure Change_Attributes
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position := Line_Position'First;
-      Column : in Column_Position := Column_Position'First;
-      Count  : in Integer := -1;
-      Attr   : in Character_Attribute_Set := Normal_Video;
-      Color  : in Color_Pair := Color_Pair'First)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Change_Attributes (Win, Count, Attr, Color);
-   end Change_Attributes;
-------------------------------------------------------------------------------
-   procedure Beep
-   is
-      function Beeper return C_Int;
-      pragma Import (C, Beeper, "beep");
-   begin
-      if Beeper = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Beep;
-
-   procedure Flash_Screen
-   is
-      function Flash return C_Int;
-      pragma Import (C, Flash, "flash");
-   begin
-      if Flash = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Flash_Screen;
-------------------------------------------------------------------------------
-   procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True)
-   is
-      function Cbreak return C_Int;
-      pragma Import (C, Cbreak, "cbreak");
-      function NoCbreak return C_Int;
-      pragma Import (C, NoCbreak, "nocbreak");
-
-      Err : C_Int;
-   begin
-      if SwitchOn then
-         Err := Cbreak;
-      else
-         Err := NoCbreak;
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Cbreak_Mode;
-
-   procedure Set_Raw_Mode (SwitchOn : in Boolean := True)
-   is
-      function Raw return C_Int;
-      pragma Import (C, Raw, "raw");
-      function NoRaw return C_Int;
-      pragma Import (C, NoRaw, "noraw");
-
-      Err : C_Int;
-   begin
-      if SwitchOn then
-         Err := Raw;
-      else
-         Err := NoRaw;
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Raw_Mode;
-
-   procedure Set_Echo_Mode (SwitchOn : in Boolean := True)
-   is
-      function Echo return C_Int;
-      pragma Import (C, Echo, "echo");
-      function NoEcho return C_Int;
-      pragma Import (C, NoEcho, "noecho");
-
-      Err : C_Int;
-   begin
-      if SwitchOn then
-         Err := Echo;
-      else
-         Err := NoEcho;
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Echo_Mode;
-
-   procedure Set_Meta_Mode (Win      : in Window := Standard_Window;
-                            SwitchOn : in Boolean := True)
-   is
-      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;
-      end if;
-   end Set_Meta_Mode;
-
-   procedure Set_KeyPad_Mode (Win      : in Window := Standard_Window;
-                              SwitchOn : in Boolean := True)
-   is
-      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;
-      end if;
-   end Set_KeyPad_Mode;
-
-   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
-                             return Boolean
-   is
-   begin
-      return Get_Flag (Win, Offset_use_keypad);
-   end Get_KeyPad_Mode;
-
-   procedure Half_Delay (Amount : in Half_Delay_Amount)
-   is
-      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;
-      end if;
-   end Half_Delay;
-
-   procedure Set_Flush_On_Interrupt_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := True)
-   is
-      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;
-      end if;
-   end Set_Flush_On_Interrupt_Mode;
-
-   procedure Set_Queue_Interrupt_Mode
-     (Win   : in Window := Standard_Window;
-      Flush : in Boolean := True)
-   is
-      procedure Qiflush;
-      pragma Import (C, Qiflush, "qiflush");
-      procedure No_Qiflush;
-      pragma Import (C, No_Qiflush, "noqiflush");
-   begin
-      if Win = Null_Window then
-         raise Curses_Exception;
-      end if;
-      if Flush then
-         Qiflush;
-      else
-         No_Qiflush;
-      end if;
-   end Set_Queue_Interrupt_Mode;
-
-   procedure Set_NoDelay_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := False)
-   is
-      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;
-      end if;
-   end Set_NoDelay_Mode;
-
-   procedure Set_Timeout_Mode (Win    : in Window := Standard_Window;
-                               Mode   : in Timeout_Mode;
-                               Amount : in Natural)
-   is
-      function Wtimeout (Win : Window; Amount : C_Int) return C_Int;
-      pragma Import (C, Wtimeout, "wtimeout");
-
-      Time : C_Int;
-   begin
-      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);
-      end case;
-      if Wtimeout (Win, Time) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Timeout_Mode;
-
-   procedure Set_Escape_Timer_Mode
-     (Win       : in Window := Standard_Window;
-      Timer_Off : in Boolean := False)
-   is
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Set_Escape_Timer_Mode;
-
-------------------------------------------------------------------------------
-   procedure Set_NL_Mode (SwitchOn : in Boolean := True)
-   is
-      function NL return C_Int;
-      pragma Import (C, NL, "nl");
-      function NoNL return C_Int;
-      pragma Import (C, NoNL, "nonl");
-
-      Err : C_Int;
-   begin
-      if SwitchOn then
-         Err := NL;
-      else
-         Err := NoNL;
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_NL_Mode;
-
-   procedure Clear_On_Next_Update
-     (Win      : in Window := Standard_Window;
-      Do_Clear : in Boolean := True)
-   is
-      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;
-      end if;
-   end Clear_On_Next_Update;
-
-   procedure Use_Insert_Delete_Line
-     (Win    : in Window := Standard_Window;
-      Do_Idl : in Boolean := True)
-   is
-      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;
-      end if;
-   end Use_Insert_Delete_Line;
-
-   procedure Use_Insert_Delete_Character
-     (Win    : in Window := Standard_Window;
-      Do_Idc : in Boolean := True)
-   is
-      function IDC_Ok (W : Window; Flag : Curses_Bool) return C_Int;
-      pragma Import (C, IDC_Ok, "idcok");
-   begin
-      if IDC_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idc))) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Use_Insert_Delete_Character;
-
-   procedure Leave_Cursor_After_Update
-     (Win      : in Window := Standard_Window;
-      Do_Leave : in Boolean := True)
-   is
-      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;
-      end if;
-   end Leave_Cursor_After_Update;
-
-   procedure Immediate_Update_Mode
-     (Win  : in Window := Standard_Window;
-      Mode : in Boolean := False)
-   is
-      function Immedok (Win : Window; Mode : Curses_Bool) return C_Int;
-      pragma Import (C, Immedok, "immedok");
-   begin
-      if Immedok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Immediate_Update_Mode;
-
-   procedure Allow_Scrolling
-     (Win  : in Window  := Standard_Window;
-      Mode : in Boolean := False)
-   is
-      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;
-      end if;
-   end Allow_Scrolling;
-
-   function Scrolling_Allowed (Win : Window := Standard_Window)
-                               return Boolean
-   is
-   begin
-      return Get_Flag (Win, Offset_scroll);
-   end Scrolling_Allowed;
-
-   procedure Set_Scroll_Region
-     (Win         : in Window := Standard_Window;
-      Top_Line    : in Line_Position;
-      Bottom_Line : in Line_Position)
-   is
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Set_Scroll_Region;
-------------------------------------------------------------------------------
-   procedure Update_Screen
-   is
-      function Do_Update return C_Int;
-      pragma Import (C, Do_Update, "doupdate");
-   begin
-      if Do_Update = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Update_Screen;
-
-   procedure Refresh (Win : in Window := Standard_Window)
-   is
-      function Wrefresh (W : Window) return C_Int;
-      pragma Import (C, Wrefresh, "wrefresh");
-   begin
-      if Wrefresh (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Refresh;
-
-   procedure Refresh_Without_Update
-     (Win : in Window := Standard_Window)
-   is
-      function Wnoutrefresh (W : Window) return C_Int;
-      pragma Import (C, Wnoutrefresh, "wnoutrefresh");
-   begin
-      if Wnoutrefresh (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Refresh_Without_Update;
-
-   procedure Redraw (Win : in Window := Standard_Window)
-   is
-      function Redrawwin (Win : Window) return C_Int;
-      pragma Import (C, Redrawwin, "redrawwin");
-   begin
-      if Redrawwin (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Redraw;
-
-   procedure Redraw
-     (Win        : in Window := Standard_Window;
-      Begin_Line : in Line_Position;
-      Line_Count : in Positive)
-   is
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Redraw;
-
-------------------------------------------------------------------------------
-   procedure Erase (Win : in Window := Standard_Window)
-   is
-      function Werase (W : Window) return C_Int;
-      pragma Import (C, Werase, "werase");
-   begin
-      if Werase (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Erase;
-
-   procedure Clear (Win : in Window := Standard_Window)
-   is
-      function Wclear (W : Window) return C_Int;
-      pragma Import (C, Wclear, "wclear");
-   begin
-      if Wclear (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Clear;
-
-   procedure Clear_To_End_Of_Screen (Win : in Window := Standard_Window)
-   is
-      function Wclearbot (W : Window) return C_Int;
-      pragma Import (C, Wclearbot, "wclrtobot");
-   begin
-      if Wclearbot (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Clear_To_End_Of_Screen;
-
-   procedure Clear_To_End_Of_Line (Win : in Window := Standard_Window)
-   is
-      function Wcleareol (W : Window) return C_Int;
-      pragma Import (C, Wcleareol, "wclrtoeol");
-   begin
-      if Wcleareol (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Clear_To_End_Of_Line;
-------------------------------------------------------------------------------
-   procedure Set_Background
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character)
-   is
-      procedure WBackground (W : in Window; Ch : in C_Chtype);
-      pragma Import (C, WBackground, "wbkgdset");
-   begin
-      WBackground (Win, AttrChar_To_Chtype (Ch));
-   end Set_Background;
-
-   procedure Change_Background
-     (Win : in Window := Standard_Window;
-      Ch  : in Attributed_Character)
-   is
-      function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
-      pragma Import (C, WChangeBkgd, "wbkgd");
-   begin
-      if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Change_Background;
-
-   function Get_Background (Win : Window := Standard_Window)
-     return Attributed_Character
-   is
-      function Wgetbkgd (Win : Window) return C_Chtype;
-      pragma Import (C, Wgetbkgd, "getbkgd");
-   begin
-      return Chtype_To_AttrChar (Wgetbkgd (Win));
-   end Get_Background;
-------------------------------------------------------------------------------
-   procedure Change_Lines_Status (Win   : in Window := Standard_Window;
-                                  Start : in Line_Position;
-                                  Count : in Positive;
-                                  State : in 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 then
-         raise Curses_Exception;
-      end if;
-   end Change_Lines_Status;
-
-   procedure Touch (Win : in Window := Standard_Window)
-   is
-      Y : Line_Position;
-      X : Column_Position;
-   begin
-      Get_Size (Win, Y, X);
-      Change_Lines_Status (Win, 0, Positive (Y), True);
-   end Touch;
-
-   procedure Untouch (Win : in Window := Standard_Window)
-   is
-      Y : Line_Position;
-      X : Column_Position;
-   begin
-      Get_Size (Win, Y, X);
-      Change_Lines_Status (Win, 0, Positive (Y), False);
-   end Untouch;
-
-   procedure Touch (Win   : in Window := Standard_Window;
-                    Start : in Line_Position;
-                    Count : in Positive)
-   is
-   begin
-      Change_Lines_Status (Win, Start, Count, True);
-   end Touch;
-
-   function Is_Touched
-     (Win  : Window := Standard_Window;
-      Line : Line_Position) return Boolean
-   is
-      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
-         return False;
-      else
-         return True;
-      end if;
-   end Is_Touched;
-
-   function Is_Touched
-     (Win : Window := Standard_Window) return Boolean
-   is
-      function WWinTouched (W : Window) return Curses_Bool;
-      pragma Import (C, WWinTouched, "is_wintouched");
-   begin
-      if WWinTouched (Win) = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Is_Touched;
-------------------------------------------------------------------------------
-   procedure Copy
-     (Source_Window            : in Window;
-      Destination_Window       : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in Column_Position;
-      Non_Destructive_Mode     : in 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 then
-         raise Curses_Exception;
-      end if;
-   end Copy;
-
-   procedure Overwrite
-     (Source_Window      : in Window;
-      Destination_Window : in Window)
-   is
-      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;
-      end if;
-   end Overwrite;
-
-   procedure Overlay
-     (Source_Window      : in Window;
-      Destination_Window : in Window)
-   is
-      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;
-      end if;
-   end Overlay;
-
-------------------------------------------------------------------------------
-   procedure Insert_Delete_Lines
-     (Win   : in Window := Standard_Window;
-      Lines : in Integer       := 1) -- default is to insert one line above
-   is
-      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;
-      end if;
-   end Insert_Delete_Lines;
-
-   procedure Delete_Line (Win : in Window := Standard_Window)
-   is
-   begin
-      Insert_Delete_Lines (Win, -1);
-   end Delete_Line;
-
-   procedure Insert_Line (Win : in Window := Standard_Window)
-   is
-   begin
-      Insert_Delete_Lines (Win, 1);
-   end Insert_Line;
-------------------------------------------------------------------------------
-
-   procedure Get_Size
-     (Win               : in Window := Standard_Window;
-      Number_Of_Lines   : out Line_Count;
-      Number_Of_Columns : out Column_Count)
-   is
-      --  Please note: in ncurses they are one off.
-      --  This might be different in other implementations of curses
-      Y : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxy))
-                          + C_Int (Offset_XY);
-      X : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxx))
-                          + C_Int (Offset_XY);
-   begin
-      Number_Of_Lines   := Line_Count (Y);
-      Number_Of_Columns := Column_Count (X);
-   end Get_Size;
-
-   procedure Get_Window_Position
-     (Win             : in Window := Standard_Window;
-      Top_Left_Line   : out Line_Position;
-      Top_Left_Column : out Column_Position)
-   is
-      Y : constant C_Short := W_Get_Short (Win, Offset_begy);
-      X : constant C_Short := W_Get_Short (Win, Offset_begx);
-   begin
-      Top_Left_Line   := Line_Position (Y);
-      Top_Left_Column := Column_Position (X);
-   end Get_Window_Position;
-
-   procedure Get_Cursor_Position
-     (Win    : in  Window := Standard_Window;
-      Line   : out Line_Position;
-      Column : out Column_Position)
-   is
-      Y : constant C_Short := W_Get_Short (Win, Offset_cury);
-      X : constant C_Short := W_Get_Short (Win, Offset_curx);
-   begin
-      Line   := Line_Position (Y);
-      Column := Column_Position (X);
-   end Get_Cursor_Position;
-
-   procedure Get_Origin_Relative_To_Parent
-     (Win                : in  Window;
-      Top_Left_Line      : out Line_Position;
-      Top_Left_Column    : out Column_Position;
-      Is_Not_A_Subwindow : out Boolean)
-   is
-      Y : constant C_Int := W_Get_Int (Win, Offset_pary);
-      X : constant C_Int := W_Get_Int (Win, Offset_parx);
-   begin
-      if Y = -1 then
-         Top_Left_Line   := Line_Position'Last;
-         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;
-      end if;
-   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;
-      pragma Import (C, Newpad, "newpad");
-
-      W : Window;
-   begin
-      W := Newpad (C_Int (Lines), C_Int (Columns));
-      if W = Null_Window then
-         raise Curses_Exception;
-      end if;
-      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
-   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;
-      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                      : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in 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 then
-         raise Curses_Exception;
-      end if;
-   end Refresh;
-
-   procedure Refresh_Without_Update
-     (Pad                      : in Window;
-      Source_Top_Row           : in Line_Position;
-      Source_Left_Column       : in Column_Position;
-      Destination_Top_Row      : in Line_Position;
-      Destination_Left_Column  : in Column_Position;
-      Destination_Bottom_Row   : in Line_Position;
-      Destination_Right_Column : in 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 then
-         raise Curses_Exception;
-      end if;
-   end Refresh_Without_Update;
-
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : in Window;
-      Ch  : in Attributed_Character)
-   is
-      function Pechochar (Pad : Window; Ch : C_Chtype)
-                          return C_Int;
-      pragma Import (C, Pechochar, "pechochar");
-   begin
-      if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Add_Character_To_Pad_And_Echo_It;
-
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : in Window;
-      Ch  : in 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    : in Window := Standard_Window;
-                     Amount : in Integer := 1)
-   is
-      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;
-      end if;
-   end Scroll;
-
-------------------------------------------------------------------------------
-   procedure Delete_Character (Win : in Window := Standard_Window)
-   is
-      function Wdelch (Win : Window) return C_Int;
-      pragma Import (C, Wdelch, "wdelch");
-   begin
-      if Wdelch (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Delete_Character;
-
-   procedure Delete_Character
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position)
-   is
-      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;
-      end if;
-   end Delete_Character;
-------------------------------------------------------------------------------
-   function Peek (Win : Window := Standard_Window)
-     return Attributed_Character
-   is
-      function Winch (Win : Window) return C_Chtype;
-      pragma Import (C, Winch, "winch");
-   begin
-      return Chtype_To_AttrChar (Winch (Win));
-   end Peek;
-
-   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 C_Chtype;
-      pragma Import (C, Mvwinch, "mvwinch");
-   begin
-      return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Insert (Win : in Window := Standard_Window;
-                     Ch  : in Attributed_Character)
-   is
-      function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
-      pragma Import (C, Winsch, "winsch");
-   begin
-      if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Insert;
-
-   procedure Insert
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Ch     : in Attributed_Character)
-   is
-      function Mvwinsch (Win : Window;
-                         Lin : C_Int;
-                         Col : C_Int;
-                         Ch  : C_Chtype) return C_Int;
-      pragma Import (C, Mvwinsch, "mvwinsch");
-   begin
-      if Mvwinsch (Win,
-                   C_Int (Line),
-                   C_Int (Column),
-                   AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Insert;
-------------------------------------------------------------------------------
-   procedure Insert (Win : in Window := Standard_Window;
-                     Str : in String;
-                     Len : in Integer := -1)
-   is
-      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;
-   begin
-      To_C (Str, Txt, Length);
-      if Winsnstr (Win, Txt, Len) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Insert;
-
-   procedure Insert
-     (Win    : in Window := Standard_Window;
-      Line   : in Line_Position;
-      Column : in Column_Position;
-      Str    : in String;
-      Len    : in Integer := -1)
-   is
-      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;
-   begin
-      To_C (Str, Txt, Length);
-      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
-        = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Insert;
-------------------------------------------------------------------------------
-   procedure Peek (Win : in  Window := Standard_Window;
-                   Str : out String;
-                   Len : in  Integer := -1)
-   is
-      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;
-   begin
-      if N < 0 then
-         N := Str'Length;
-      end if;
-      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;
-      end if;
-      To_Ada (Txt, Str, Cnt, True);
-      if Cnt < Str'Length then
-         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
-      end if;
-   end Peek;
-
-   procedure Peek
-     (Win    : in  Window := Standard_Window;
-      Line   : in  Line_Position;
-      Column : in  Column_Position;
-      Str    : out String;
-      Len    : in  Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Peek (Win, Str, Len);
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Peek
-     (Win : in  Window := Standard_Window;
-      Str : out Attributed_String;
-      Len : in  Integer := -1)
-   is
-      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;
-   begin
-      if N < 0 then
-         N := Str'Length;
-      end if;
-      if N > Str'Length then
-         raise Constraint_Error;
-      end if;
-      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;
-      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    : in  Window := Standard_Window;
-      Line   : in  Line_Position;
-      Column : in  Column_Position;
-      Str    : out Attributed_String;
-      Len    : in Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Peek (Win, Str, Len);
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Get (Win : in  Window := Standard_Window;
-                  Str : out String;
-                  Len : in  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;
-   begin
-      if N < 0 then
-         N := Str'Length;
-      end if;
-      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;
-      end if;
-      To_Ada (Txt, Str, Cnt, True);
-      if Cnt < Str'Length then
-         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
-      end if;
-   end Get;
-
-   procedure Get
-     (Win    : in  Window := Standard_Window;
-      Line   : in  Line_Position;
-      Column : in  Column_Position;
-      Str    : out String;
-      Len    : in  Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Get (Win, Str, Len);
-   end Get;
-------------------------------------------------------------------------------
-   procedure Init_Soft_Label_Keys
-     (Format : in Soft_Label_Key_Format := Three_Two_Three)
-   is
-      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;
-      end if;
-   end Init_Soft_Label_Keys;
-
-   procedure Set_Soft_Label_Key (Label : in Label_Number;
-                                 Text  : in String;
-                                 Fmt   : in Label_Justification := Left)
-   is
-      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;
-   begin
-      To_C (Text, Txt, Len);
-      if Slk_Set (C_Int (Label), Txt,
-                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Soft_Label_Key;
-
-   procedure Refresh_Soft_Label_Keys
-   is
-      function Slk_Refresh return C_Int;
-      pragma Import (C, Slk_Refresh, "slk_refresh");
-   begin
-      if Slk_Refresh = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Refresh_Soft_Label_Keys;
-
-   procedure Refresh_Soft_Label_Keys_Without_Update
-   is
-      function Slk_Noutrefresh return C_Int;
-      pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
-   begin
-      if Slk_Noutrefresh = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Refresh_Soft_Label_Keys_Without_Update;
-
-   procedure Get_Soft_Label_Key (Label : in Label_Number;
-                                 Text  : out String)
-   is
-      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;
-
-   function Get_Soft_Label_Key (Label : in Label_Number) return String
-   is
-      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;
-
-   procedure Clear_Soft_Label_Keys
-   is
-      function Slk_Clear return C_Int;
-      pragma Import (C, Slk_Clear, "slk_clear");
-   begin
-      if Slk_Clear = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Clear_Soft_Label_Keys;
-
-   procedure Restore_Soft_Label_Keys
-   is
-      function Slk_Restore return C_Int;
-      pragma Import (C, Slk_Restore, "slk_restore");
-   begin
-      if Slk_Restore = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Restore_Soft_Label_Keys;
-
-   procedure Touch_Soft_Label_Keys
-   is
-      function Slk_Touch return C_Int;
-      pragma Import (C, Slk_Touch, "slk_touch");
-   begin
-      if Slk_Touch = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Touch_Soft_Label_Keys;
-
-   procedure Switch_Soft_Label_Key_Attributes
-     (Attr : in Character_Attribute_Set;
-      On   : in Boolean := True)
-   is
-      function Slk_Attron (Ch : C_Chtype) return C_Int;
-      pragma Import (C, Slk_Attron, "slk_attron");
-      function Slk_Attroff (Ch : C_Chtype) 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);
-   begin
-      if On then
-         Err := Slk_Attron  (AttrChar_To_Chtype (Ch));
-      else
-         Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
-      end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Switch_Soft_Label_Key_Attributes;
-
-   procedure Set_Soft_Label_Key_Attributes
-     (Attr  : in Character_Attribute_Set := Normal_Video;
-      Color : in Color_Pair := Color_Pair'First)
-   is
-      function Slk_Attrset (Ch : C_Chtype) return C_Int;
-      pragma Import (C, Slk_Attrset, "slk_attrset");
-
-      Ch : constant Attributed_Character := (Ch    => Character'First,
-                                             Attr  => Attr,
-                                             Color => Color);
-   begin
-      if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Set_Soft_Label_Key_Attributes;
-
-   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
-   is
-      function Slk_Attr return C_Chtype;
-      pragma Import (C, Slk_Attr, "slk_attr");
-
-      Attr : constant C_Chtype := Slk_Attr;
-   begin
-      return Chtype_To_AttrChar (Attr).Attr;
-   end Get_Soft_Label_Key_Attributes;
-
-   function Get_Soft_Label_Key_Attributes return Color_Pair
-   is
-      function Slk_Attr return C_Chtype;
-      pragma Import (C, Slk_Attr, "slk_attr");
-
-      Attr : constant C_Chtype := Slk_Attr;
-   begin
-      return Chtype_To_AttrChar (Attr).Color;
-   end Get_Soft_Label_Key_Attributes;
-
-   procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair)
-   is
-      function Slk_Color (Color : in 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;
-      end if;
-   end Set_Soft_Label_Key_Color;
-
-------------------------------------------------------------------------------
-   procedure Enable_Key (Key    : in Special_Key_Code;
-                         Enable : in Boolean := True)
-   is
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Enable_Key;
-------------------------------------------------------------------------------
-   procedure Define_Key (Definition : in String;
-                         Key        : in Special_Key_Code)
-   is
-      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;
-   begin
-      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  : in Attributed_Character;
-                         Str : out String)
-   is
-      function Unctrl (Ch : C_Chtype) return chars_ptr;
-      pragma Import (C, Unctrl, "unctrl");
-   begin
-      Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
-   end Un_Control;
-
-   function Un_Control (Ch : in Attributed_Character) return String
-   is
-      function Unctrl (Ch : C_Chtype) return chars_ptr;
-      pragma Import (C, Unctrl, "unctrl");
-   begin
-      return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
-   end Un_Control;
-
-   procedure Delay_Output (Msecs : in Natural)
-   is
-      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;
-      end if;
-   end Delay_Output;
-
-   procedure Flush_Input
-   is
-      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;
-      end if;
-   end Flush_Input;
-------------------------------------------------------------------------------
-   function Baudrate return Natural
-   is
-      function Baud return C_Int;
-      pragma Import (C, Baud, "baudrate");
-   begin
-      return Natural (Baud);
-   end Baudrate;
-
-   function Erase_Character return Character
-   is
-      function Erasechar return C_Int;
-      pragma Import (C, Erasechar, "erasechar");
-   begin
-      return Character'Val (Erasechar);
-   end Erase_Character;
-
-   function Kill_Character return Character
-   is
-      function Killchar return C_Int;
-      pragma Import (C, Killchar, "killchar");
-   begin
-      return Character'Val (Killchar);
-   end Kill_Character;
-
-   function Has_Insert_Character return Boolean
-   is
-      function Has_Ic return Curses_Bool;
-      pragma Import (C, Has_Ic, "has_ic");
-   begin
-      if Has_Ic = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Has_Insert_Character;
-
-   function Has_Insert_Line return Boolean
-   is
-      function Has_Il return Curses_Bool;
-      pragma Import (C, Has_Il, "has_il");
-   begin
-      if Has_Il = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Has_Insert_Line;
-
-   function Supported_Attributes return Character_Attribute_Set
-   is
-      function Termattrs return C_Chtype;
-      pragma Import (C, Termattrs, "termattrs");
-
-      Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
-   begin
-      return Ch.Attr;
-   end Supported_Attributes;
-
-   procedure Long_Name (Name : out String)
-   is
-      function Longname return chars_ptr;
-      pragma Import (C, Longname, "longname");
-   begin
-      Fill_String (Longname, Name);
-   end Long_Name;
-
-   function Long_Name return String
-   is
-      function Longname return chars_ptr;
-      pragma Import (C, Longname, "longname");
-   begin
-      return Fill_String (Longname);
-   end Long_Name;
-
-   procedure Terminal_Name (Name : out String)
-   is
-      function Termname return chars_ptr;
-      pragma Import (C, Termname, "termname");
-   begin
-      Fill_String (Termname, Name);
-   end Terminal_Name;
-
-   function Terminal_Name return String
-   is
-      function Termname return chars_ptr;
-      pragma Import (C, Termname, "termname");
-   begin
-      return Fill_String (Termname);
-   end Terminal_Name;
-------------------------------------------------------------------------------
-   procedure Init_Pair (Pair : in Redefinable_Color_Pair;
-                        Fore : in Color_Number;
-                        Back : in Color_Number)
-   is
-      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
-         raise Constraint_Error;
-      end if;
-      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 then
-         raise Curses_Exception;
-      end if;
-   end Init_Pair;
-
-   procedure Pair_Content (Pair : in 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;
-      pragma Import (C, Paircontent, "pair_content");
-
-      F, B : aliased C_Short;
-   begin
-      if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
-         raise Curses_Exception;
-      else
-         Fore := Color_Number (F);
-         Back := Color_Number (B);
-      end if;
-   end Pair_Content;
-
-   function Has_Colors return Boolean
-   is
-      function Hascolors return Curses_Bool;
-      pragma Import (C, Hascolors, "has_colors");
-   begin
-      if Hascolors = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Has_Colors;
-
-   procedure Init_Color (Color : in Color_Number;
-                         Red   : in RGB_Value;
-                         Green : in RGB_Value;
-                         Blue  : in RGB_Value)
-   is
-      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 then
-            raise Curses_Exception;
-      end if;
-   end Init_Color;
-
-   function Can_Change_Color return Boolean
-   is
-      function Canchangecolor return Curses_Bool;
-      pragma Import (C, Canchangecolor, "can_change_color");
-   begin
-      if Canchangecolor = Curses_Bool_False then
-         return False;
-      else
-         return True;
-      end if;
-   end Can_Change_Color;
-
-   procedure Color_Content (Color : in  Color_Number;
-                            Red   : out RGB_Value;
-                            Green : out RGB_Value;
-                            Blue  : out RGB_Value)
-   is
-      type C_Short_Access is access all C_Short;
-
-      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;
-   begin
-      if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
-        Curses_Err then
-         raise Curses_Exception;
-      else
-         Red   := RGB_Value (R);
-         Green := RGB_Value (G);
-         Blue  := RGB_Value (B);
-      end if;
-   end Color_Content;
-
-------------------------------------------------------------------------------
-   procedure Save_Curses_Mode (Mode : in Curses_Mode)
-   is
-      function Def_Prog_Mode return C_Int;
-      pragma Import (C, Def_Prog_Mode, "def_prog_mode");
-      function Def_Shell_Mode return C_Int;
-      pragma Import (C, Def_Shell_Mode, "def_shell_mode");
-
-      Err : C_Int;
-   begin
-      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;
-      end if;
-   end Save_Curses_Mode;
-
-   procedure Reset_Curses_Mode (Mode : in Curses_Mode)
-   is
-      function Reset_Prog_Mode return C_Int;
-      pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
-      function Reset_Shell_Mode return C_Int;
-      pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
-
-      Err : C_Int;
-   begin
-      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;
-      end if;
-   end Reset_Curses_Mode;
-
-   procedure Save_Terminal_State
-   is
-      function Savetty return C_Int;
-      pragma Import (C, Savetty, "savetty");
-   begin
-      if Savetty = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Save_Terminal_State;
-
-   procedure Reset_Terminal_State
-   is
-      function Resetty return C_Int;
-      pragma Import (C, Resetty, "resetty");
-   begin
-      if Resetty = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Reset_Terminal_State;
-
-   procedure Rip_Off_Lines (Lines : in Integer;
-                            Proc  : in Stdscr_Init_Proc)
-   is
-      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;
-      end if;
-   end Rip_Off_Lines;
-
-   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
-   is
-      function Curs_Set (Curs : C_Int) return C_Int;
-      pragma Import (C, Curs_Set, "curs_set");
-
-      Res : C_Int;
-   begin
-      Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
-      if Res /= Curses_Err then
-         Visibility := Cursor_Visibility'Val (Res);
-      end if;
-   end Set_Cursor_Visibility;
-
-   procedure Nap_Milli_Seconds (Ms : in Natural)
-   is
-      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;
-      end if;
-   end Nap_Milli_Seconds;
-------------------------------------------------------------------------------
-
-   function Standard_Window return Window
-   is
-      Stdscr : Window;
-      pragma Import (C, Stdscr, "stdscr");
-   begin
-      return Stdscr;
-   end Standard_Window;
-
-   function Lines return Line_Count
-   is
-      C_Lines : C_Int;
-      pragma Import (C, C_Lines, "LINES");
-   begin
-      return Line_Count (C_Lines);
-   end Lines;
-
-   function Columns return Column_Count
-   is
-      C_Columns : C_Int;
-      pragma Import (C, C_Columns, "COLS");
-   begin
-      return Column_Count (C_Columns);
-   end Columns;
-
-   function Tab_Size return Natural
-   is
-      C_Tab_Size : C_Int;
-      pragma Import (C, C_Tab_Size, "TABSIZE");
-   begin
-      return Natural (C_Tab_Size);
-   end Tab_Size;
-
-   function Number_Of_Colors return Natural
-   is
-      C_Number_Of_Colors : C_Int;
-      pragma Import (C, C_Number_Of_Colors, "COLORS");
-   begin
-      return Natural (C_Number_Of_Colors);
-   end Number_Of_Colors;
-
-   function Number_Of_Color_Pairs return Natural
-   is
-      C_Number_Of_Color_Pairs : C_Int;
-      pragma Import (C, C_Number_Of_Color_Pairs, "COLOR_PAIRS");
-   begin
-      return Natural (C_Number_Of_Color_Pairs);
-   end Number_Of_Color_Pairs;
-------------------------------------------------------------------------------
-   procedure Transform_Coordinates
-     (W      : in Window := Standard_Window;
-      Line   : in out Line_Position;
-      Column : in out Column_Position;
-      Dir    : in 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;
-   begin
-      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;
-      else
-         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;
-      pragma Import (C, C_Use_Default_Colors, "use_default_colors");
-      Err : constant C_Int := C_Use_Default_Colors;
-   begin
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Use_Default_Colors;
-
-   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;
-      pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
-
-      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
-                                                       C_Int (Back));
-   begin
-      if Err = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Assume_Default_Colors;
-------------------------------------------------------------------------------
-   function Curses_Version return String
-   is
-      function curses_versionC return chars_ptr;
-      pragma Import (C, curses_versionC, "curses_version");
-      Result : constant chars_ptr := curses_versionC;
-   begin
-      return Fill_String (Result);
-   end Curses_Version;
-------------------------------------------------------------------------------
-   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)));
-   begin
-      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 : in String)
-   is
-      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;
-   begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_dump (Txt) then
-         raise Curses_Exception;
-      end if;
-   end Screen_Dump_To_File;
-
-   procedure Screen_Restore_From_File (Filename : in String)
-   is
-      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;
-   begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_restore (Txt)  then
-         raise Curses_Exception;
-      end if;
-   end Screen_Restore_From_File;
-
-   procedure Screen_Init_From_File (Filename : in String)
-   is
-      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;
-   begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_init (Txt) then
-         raise Curses_Exception;
-      end if;
-   end Screen_Init_From_File;
-
-   procedure Screen_Set_File (Filename : in String)
-   is
-      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;
-      pragma Import (C, wresize);
-   begin
-      if wresize (Win,
-                  C_Int (Number_Of_Lines),
-                  C_Int (Number_Of_Columns)) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-   end Resize;
-------------------------------------------------------------------------------
-
-end Terminal_Interface.Curses;
diff -Naur ncurses-5.6.orig/INSTALL ncurses-5.6/INSTALL
--- ncurses-5.6.orig/INSTALL	2006-12-17 14:58:19.000000000 -0500
+++ ncurses-5.6/INSTALL	2008-06-18 06:49:49.000000000 -0400
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.114 2006/12/17 19:58:19 tom Exp $
+-- $Id: INSTALL,v 1.124 2008/03/29 18:07:32 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -149,6 +149,9 @@
     recent implementation of libiconv.  We have built this configuration on
     Linux using libiconv, sometimes requiring libutf8.
 
+    If you configure using the --with-pthread option, a "t" is appended to
+    the library names (e.g., libncursest.a, libncursestw.a).
+
     If you do not specify any models, the normal and debug libraries will be
     configured.  Typing `configure' with no arguments is equivalent to:
 
@@ -304,6 +307,11 @@
 	return deceptive results, so you may have to override the configure
 	script.  Or you may be building tic for a smaller machine.
 
+    --disable-big-strings
+	Disable compile-time optimization of predefined tables which puts
+	all of their strings into a very long string, to reduce relocation
+	overhead.
+
     --disable-database
 	Use only built-in data.  The ncurses libraries normally read terminfo
 	and termcap data from disk.  You can configure ncurses to have a
@@ -334,6 +342,16 @@
 	For testing, compile-in code that frees memory that normally would not
 	be freed, to simplify analysis of memory-leaks.
 
+	Any implementation of curses must not free the memory associated with
+	a screen, since (even after calling endwin()), it must be available
+	for use in the next call to refresh().  There are also chunks of
+	memory held for performance reasons.  That makes it hard to analyze
+	curses applications for memory leaks.  To work around this, build
+	a debugging version of the ncurses library which frees those chunks
+	which it can, and provides the _nc_free_and_exit() function to free
+	the remainder on exit.  The ncurses utility and test programs use this
+	feature, e.g., via the ExitProgram() macro.
+
     --disable-lp64
 	The header files will ignore use of the _LP64 symbol to make chtype
 	and mmask_t types 32 bits (they may be long on 64-bit hosts, for
@@ -358,6 +376,13 @@
 	rather than the include directory.  This makes it simpler to avoid
 	compile-time conflicts with other versions of curses.h
 
+    --disable-relink
+	If --enable-rpath is given, the generated makefiles normally will
+	rebuild the libraries during install.  Use this option to simply
+	copy whatever the linked produced.
+
+	This option is ignored if --enable-rpath is not given.
+
     --disable-root-environ
 	Compile with environment restriction, so certain environment variables
 	are not available when running as root, or via a setuid/setgid
@@ -476,12 +501,23 @@
 	may not be accurate, or that your stty settings have disabled the use
 	of tabs.
 
+    --enable-mixed-case
+	Controls whether the filesystem on which the terminfo database resides
+	supports mixed-case filenames (normal for UNIX, but not on other
+	systems).  If you do not specify this option, the configure script
+	checks the current filesystem.
+
     --enable-no-padding
 	Compile-in support for the $NCURSES_NO_PADDING environment variable,
 	which allows you to suppress the effect of non-mandatory padding in
 	terminfo entries.  This is the default, unless you have disabled the
 	extended functions.
 
+    --enable-reentrant
+	Compile experimental configuration which improves reentrant use of the
+	library by reducing global and static variables.  This option is also
+	set if --with-pthread is used.
+
     --enable-rpath
 	Use rpath option when generating shared libraries, and (with some
 	restrictions) when linking the corresponding programs.  This originally
@@ -495,6 +531,9 @@
 	environment variable, they do not work with setuid applications since
 	the LD_LIBRARY_PATH variable would be unset in that situation.
 
+	This option does not apply to --with-libtool, since libtool makes
+	extra assumptions about rpath.
+
     --enable-safe-sprintf
 	Compile with experimental safe-sprintf code.  You may consider using
 	this if you are building ncurses for a system that has neither
@@ -659,10 +698,16 @@
 
 	See also --without-dlsym
 
-    --with-hashed-db
+    --with-hashed-db[=XXX]
 	Use a hashed database for storing terminfo data rather than storing
 	each compiled entry in a separate binary file within a directory
 	tree.
+	
+	In particular, this uses the Berkeley database 1.8.5 interface, as
+	provided by that and its successors db 2, 3, and 4.  The actual
+	interface is slightly different in the successor versions of the
+	Berkeley database.  The database should have been configured using
+	"--enable-compat185".
 
 	If you use this option for configuring ncurses, tic will only be able
 	to write entries in the hashed database.  infocmp can still read
@@ -674,6 +719,12 @@
 	You cannot have a directory containing both hashed-database and
 	filesystem-based terminfo entries.
 
+	Use the parameter value to give the install-prefix used for the
+	datbase, e.g.,
+		--with-hashed-db=/usr/local/BigBase
+	to find the corresponding include- and lib-directories under the
+	given directory.
+
 	See also the --enable-getcap option.
 
     --with-install-prefix=XXX
@@ -769,6 +820,11 @@
 	Generate profile-libraries These are named by adding "_p" to the root,
 	e.g., libncurses_p.a
 
+    --with-pthread
+	Link with POSIX threads, set --enable-reentrant.  The use_window() and
+	use_screen() functions will use mutex's, allowing rudimentary support
+	for multithreaded applications.
+
     --with-rcs-ids
 	Compile-in RCS identifiers.  Most of the C files have an identifier.
 
@@ -833,6 +889,15 @@
 	Specify a search-list of termcap files which will be compiled into the
 	ncurses library (default:  /etc/termcap:/usr/share/misc/termcap)
 
+    --with-ticlib[=XXX]
+	When building the ncurses library, build a separate library for
+	the modules that are used only by the utility programs.  Normally
+	those would be bundled with the termlib or ncurses libraries.
+
+	If an option value is given, that overrides the name of the tic
+	library.  As in termlib, there is no ABI difference between the
+	"wide" libticw.so and libtic.so
+
     --with-trace
 	Configure the trace() function as part of the all models of the ncurses
 	library.  Normally it is part of the debug (libncurses_g) library only.
diff -Naur ncurses-5.6.orig/MANIFEST ncurses-5.6/MANIFEST
--- ncurses-5.6.orig/MANIFEST	2006-11-25 21:21:05.000000000 -0500
+++ ncurses-5.6/MANIFEST	2008-06-18 06:49:46.000000000 -0400
@@ -4,6 +4,7 @@
 ./Ada95/README
 ./Ada95/TODO
 ./Ada95/gen/Makefile.in
+./Ada95/gen/adacurses-config.in
 ./Ada95/gen/gen.c
 ./Ada95/gen/html.m4
 ./Ada95/gen/normal.m4
@@ -20,6 +21,7 @@
 ./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
 ./Ada95/gen/terminal_interface-curses-panels.ads.m4
 ./Ada95/gen/terminal_interface-curses-trace.ads.m4
+./Ada95/gen/terminal_interface-curses.adb.m4
 ./Ada95/gen/terminal_interface-curses.ads.m4
 ./Ada95/samples/Makefile.in
 ./Ada95/samples/README
@@ -163,7 +165,6 @@
 ./Ada95/src/terminal_interface-curses-text_io.adb
 ./Ada95/src/terminal_interface-curses-text_io.ads
 ./Ada95/src/terminal_interface-curses-trace.adb_p
-./Ada95/src/terminal_interface-curses.adb
 ./Ada95/src/terminal_interface.ads
 ./INSTALL
 ./MANIFEST
@@ -553,8 +554,10 @@
 ./man/curs_instr.3x
 ./man/curs_inwstr.3x
 ./man/curs_kernel.3x
+./man/curs_legacy.3x
 ./man/curs_mouse.3x
 ./man/curs_move.3x
+./man/curs_opaque.3x
 ./man/curs_outopts.3x
 ./man/curs_overlay.3x
 ./man/curs_pad.3x
@@ -568,6 +571,7 @@
 ./man/curs_termattrs.3x
 ./man/curs_termcap.3x
 ./man/curs_terminfo.3x
+./man/curs_threads.3x
 ./man/curs_touch.3x
 ./man/curs_trace.3x
 ./man/curs_util.3x
@@ -709,7 +713,8 @@
 ./mk-0th.awk
 ./mk-1st.awk
 ./mk-2nd.awk
-./mkinstalldirs
+./mk-hdr.awk
+./mkdirs.sh
 ./ncurses/Makefile.in
 ./ncurses/README
 ./ncurses/README.IZ
@@ -799,15 +804,19 @@
 ./ncurses/base/safe_sprintf.c
 ./ncurses/base/sigaction.c
 ./ncurses/base/tries.c
+./ncurses/base/use_window.c
 ./ncurses/base/version.c
 ./ncurses/base/vsscanf.c
 ./ncurses/base/wresize.c
 ./ncurses/curses.priv.h
 ./ncurses/fifo_defs.h
 ./ncurses/llib-lncurses
+./ncurses/llib-lncursest
 ./ncurses/llib-lncursesw
 ./ncurses/modules
 ./ncurses/tinfo/MKcaptab.awk
+./ncurses/tinfo/MKcaptab.sh
+./ncurses/tinfo/MKcodes.awk
 ./ncurses/tinfo/MKfallback.sh
 ./ncurses/tinfo/MKkeys_list.sh
 ./ncurses/tinfo/MKnames.awk
@@ -824,6 +833,7 @@
 ./ncurses/tinfo/comp_scan.c
 ./ncurses/tinfo/db_iterator.c
 ./ncurses/tinfo/doalloc.c
+./ncurses/tinfo/entries.c
 ./ncurses/tinfo/free_ttype.c
 ./ncurses/tinfo/getenv_num.c
 ./ncurses/tinfo/hashed_db.c
@@ -856,6 +866,7 @@
 ./ncurses/tinfo/setbuf.c
 ./ncurses/tinfo/strings.c
 ./ncurses/tinfo/trim_sgr0.c
+./ncurses/tinfo/use_screen.c
 ./ncurses/tinfo/write_entry.c
 ./ncurses/trace/README
 ./ncurses/trace/lib_trace.c
@@ -891,6 +902,7 @@
 ./ncurses/widechar/lib_in_wchnstr.c
 ./ncurses/widechar/lib_ins_wch.c
 ./ncurses/widechar/lib_inwstr.c
+./ncurses/widechar/lib_key_name.c
 ./ncurses/widechar/lib_pecho_wchar.c
 ./ncurses/widechar/lib_slk_wset.c
 ./ncurses/widechar/lib_unget_wch.c
@@ -934,29 +946,6 @@
 ./progs/toe.c
 ./progs/tput.c
 ./progs/tset.c
-./tack/COPYING
-./tack/HISTORY
-./tack/Makefile.in
-./tack/README
-./tack/ansi.c
-./tack/charset.c
-./tack/color.c
-./tack/control.c
-./tack/crum.c
-./tack/edit.c
-./tack/fun.c
-./tack/init.c
-./tack/menu.c
-./tack/modes.c
-./tack/modules
-./tack/output.c
-./tack/pad.c
-./tack/scan.c
-./tack/sync.c
-./tack/sysdep.c
-./tack/tack.1
-./tack/tack.c
-./tack/tack.h
 ./tar-copy.sh
 ./test/Makefile.in
 ./test/README
@@ -981,6 +970,7 @@
 ./test/demo_termcap.c
 ./test/ditto.c
 ./test/dots.c
+./test/dots_mvcur.c
 ./test/echochar.c
 ./test/edit_field.c
 ./test/edit_field.h
@@ -992,8 +982,11 @@
 ./test/gdc.c
 ./test/hanoi.c
 ./test/hashtest.c
+./test/inch_wide.c
+./test/inchs.c
 ./test/ins_wide.c
 ./test/inserts.c
+./test/key_names.c
 ./test/keynames.c
 ./test/knight.c
 ./test/linux-color.dat
@@ -1010,8 +1003,15 @@
 ./test/rain.c
 ./test/redraw.c
 ./test/savescreen.c
+./test/savescreen.sh
 ./test/tclock.c
 ./test/test.priv.h
+./test/test_arrays.c
+./test/test_get_wstr.c
+./test/test_getstr.c
+./test/test_instr.c
+./test/test_inwstr.c
+./test/test_opaque.c
 ./test/testaddch.c
 ./test/testcurs.c
 ./test/testscanw.c
diff -Naur ncurses-5.6.orig/NEWS ncurses-5.6/NEWS
--- ncurses-5.6.orig/NEWS	2006-12-17 15:36:26.000000000 -0500
+++ ncurses-5.6/NEWS	2008-06-18 06:49:52.000000000 -0400
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.               --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1056 2006/12/17 20:36:26 tom Exp $
+-- $Id: NEWS,v 1.1245 2008/06/14 23:08:10 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,9 +45,688 @@
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20080614
+	+ modify test/ditto.c to illustrate multi-threaded use_screen().
+	+ change CC_SHARED_OPTS from -KPIC to -xcode=pic32 for Solaris.
+	+ add "-shared" option to MK_SHARED_LIB for gcc on Solaris (report
+	  by Poor Yorick).
+
+20080607
+	+ finish changes to wgetch(), making it switch as needed to the
+	  window's actual screen when calling wrefresh() and wgetnstr().  That
+	  allows wgetch() to get used concurrently in different threads with
+	  some minor restrictions, e.g., the application should not delete a
+	  window which is being used in a wgetch().
+	+ simplify mutex's, combining the window- and screen-mutex's.
+
+20080531
+	+ modify wgetch() to use the screen which corresponds to its window
+	  parameter rather than relying on SP; some dependent functions still
+	  use SP internally.
+	+ factor out most use of SP in lib_mouse.c, using parameter.
+	+ add internal _nc_keyname(), replacing keyname() to associate with a
+	  particular SCREEN rather than the global SP.
+	+ add internal _nc_unctrl(), replacing unctrl() to associate with a
+	  particular SCREEN rather than the global SP.
+	+ add internal _nc_tracemouse(), replacing _tracemouse() to eliminate
+	  its associated global buffer _nc_globals.tracemse_buf now in SCREEN.
+	+ add internal _nc_tracechar(), replacing _tracechar() to use SCREEN in
+	  preference to the global _nc_globals.tracechr_buf buffer.
+
+20080524
+	+ modify _nc_keypad() to make it switch temporarily as needed to the
+	  screen which must be updated.
+	+ wrap cur_term variable to help make _nc_keymap() thread-safe, and
+	  always set the screen's copy of this variable in set_curterm().
+	+ restore curs_set() state after endwin()/refresh() (report/patch
+	  Miroslav Lichvar)
+
+20080517
+	+ modify configure script to note that --enable-ext-colors and
+	  --enable-ext-mouse are not experimental, but extensions from
+	  the ncurses ABI 5.
+	+ corrected manpage description of setcchar() (discussion with
+	  Emanuele Giaquinta).
+	+ fix for adding a non-spacing character at the beginning of a line
+	  (report/patch by Miroslav Lichvar).
+
+20080503
+	+ modify screen.* terminfo entries using new screen+fkeys to fix
+	  overridden keys in screen.rxvt (Debian #478094) -TD
+	+ modify internal interfaces to reduce wgetch()'s dependency on the
+	  global SP.
+	+ simplify some loops with macros each_screen(), each_window() and
+	  each_ripoff().
+
+20080426
+	+ continue modifying test/ditto.c toward making it demonstrate
+	  multithreaded use_screen(), using fifos to pass data between screens.
+	+ fix typo in form.3x (report by Mike Gran).
+
+20080419
+	+ add screen.rxvt terminfo entry -TD
+	+ modify tic -f option to format spaces as \s to prevent them from
+	  being lost when that is read back in unformatted strings.
+	+ improve test/ditto.c, using a "talk"-style layout.
+
+20080412
+	+ change test/ditto.c to use openpty() and xterm.
+	+ add locks for copywin(), dupwin(), overlap(), overlay() on their
+	  window parameters.
+	+ add locks for initscr() and newterm() on updates to the SCREEN
+	  pointer.
+	+ finish table in curs_thread.3x manpage.
+
+20080405
+	+ begin table in curs_thread.3x manpage describing the scope of data
+	  used by each function (or symbol) for threading analysis.
+	+ add null-pointer checks to setsyx() and getsyx() (prompted by
+	  discussion by Martin v. Lowis and Jeroen Ruigrok van der Werven on
+	  python-dev2 mailing list).
+
+20080329
+	+ add null-pointer checks in set_term() and delscreen().
+	+ move _nc_windows into _nc_globals, since windows can be pads, which
+	  are not associated with a particular screen.
+	+ change use_screen() to pass the SCREEN* parameter rather than
+	  stdscr to the callback function.
+	+ force libtool to use tag for 'CC' in case it does not detect this,
+	  e.g., on aix when using CC=powerpc-ibm-aix5.3.0.0-gcc
+	  (report/patch by Michael Haubenwallner).
+	+ override OBJEXT to "lo" when building with libtool, to work on
+	  platforms such as AIX where libtool may use a different suffix for
+	  the object files than ".o" (report/patch by Michael Haubenwallner).
+	+ add configure --with-pthread option, for building with the POSIX
+	  thread library.
+
+20080322
+	+ fill in extended-color pair two more places in wbkgrndset() and
+	  waddch_nosync() (prompted by Sedeno's patch).
+	+ fill in extended-color pair in _nc_build_wch() to make colors work
+	  for wide-characters using extended-colors (patch by Alejandro R
+	  Sedeno).
+	+ add x/X toggles to ncurses.c C color test to test/demo
+	  wide-characters with extended-colors.
+	+ add a/A toggles to ncurses.c c/C color tests.
+	+ modify test/ditto.c to use use_screen().
+	+ finish modifying test/rain.c to demonstrate threads.
+
+20080308
+	+ start modifying test/rain.c for threading demo.
+	+ modify test/ncurses.c to make 'f' test accept the f/F/b/F/</> toggles
+	  that the 'F' accepts.
+	+ modify test/worm.c to show trail in reverse-video when other threads
+	  are working concurrently.
+	+ fix a deadlock from improper nesting of mutexes for windowlist and
+	  window.
+
+20080301
+	+ fixes from 20080223 resolved issue with mutexes; change to use
+	  recursive mutexes to fix memory leak in delwin() as called from
+	  _nc_free_and_exit().
+
+20080223
+	+ fix a size-difference in _nc_globals which caused hanging of mutex
+	  lock/unlock when termlib was built separately.
+
+20080216
+	+ avoid using nanosleep() in threaded configuration since that often
+	  is implemented to suspend the entire process.
+
+20080209
+	+ update test programs to build/work with various UNIX curses for
+	  comparisons.  This was to reinvestigate statement in X/Open curses
+	  that insnstr and winsnstr perform wrapping.  None of the Unix-branded
+	  implementations do this, as noted in manpage (cf: 20040228).
+
+20080203
+	+ modify _nc_setupscreen() to set the legacy-coding value the same
+	  for both narrow/wide models.  It had been set only for wide model,
+	  but is needed to make unctrl() work with locale in the narrow model.
+	+ improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
+	  using unctrl() to display illegal bytes rather than trying to append
+	  further bytes to make up a valid sequence (reported by Andrey A
+	  Chernov).
+	+ modify unctrl() to check codes in 128-255 range versus isprint().
+	  If they are not printable, and locale was set, use a "M-" or "~"
+	  sequence.
+
+20080126
+	+ improve threading in test/worm.c (wrap refresh calls, and KEY_RESIZE
+	  handling).  Now it hangs in napms(), no matter whether nanosleep()
+	  or poll() or select() are used on Linux.
+
+20080119
+	+ fixes to build with --disable-ext-funcs
+	+ add manpage for use_window and use_screen.
+	+ add set_tabsize() and set_escdelay() functions.
+
+20080112
+	+ remove recursive-mutex definitions, finish threading demo for worm.c
+	+ remove a redundant adjustment of lines in resizeterm.c's
+	  adjust_window() which caused occasional misadjustment of stdscr when
+	  softkeys were used.
+
+20080105
+	+ several improvements to terminfo entries based on xterm #230 -TD
+	+ modify MKlib_gen.sh to handle keyname/key_name prototypes, so the
+	  "link_test" builds properly.
+	+ fix for toe command-line options -u/-U to ensure filename is given.
+	+ fix allocation-size for command-line parsing in infocmp from 20070728
+	  (report by Miroslav Lichvar)
+	+ improve resizeterm() by moving ripped-off lines, and repainting the
+	  soft-keys (report by Katarina Machalkova)
+	+ add clarification in wclear's manpage noting that the screen will be
+	  cleared even if a subwindow is cleared (prompted by Christer Enfors
+	  question).
+	+ change test/ncurses.c soft-key tests to work with KEY_RESIZE.
+
+20071222
+	+ continue implementing support for threading demo by adding mutex
+	  for delwin().
+
+20071215
+	+ add several functions to C++ binding which wrap C functions that
+	  pass a WINDOW* parameter (request by Chris Lee).
+
+20071201
+	+ add note about configure options needed for Berkeley database to the
+	  INSTALL file.
+	+ improve checks for version of Berkeley database libraries.
+	+ amend fix for rpath to not modify LDFLAGS if the platform has no
+	  applicable transformation (report by Christian Ebert, cf: 20071124).
+
+20071124
+	+ modify configure option --with-hashed-db to accept a parameter which
+	  is the install-prefix of a given Berkeley Database (prompted by
+	  pierre4d2 comments).
+	+ rewrite wrapper for wcrtomb(), making it work on Solaris.  This is
+	  used in the form library to determine the length of the buffer needed
+	  by field_buffer (report by Alfred Fung).
+	+ remove unneeded window-parameter from C++ binding for wresize (report
+	  by Chris Lee).
+
+20071117
+	+ modify the support for filesystems which do not support mixed-case to
+	  generate 2-character (hexadecimal) codes for the lower-level of the
+	  filesystem terminfo database (request by Michail Vidiassov).
+	+ add configure option --enable-mixed-case, to allow overriding the
+	  configure script's check if the filesystem supports mixed-case
+	  filenames.
+	+ add wresize() to C++ binding (request by Chris Lee).
+	+ define NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS in curses.h to make
+	  it simpler to tell if the extended functions and/or colors are
+	  declared.
+
+20071103
+	+ update memory-leak checks for changes to names.c and codes.c
+	+ correct acsc strings in h19, z100 (patch by Benjamin C W Sittler).
+
+20071020
+	+ continue implementing support for threading demo by adding mutex
+	  for use_window().
+	+ add mrxvt terminfo entry, add/fix xterm building blocks for modified
+	  cursor keys -TD
+	+ compile with FreeBSD "contemporary" TTY interface (patch by
+	  Rong-En Fan).
+
+20071013
+	+ modify makefile rules to allow clear, tput and tset to be built
+	  without libtic.  The other programs (infocmp, tic and toe) rely on
+	  that library.
+	+ add/modify null-pointer checks in several functions for SP and/or
+	  the WINDOW* parameter (report by Thorben Krueger).
+	+ fixes for field_buffer() in formw library (see Redhat Bugzilla
+	  #310071, patches by Miroslav Lichvar).
+	+ improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
+	  Lichvar).
+	+ update/improve mlterm and rxvt terminfo entries, e.g., for
+	  the modified cursor- and keypad-keys -TD
+
+20071006
+	+ add code to curses.priv.h ifdef'd with NCURSES_CHAR_EQ, which
+	  changes the CharEq() macro to an inline function to allow comparing
+	  cchar_t struct's without comparing gaps in a possibly unpacked
+	  memory layout (report by Miroslav Lichvar).
+
+20070929
+	+ add new functions to lib_trace.c to setup mutex's for the _tracef()
+	  calls within the ncurses library.
+	+ for the reentrant model, move _nc_tputs_trace and _nc_outchars into
+	  the SCREEN.
+	+ start modifying test/worm.c to provide threading demo (incomplete).
+	+ separated ifdef's for some BSD-related symbols in tset.c, to make
+	  it compile on LynxOS (report by Greg Gemmer).
+20070915
+	+ modify Ada95/gen/Makefile to use shlib script, to simplify building
+	  shared-library configuration on platforms lacking rpath support.
+	+ build-fix for Ada95/src/Makefile to reflect changed dependency for
+	  the terminal-interface-curses-aux.adb file which is now generated.
+	+ restructuring test/worm.c, for use_window() example.
+
+20070908
+	+ add use_window() and use_screen() functions, to develop into support
+	  for threaded library (incomplete).
+	+ fix typos in man/curs_opaque.3x which kept the install script from
+	  creating symbolic links to two aliases created in 20070818 (report by
+	  Rong-En Fan).
+
+20070901
+	+ remove a spurious newline from output of html.m4, which caused links
+	  for Ada95 html to be incorrect for the files generated using m4.
+	+ start investigating mutex's for SCREEN manipulation (incomplete).
+	+ minor cleanup of codes.c/names.c for --enable-const
+	+ expand/revise "Routine and Argument Names" section of ncurses manpage
+	  to address report by David Givens in newsgroup discussion.
+	+ fix interaction between --without-progs/--with-termcap configure
+	  options (report by Michail Vidiassov).
+	+ fix typo in "--disable-relink" option (report by Michail Vidiassov).
+
+20070825
+	+ fix a sign-extension bug in infocmp's repair_acsc() function
+	  (cf: 971004).
+	+ fix old configure script bug which prevented "--disable-warnings"
+	  option from working (patch by Mike Frysinger).
+
+20070818
+	+ add 9term terminal description (request by Juhapekka Tolvanen) -TD
+	+ modify comp_hash.c's string output to avoid misinterpreting a null
+	  "\0" followed by a digit.
+	+ modify MKnames.awk and MKcodes.awk to support big-strings.
+	  This only applies to the cases (broken linker, reentrant) where
+	  the corresponding arrays are accessed via wrapper functions.
+	+ split MKnames.awk into two scripts, eliminating the shell redirection
+	  which complicated the make process and also the bogus timestamp file
+	  which was introduced to fix "make -j".
+	+ add test/test_opaque.c, test/test_arrays.c
+	+ add wgetscrreg() and wgetparent() for applications that may need it
+	  when NCURSES_OPAQUE is defined (prompted by Bryan Christ).
+
+20070812
+	+ amend treatment of infocmp "-r" option to retain the 1023-byte limit
+	  unless "-T" is given (cf: 981017).
+	+ modify comp_captab.c generation to use big-strings.
+	+ make _nc_capalias_table and _nc_infoalias_table private accessed via
+	  _nc_get_alias_table() since the tables are used only within the tic
+	  library.
+	+ modify configure script to skip Intel compiler in CF_C_INLINE.
+	+ make _nc_info_hash_table and _nc_cap_hash_table private accessed via
+	  _nc_get_hash_table() since the tables are used only within the tic
+	  library.
+
+20070728
+	+ make _nc_capalias_table and _nc_infoalias_table private, accessed via
+	  _nc_get_alias_table() since they are used only by parse_entry.c
+	+ make _nc_key_names private since it is used only by lib_keyname.c
+	+ add --disable-big-strings configure option to control whether
+	  unctrl.c is generated using the big-string optimization - which may
+	  use strings longer than supported by a given compiler.
+	+ reduce relocation tables for tic, infocmp by changing type of
+	  internal hash tables to short, and make those private symbols.
+	+ eliminate large fixed arrays from progs/infocmp.c
+
+20070721
+	+ change winnstr() to stop at the end of the line (cf: 970315).
+	+ add test/test_get_wstr.c
+	+ add test/test_getstr.c
+	+ add test/test_inwstr.c
+	+ add test/test_instr.c
+
+20070716
+	+ restore a call to obtain screen-size in _nc_setupterm(), which
+	  is used in tput and other non-screen applications via setupterm()
+	  (Debian #433357, reported by Florent Bayle, Christian Ohm,
+	  cf: 20070310).
+
+20070714
+	+ add test/savescreen.c test-program
+	+ add check to trace-file open, if the given name is a directory, add
+	  ".log" to the name and try again.
+	+ add konsole-256color entry -TD
+	+ add extra gcc warning options from xterm.
+	+ minor fixes for ncurses/hashmap test-program.
+	+ modify configure script to quiet c++ build with libtool when the
+	  --disable-echo option is used.
+	+ modify configure script to disable ada95 if libtool is selected,
+	  writing a warning message (addresses FreeBSD ports/114493).
+	+ update config.guess, config.sub
+
+20070707
+	+ add continuous-move "M" to demo_panels to help test refresh changes.
+	+ improve fix for refresh of window on top of multi-column characters,
+	  taking into account some split characters on left/right window
+	  boundaries.
+
+20070630
+	+ add "widec" row to _tracedump() output to help diagnose remaining
+	  problems with multi-column characters.
+	+ partial fix for refresh of window on top of multi-column characters
+	  which are partly overwritten (report by Sadrul H Chowdhury).
+	+ ignore A_CHARTEXT bits in vidattr() and vid_attr(), in case
+	  multi-column extension bits are passed there.
+	+ add setlocale() call to demo_panels.c, needed for wide-characters.
+	+ add some output flags to _nc_trace_ttymode to help diagnose a bug
+	  report by Larry Virden, i.e., ONLCR, OCRNL, ONOCR and ONLRET,
+
+20070623
+	+ add test/demo_panels.c
+	+ implement opaque version of setsyx() and getsyx().
+
+20070612
+	+ corrected xterm+pcf2 terminfo modifiers for F1-F4, to match xterm
+	  #226 -TD
+	+ split-out key_name() from MKkeyname.awk since it now depends upon
+	  wunctrl() which is not in libtinfo (report by Rong-En Fan).
+
+20070609
+	+ add test/key_name.c
+	+ add stdscr cases to test/inchs.c and test_inch_wide.c
+	+ update test/configure
+	+ correct formatting of DEL (0x7f) in _nc_vischar().
+	+ null-terminate result of wunctrl().
+	+ add null-pointer check in key_name() (report by Andreas Krennmair,
+	  cf: 20020901).
+
+20070602
+	+ adapt mouse-handling code from menu library in form-library
+	  (discussion with Clive Nicolson).
+	+ add a modification of test/dots.c, i.e., test/dots_mvcur.c to
+	  illustrate how to use mvcur().
+	+ modify wide-character flavor of SetAttr() to preserve the
+	  WidecExt() value stored in the .attr field, e.g., in case it
+	  is overwritten by chgat (report by Aleksi Torhamo).
+	+ correct buffer-size for _nc_viswbuf2n() (report by Aleksi Torhamo).
+	+ build-fixes for Solaris 2.6 and 2.7 (patch by Peter O'Gorman).
+
+20070526
+	+ modify keyname() to use "^X" form only if meta() has been called, or
+	  if keyname() is called without initializing curses, e.g., via
+	  initscr() or newterm() (prompted by LinuxBase #1604).
+	+ document some portability issues in man/curs_util.3x
+	+ add a shadow copy of TTY buffer to _nc_prescreen to fix applications
+	  broken by moving that data into SCREEN (cf: 20061230).
+
+20070512
+	+ add 'O' (wide-character panel test) in ncurses.c to demonstrate a
+	  problem reported by Sadrul H Chowdhury with repainting parts of
+	  a fullwidth cell.
+	+ modify slk_init() so that if there are preceding calls to
+	  ripoffline(), those affect the available lines for soft-keys (adapted
+	  from patch by Clive Nicolson).
+	+ document some portability issues in man/curs_getyx.3x
+
+20070505
+	+ fix a bug in Ada95/samples/ncurses which caused a variable to
+	  become uninitialized in the "b" test.
+	+ fix Ada95/gen/Makefile.in adahtml rule to account for recent
+	  movement of files, fix a few incorrect manpage references in the
+	  generated html.
+	+ add Ada95 binding to _nc_freeall() as Curses_Free_All to help with
+	  memory-checking.
+	+ correct some functions in Ada95 binding which were using return value
+	  from C where none was returned:  idcok(), immedok() and wtimeout().
+	+ amend recent changes for Ada95 binding to make it build with
+	  Cygwin's linker, e.g., with configure options
+		--enable-broken-linker --with-ticlib
+
+20070428
+	+ add a configure check for gcc's options for inlining, use that to
+	  quiet a warning message where gcc's default behavior changed from
+	  3.x to 4.x.
+	+ improve warning message when checking if GPM is linked to curses
+	  library by not warning if its use of "wgetch" is via a weak symbol.
+	+ add loader options when building with static libraries to ensure that
+	  an installed shared library for ncurses does not conflict.  This is
+	  reported as problem with Tru64, but could affect other platforms
+	  (report Martin Mokrejs, analysis by Tim Mooney).
+	+ fix build on cygwin after recent ticlib/termlib changes, i.e.,
+	  + adjust TINFO_SUFFIX value to work with cygwin's dll naming
+	  + revert a change from 20070303 which commented out dependency of
+	    SHLIB_LIST in form/menu/panel/c++ libraries.
+	+ fix initialization of ripoff stack pointer (cf: 20070421).
+
+20070421
+	+ move most static variables into structures _nc_globals and
+	  _nc_prescreen, to simplify storage.
+	+ add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
+	  type for data manipulated by signal handlers (prompted by comments
+	  in mailing.openbsd.bugs newsgroup).
+	+ modify CF_WITH_LIBTOOL to allow one to pass options such as -static
+	  to the libtool create- and link-operations.
+
+20070414
+	+ fix whitespace in curs_opaque.3x which caused a spurious ';' in
+	  the installed aliases (report by Peter Santoro).
+	+ fix configure script to not try to generate adacurses-config when
+	  Ada95 tree is not built.
+
+20070407
+	+ add man/curs_legacy.3x, man/curs_opaque.3x
+	+ fix acs_map binding for Ada95 when --enable-reentrant is used.
+	+ add adacurses-config to the Ada95 install, based on version from
+	  FreeBSD port, in turn by Juergen Pfeifer in 2000 (prompted by
+	  comment on comp.lang.ada newsgroup).
+	+ fix includes in c++ binding to build with Intel compiler
+	  (cf: 20061209).
+	+ update install rule in Ada95 to use mkdirs.sh
+	> other fixes prompted by inspection for Coverity report:
+	+ modify ifdef's for c++ binding to use try/catch/throw statements
+	+ add a null-pointer check in tack/ansi.c request_cfss()
+	+ fix a memory leak in ncurses/base/wresize.c
+	+ corrected check for valid memu/meml capabilities in
+	  progs/dump_entry.c when handling V_HPUX case.
+	> fixes based on Coverity report:
+	+ remove dead code in test/bs.c
+	+ remove dead code in test/demo_defkey.c
+	+ remove an unused assignment in progs/infocmp.c
+	+ fix a limit check in tack/ansi.c tools_charset()
+	+ fix tack/ansi.c tools_status() to perform the VT320/VT420
+	  tests in request_cfss().  The function had exited too soon.
+	+ fix a memory leak in tic.c's make_namelist()
+	+ fix a couple of places in tack/output.c which did not check for EOF.
+	+ fix a loop-condition in test/bs.c
+	+ add index checks in lib_color.c for color palettes
+	+ add index checks in progs/dump_entry.c for version_filter() handling
+	  of V_BSD case.
+	+ fix a possible null-pointer dereference in copywin()
+	+ fix a possible null-pointer dereference in waddchnstr()
+	+ add a null-pointer check in _nc_expand_try()
+	+ add a null-pointer check in tic.c's make_namelist()
+	+ add a null-pointer check in _nc_expand_try()
+	+ add null-pointer checks in test/cardfile.c
+	+ fix a double-free in ncurses/tinfo/trim_sgr0.c
+	+ fix a double-free in ncurses/base/wresize.c
+	+ add try/catch block to c++/cursesmain.cc
+
+20070331
+	+ modify Ada95 binding to build with --enable-reentrant by wrapping
+	  global variables (bug: acs_map does not yet work).
+	+ modify Ada95 binding to use the new access-functions, allowing it
+	  to build/run when NCURSES_OPAQUE is set.
+	+ add access-functions and macros to return properties of the WINDOW
+	  structure, e.g., when NCURSES_OPAQUE is set.
+	+ improved install-sh's quoting.
+	+ use mkdirs.sh rather than mkinstalldirs, e.g., to use fixes from
+	  other programs.
+
+20070324
+	+ eliminate part of the direct use of WINDOW data from Ada95 interface.
+	+ fix substitutions for termlib filename to make configure option
+	  --enable-reentrant work with --with-termlib.
+	+ change a constructor for NCursesWindow to allow compiling with
+	  NCURSES_OPAQUE set, since we cannot pass a reference to
+	  an opaque pointer.
+
+20070317
+	+ ignore --with-chtype=unsigned since unsigned is always added to
+	  the type in curses.h; do the same for --with-mmask-t.
+	+ change warning regarding --enable-ext-colors and wide-character
+	  in the configure script to an error.
+	+ tweak error message in CF_WITH_LIBTOOL to distinguish other programs
+	  such as Darwin's libtool program (report by Michail Vidiassov)
+	+ modify edit_man.sh to allow for multiple substitutions per line.
+	+ set locale in misc/ncurses-config.in since it uses a range
+	+ change permissions libncurses++.a install (report by Michail
+	  Vidiassov).
+	+ corrected length of temporary buffer in wide-character version
+	  of set_field_buffer() (related to report by Bryan Christ).
+
+20070311
+	+ fix mk-1st.awk script install_shlib() function, broken in 20070224
+	  changes for cygwin (report by  Michail Vidiassov).
+
+20070310
+	+ increase size of array in _nc_visbuf2n() to make "tic -v" work
+	  properly in its similar_sgr() function (report/analysis by Peter
+	  Santoro).
+	+ add --enable-reentrant configure option for ongoing changes to
+	  implement a reentrant version of ncurses:
+	  + libraries are suffixed with "t"
+	  + wrap several global variables (curscr, newscr, stdscr, ttytype,
+	    COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES and TABSIZE) as
+	    functions returning values stored in SCREEN or cur_term.
+	  + move some initialization (LINES, COLS) from lib_setup.c,
+	    i.e., setupterm() to _nc_setupscreen(), i.e., newterm().
+
+20070303
+	+ regenerated html documentation.
+	+ add NCURSES_OPAQUE symbol to curses.h, will use to make structs
+	  opaque in selected configurations.
+	+ move the chunk in lib_acs.c which resets acs capabilities when
+	  running on a terminal whose locale interferes with those into
+	  _nc_setupscreen(), so the libtinfo/libtinfow files can be made
+	  identical (requested by Miroslav Lichvar).
+	+ do not use configure variable SHLIB_LIBS for building libraries
+	  outside the ncurses directory, since that symbol is customized
+	  only for that directory, and using it introduces an unneeded
+	  dependency on libdl (requested by Miroslav Lichvar).
+	+ modify mk-1st.awk so the generated makefile rules for linking or
+	  installing shared libraries do not first remove the library, in
+	  case it is in use, e.g., libncurses.so by /bin/sh (report by Jeff
+	  Chua).
+	+ revised section "Using NCURSES under XTERM" in ncurses-intro.html
+	  (prompted by newsgroup comment by Nick Guenther).
+
+20070224
+	+ change internal return codes of _nc_wgetch() to check for cases
+	  where KEY_CODE_YES should be returned, e.g., if a KEY_RESIZE was
+	  ungetch'd, and read by wget_wch().
+	+ fix static-library build broken in 20070217 changes to remove "-ldl"
+	  (report by Miroslav Lichvar).
+	+ change makefile/scripts for cygwin to allow building termlib.
+	+ use Form_Hook in manpages to match form.h
+	+ use Menu_Hook in manpages, as well as a few places in menu.h
+	+ correct form- and menu-manpages to use specific Field_Options,
+	  Menu_Options and Item_Options types.
+	+ correct prototype for _tracechar() in manpage (cf: 20011229).
+	+ correct prototype for wunctrl() in manpage.
+
+20070217
+	+ fixes for $(TICS_LIST) in ncurses/Makefile (report by Miroslav
+	  Lichvar).
+	+ modify relinking of shared libraries to apply only when rpath is
+	  enabled, and add --disable-relink option which can be used to
+	  disable the feature altogether (reports by Michail Vidiassov,
+	  Adam J Richter).
+	+ fix --with-termlib option for wide-character configuration, stripping
+	  the "w" suffix in one place (report by Miroslav Lichvar).
+	+ remove "-ldl" from some library lists to reduce dependencies in
+	  programs (report by Miroslav Lichvar).
+	+ correct description of --enable-signed-char in configure --help
+	  (report by Michail Vidiassov).
+	+ add pattern for GNU/kFreeBSD configuration to CF_XOPEN_SOURCE,
+	  which matches an earlier change to CF_SHARED_OPTS, from xterm #224
+	  fixes.
+	+ remove "${DESTDIR}" from -install_name option used for linking
+	  shared libraries on Darwin (report by Michail Vidiassov).
+
+20070210
+	+ add test/inchs.c, test_inch_wide.c, to test win_wchnstr().
+	+ remove libdl from library list for termlib (report by Miroslav
+	  Lichvar).
+	+ fix configure.in to allow --without-progs --with-termlib (patch by
+	  Miroslav Lichvar).
+	+ modify win_wchnstr() to ensure that only a base cell is returned
+	  for each multi-column character (prompted by report by Wei Kong
+	  regarding change in mvwin_wch() cf: 20041023).
+
+20070203
+	+ modify fix_wchnstr() in form library to strip attributes (and color)
+	  from the cchar_t array (field cells) read from a field's window.
+	  Otherwise, when copying the field cells back to the window, the
+	  associated color overrides the field's background color (report by
+	  Ricardo Cantu).
+	+ improve tracing for form library, showing created forms, fields, etc.
+	+ ignore --enable-rpath configure option if --with-shared was omitted.
+	+ add _nc_leaks_tinfo(), _nc_free_tic(), _nc_free_tinfo() entrypoints
+	  to allow leak-checking when both tic- and tinfo-libraries are built.
+	+ drop CF_CPP_VSCAN_FUNC macro from configure script, since C++ binding
+	  no longer relies on it.
+	+ disallow combining configure script options --with-ticlib and
+	  --enable-termcap (report by Rong-En Fan).
+	+ remove tack from ncurses tree.
+
+20070128
+	+ fix typo in configure script that broke --with-termlib option
+	  (report by Rong-En Fan).
+
+20070127
+	+ improve fix for FreeBSD gnu/98975, to allow for null pointer passed
+	  to tgetent() (report by Rong-en Fan).
+	+ update tack/HISTORY and tack/README to tell how to build it after
+	  it is removed from the ncurses tree.
+	+ fix configure check for libtool's version to trim blank lines
+	  (report by sci-fi@hush.ai).
+	+ review/eliminate other original-file artifacts in cursesw.cc, making
+	  its license consistent with ncurses.
+	+ use ncurses vw_scanw() rather than reading into a fixed buffer in
+	  the c++ binding for scanw() methods (prompted by report by Nuno Dias).
+	+ eliminate fixed-buffer vsprintf() calls in c++ binding.
+
+20070120
+	+ add _nc_leaks_tic() to separate leak-checking of tic library from
+	  term/ncurses libraries, and thereby eliminate a library dependency.
+	+ fix test/mk-test.awk to ignore blank lines.
+	+ correct paths in include/headers, for --srcdir (patch by Miroslav
+	  Lichvar).
+
+20070113
+	+ add a break-statement in misc/shlib to ensure that it exits on the
+	  _first_ matched directory (report by Paul Novak).
+	+ add tack/configure, which can be used to build tack outside the
+	  ncurses build-tree.
+	+ add --with-ticlib option, to build/install the tic-support functions
+	  in a separate library (suggested by Miroslav Lichvar).
+
+20070106
+	+ change MKunctrl.awk to reduce relocation table for unctrl.o
+	+ change MKkeyname.awk to reduce relocation table for keyname.o
+	  (patch by Miroslav Lichvar).
+
+20061230
+	+ modify configure check for libtool's version to trim blank lines
+	  (report by sci-fi@hush.ai).
+	+ modify some modules to allow them to be reentrant if _REENTRANT is
+	  defined: lib_baudrate.c, resizeterm.c (local data only)
+	+ eliminate static data from some modules: add_tries.c, hardscroll.c,
+	  lib_ttyflags.c, lib_twait.c
+	+ improve manpage install to add aliases for the transformed program
+	  names, e.g., from --program-prefix.
+	+ used linklint to verify links in the HTML documentation, made fixes
+	  to manpages as needed.
+	+ fix a typo in curs_mouse.3x (report by William McBrine).
+	+ fix install-rule for ncurses5-config to make the bin-directory.
+
+20061223
+	+ modify configure script to omit the tic (terminfo compiler) support
+	  from ncurses library if --without-progs option is given.
+	+ modify install rule for ncurses5-config to do this via "install.libs"
+	+ modify shared-library rules to allow FreeBSD 3.x to use rpath.
+	+ update config.guess, config.sub
+
 20061217 5.6 release for upload to ftp.gnu.org
 
-20061217 
+20061217
 	+ add ifdef's for <wctype.h> for HPUX, which has the corresponding
 	  definitions in <wchar.h>.
 	+ revert the va_copy() change from 20061202, since it was neither
@@ -62,7 +741,7 @@
 	+ modify configure --with-gpm option to allow it to accept a parameter,
 	  i.e., the name of the dynamic GPM library to load via dlopen()
 	  (requested by Bryan Henderson).
-	+ add configure option --with-valgrind (from vile).
+	+ add configure option --with-valgrind, changes from vile.
 	+ modify configure script AC_TRY_RUN and AC_TRY_LINK checks to use
 	  'return' in preference to 'exit()'.
 
@@ -1524,7 +2203,8 @@
 20031108
 	+ add DJGPP to special case of DOS-style drive letters potentially
 	  appearing in TERMCAP environment variable.
-	+ fix some spelling in comments (reports by jmc, Jonathon Gray).
+	+ fix some spelling in comments (reports by Jason McIntyre, Jonathon
+	  Gray).
 	+ update config.guess, config.sub
 
 20031101
@@ -1814,7 +2494,7 @@
 	  "--srcdir" work (report by Warren L Dodge).
 	+ correct missing definition of $(CC) in Ada95/gen/Makefile.in
 	  (reported by Warren L Dodge <warrend@mdhost.cse.tek.com>).
-	+ fix typos and whitespace in manpages (patch by jmc
+	+ fix typos and whitespace in manpages (patch by Jason McIntyre
 	  <jmc@prioris.mini.pw.edu.pl>).
 
 20030503
@@ -3449,7 +4129,7 @@
 
 20000923
 	+ modify rs2 capability in xterm-r6 and similar where cursor
-	  save/restore bracketed the sequence for resetting video attributes. 
+	  save/restore bracketed the sequence for resetting video attributes.
 	  The cursor restore would undo that (report by John Hawkinson
 	  <jhawk@MIT.EDU> (see NetBSD misc/11052)).
 	+ using parameter check added to tic, corrected 27 typos in
@@ -4266,7 +4946,7 @@
 	  <bledp@voila.fr>)).
 	+ change renaming of dft_fgbg.3x to use_default_colors.3ncurses in
 	  man_db.renames, since Debian is not concerned with 14-character
-	  filename limitation (from Debian bug report by Josip Rodin
+	  filename limitation (Debian bug report by Josip Rodin
 	  <joy@cibalia.gkvk.hr>).
 	+ corrected scoansi terminfo entry by testing with scoterm and console.
 	+ revert change from 990614 to terminal_interface-curses-forms.ads.m4,
@@ -5309,7 +5989,7 @@
 
 980321
 	+ revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t
-	  declared (from Adam J. Richter <adam@yggdrasil.com>)
+	  declared (from Adam J Richter <adam@yggdrasil.com>)
 	+ remove spurious curs_set() call from leaveok() (J T Conklin).
 	+ corrected handling leaveok() in doupdate() (patch by Alexander V.
 	  Lukyanov).
diff -Naur ncurses-5.6.orig/TO-DO ncurses-5.6/TO-DO
--- ncurses-5.6.orig/TO-DO	2006-10-28 15:49:16.000000000 -0400
+++ ncurses-5.6/TO-DO	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: TO-DO,v 1.48 2006/10/28 19:49:16 tom Exp $
+-- $Id: TO-DO,v 1.49 2007/02/03 16:29:17 tom Exp $
 -------------------------------------------------------------------------------
 
 SHORT-TERM TO-DO ITEMS:
@@ -58,9 +58,6 @@
 + The window classes defined in the c++ subdirectory need documentation.  Some
   C++ programmer could earn a lot of good karma by doing this...
 
-+ The resizeterm() function does not handle ripped-off lines such as that done
-  for the slk_XXX functions.
-
 + vid_attr() should support the set_a_attributes (sgr1) string, but does not. 
   There appear to be no terminals that require that functionality.
 
@@ -75,19 +72,19 @@
   ncurses/tty/lib_tstp.c .
 
 + In theory, vwprintw and vwscanf are supposed to use the older varargs.h
-  interface for handling variadic argument lists.  Linux doesn't have
-  varargs.h, it has the newer X/Open-standard stdargs.h equivalent.  So these
-  functions use stdargs instead.  This is unlikely to be a problem unless
-  you're building ncurses on a System V old enough to only have varargs.h. 
-  (Solaris 2.5.1 uses the stdarg.h binding as well).
+  interface for handling variadic argument lists (and are deprecated by X/Open
+  for that reason).  Linux doesn't have varargs.h, it has the newer
+  X/Open-standard stdargs.h equivalent.  So these functions use stdargs
+  instead.  This is unlikely to be a problem unless you're building ncurses on
+  a System V old enough to only have varargs.h.  (Solaris 2.5.1 used the
+  stdarg.h binding as well).
 
 + If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have
   a native vsscanf(3) in its library, vwscanw() will not work.  You lose.  (It
   should work on any System V, however).  If you want to fix this, add an
   implementation to ncurses/vsscanf.c.
 
-+ The C++ binding fails to build with a few C++ compilers, mainly with
-  configure script problems with vsscanf().
++ The C++ binding fails to build with a few C++ compilers.
 
 + terminfo.5 does not format with the SunOS (and most other platform's) tbl
   utility because it relies on a diversion for each table entry.  Get the
@@ -106,7 +103,7 @@
 
 1. Extended COSE conformance
 
-There is an XPG4 standard recently released which describes a superset
+There is an XPG4 standard released in 1996 which describes a superset
 of the SVr4 API.  The library is BASE conformant with this standard.
 We would like to make ncurses fully conformant at the EXTENDED level
 supporting internationalization.
diff -Naur ncurses-5.6.orig/aclocal.m4 ncurses-5.6/aclocal.m4
--- ncurses-5.6.orig/aclocal.m4	2006-12-17 11:12:38.000000000 -0500
+++ ncurses-5.6/aclocal.m4	2008-06-18 06:49:52.000000000 -0400
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.407 2006/12/17 16:12:38 tom Exp $
+dnl $Id: aclocal.m4,v 1.448 2008/06/14 19:12:45 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -168,6 +168,99 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
+dnl -------------
+dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
+dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
+dnl but old versions (and some misinstalled ones) need that.  To make things
+dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
+dnl the include-path).
+AC_DEFUN([CF_ADD_INCDIR],
+[
+if test -n "$1" ; then
+  for cf_add_incdir in $1
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  AC_TRY_COMPILE([#include <stdio.h>],
+				  [printf("Hello")],
+				  [],
+				  [cf_have_incdir=yes])
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  CF_VERBOSE(adding $cf_add_incdir to include-path)
+		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
+dnl -------------
+dnl	Adds to the library-path
+dnl
+dnl	Some machines have trouble with multiple -L options.
+dnl
+dnl $1 is the (list of) directory(s) to add
+dnl $2 is the optional name of the variable to update (default LDFLAGS)
+dnl
+AC_DEFUN([CF_ADD_LIBDIR],
+[
+if test -n "$1" ; then
+  for cf_add_libdir in $1
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        CF_VERBOSE(adding $cf_add_libdir to library-path)
+        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
+      fi
+    fi
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
 dnl ----------------
 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
@@ -220,7 +313,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
+dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl For programs that must use an ANSI compiler, obtain compiler options that
 dnl will make it recognize prototypes.  We'll do preprocessor checks in other
@@ -229,7 +322,7 @@
 AC_DEFUN([CF_ANSI_CC_REQD],
 [AC_REQUIRE([CF_ANSI_CC_CHECK])
 if test "$cf_cv_ansi_cc" = "no"; then
-	AC_ERROR(
+	AC_MSG_ERROR(
 [Your compiler does not appear to recognize prototypes.
 You have the following choices:
 	a. adjust your compiler options
@@ -521,7 +614,7 @@
 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
+dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
 dnl --------------
 dnl Check if we're accidentally using a cache from a different machine.
 dnl Derive the system name, as a check for reusing the autoconf cache.
@@ -552,7 +645,7 @@
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
 	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
-	AC_ERROR("Please remove config.cache and try again.")
+	AC_MSG_ERROR("Please remove config.cache and try again.")
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -612,6 +705,50 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
+dnl -------------------
+dnl Check if GPM is already linked with curses.  If so - and if the linkage
+dnl is not "weak" - warn about this because it can create problems linking
+dnl applications with ncurses.
+AC_DEFUN([CF_CHECK_GPM_WGETCH],[
+AC_CHECK_LIB(gpm,Gpm_Wgetch,[
+
+AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
+cf_cv_check_gpm_wgetch=unknown
+if test "$cross_compiling" != yes ; then
+
+cat >conftest.$ac_ext <<CF_EOF
+#include <gpm.h>
+int main()
+{
+	Gpm_Wgetch();
+	${cf_cv_main_return:-return}(0);
+}
+CF_EOF
+
+	cf_save_LIBS="$LIBS"
+	# This only works if we can look at the symbol table.  If a shared
+	# library is stripped for install, we cannot use that.  So we're forced
+	# to rely on the static library, noting that some packagers may not
+	# include it.
+	LIBS="-static -lgpm -dynamic $LIBS"
+	if AC_TRY_EVAL(ac_compile) ; then
+		if AC_TRY_EVAL(ac_link) ; then
+			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
+			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
+			test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
+		fi
+	fi
+	rm -f conftest*
+	LIBS="$cf_save_LIBS"
+fi
+])
+
+if test "$cf_cv_check_gpm_wgetch" != yes ; then
+	AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
+fi
+])])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
 dnl -----------------
 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
@@ -703,82 +840,36 @@
 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
-dnl -----------------
-dnl Check if the g++ compiler supports vscan function (not a standard feature).
-AC_DEFUN([CF_CPP_VSCAN_FUNC],
-[
-if test -n "$CXX"; then
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADERS(strstream.h)
-
-AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
-	for cf_vscan_func in strstream strstream_cast stdio
-	do
-	case $cf_vscan_func in #(vi
-	stdio)		cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
-	strstream)	cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
-	strstream_cast)	cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
-	esac
-	AC_TRY_LINK([
-#include <stdio.h>
-#include <stdarg.h>
-#define $cf_vscan_defs 1
-#if defined(USE_STDIO_VSCAN)
-#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
-#include <strstream.h>
-#endif
-
-int scanw(const char* fmt, ...)
-{
-    int result = -1;
-    char buf[BUFSIZ];
-
-    va_list args;
-    va_start(args, fmt);
-#if defined(USE_STDIO_VSCAN)
-    if (::vsscanf(buf, fmt, args) != -1)
-	result = 0;
-#elif defined(USE_STRSTREAM_VSCAN)
-    strstreambuf ss(buf, sizeof(buf));
-    if (ss.vscan(fmt, args) != -1)
-	result = 0;
-#elif defined(USE_STRSTREAM_VSCAN_CAST)
-    strstreambuf ss(buf, sizeof(buf));
-    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
-	result = 0;
-#else
-#error case $cf_vscan_func failed
-#endif
-    va_end(args);
-    return result;
-}
-],[int tmp, foo = scanw("%d", &tmp)],
-	[cf_cv_cpp_vscan_func=$cf_vscan_func; break],
-	[cf_cv_cpp_vscan_func=no])
-	test "$cf_cv_cpp_vscan_func" != no && break
-	done
-])
-
-AC_LANG_RESTORE
+dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
+dnl -----------
+dnl Check if the C compiler supports "inline".
+dnl $1 is the name of a shell variable to set if inline is supported
+dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
+AC_DEFUN([CF_C_INLINE],[
+AC_C_INLINE
+$1=
+if test "$ac_cv_c_inline" != no ; then
+  $1=inline
+  if test "$INTEL_COMPILER" = yes
+  then
+    :
+  elif test "$GCC" = yes
+  then
+    AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
+      cf_save_CFLAGS=$CFLAGS
+      CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
+      AC_TRY_COMPILE([inline int foo(void) { return 1; }],
+      [${cf_cv_main_return:-return} foo()],
+      [cf_cv_gcc_inline=yes],
+      [cf_cv_gcc_inline=no])
+      CFLAGS=$cf_save_CFLAGS
+    ])
+    if test "$cf_cv_gcc_inline" = yes ; then
+        CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
+    fi
+  fi
 fi
-
-case $cf_cv_cpp_vscan_func in #(vi
-stdio) #(vi
-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
-	AC_DEFINE(USE_STDIO_VSCAN)
-	;;
-strstream)
-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
-	AC_DEFINE(USE_STRSTREAM_VSCAN)
-	;;
-strstream_cast)
-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
-	AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
-	;;
-esac
+AC_SUBST($1)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
@@ -967,6 +1058,34 @@
 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
+dnl ---------------
+dnl Check for openpty() function, along with <pty.h> header.  It may need the
+dnl "util" library as well.
+AC_DEFUN([CF_FUNC_OPENPTY],
+[
+AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
+AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
+    cf_save_LIBS="$LIBS"
+    test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
+    for cf_header in pty.h libutil.h util.h
+    do
+    AC_TRY_LINK([
+#include <$cf_header>
+],[
+    int x = openpty((int *)0, (int *)0, (char *)0,
+                   (struct termios *)0, (struct winsize *)0);
+],[
+        cf_cv_func_openpty=$cf_header
+        break
+],[
+        cf_cv_func_openpty=no
+])
+    done
+    LIBS="$cf_save_LIBS"
+])
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
 dnl ------------
 dnl See if the poll function really works.  Some platforms have poll(), but
@@ -1070,7 +1189,7 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
+dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
 dnl -----------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 dnl compiler warnings.  Though useful, not all are supported -- and contrary
@@ -1097,7 +1216,7 @@
 then
 	AC_CHECKING([for $CC __attribute__ directives])
 cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
+#line __oline__ "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -1159,7 +1278,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
+dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -1184,7 +1303,7 @@
 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
 
 cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
+#line __oline__ "${as_me-configure}"
 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
 EOF
 
@@ -1205,7 +1324,7 @@
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
-	for cf_opt in $1 \
+	for cf_opt in \
 		wd1419 \
 		wd1682 \
 		wd1683 \
@@ -1561,11 +1680,24 @@
 AC_SUBST(EXTRA_CXXFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB version: 1 updated: 2006/08/19 09:16:14
+dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
 dnl ------------
 dnl Look for an instance of the Berkeley hashed database.
+dnl
+dnl $1 = optional parameter, to specify install-prefix for the database.
 AC_DEFUN([CF_HASHED_DB],
 [
+ifelse([$1],,,[
+case $1 in #(vi
+yes|*able*) #(vi
+    ;;
+*)
+    if test -d "$1" ; then
+        CF_ADD_INCDIR($1/include)
+        CF_ADD_LIBDIR($1/lib)
+    fi
+esac
+])
 AC_CHECK_HEADER(db.h,[
 CF_HASHED_DB_VERSION
 if test "$cf_cv_hashed_db_version" = unknown ; then
@@ -1583,7 +1715,7 @@
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB_LIBS version: 6 updated: 2006/12/16 12:33:30
+dnl CF_HASHED_DB_LIBS version: 7 updated: 2007/12/01 15:01:37
 dnl -----------------
 dnl Given that we have the header and version for hashed database, find the
 dnl library information.
@@ -1591,7 +1723,7 @@
 [
 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
 cf_cv_hashed_db_libs=unknown
-for cf_db_libs in db$cf_cv_hashed_db_version db ''
+for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
 do
 	cf_save_libs="$LIBS"
 	if test -n "$cf_db_libs"; then
@@ -1655,7 +1787,7 @@
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB_VERSION version: 2 updated: 2006/08/19 15:12:49
+dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
 dnl --------------------
 dnl Given that we have the header file for hashed database, find the version
 dnl information.
@@ -1664,7 +1796,7 @@
 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
 cf_cv_hashed_db_version=unknown
 
-for cf_db_version in 1 2 3 4
+for cf_db_version in 1 2 3 4 5
 do
 	CF_MSG_LOG(checking for db version $cf_db_version)
 	AC_TRY_COMPILE([
@@ -1778,7 +1910,7 @@
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 6 updated: 2006/09/23 19:07:52
+dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
 dnl ------------
 dnl Add checks for large file support.
 AC_DEFUN([CF_LARGEFILE],[
@@ -1796,6 +1928,7 @@
 	# the config.h
 	test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
 
 	AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
 		AC_TRY_COMPILE([
@@ -1816,6 +1949,48 @@
 ])
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
+dnl -----------------
+dnl Check for compiler/linker flags used to temporarily force usage of static
+dnl libraries.  This depends on the compiler and platform.  Use this to help
+dnl ensure that the linker picks up a given library based on its position in
+dnl the list of linker options and libraries.
+AC_DEFUN([CF_LDFLAGS_STATIC],[
+
+if test "$GCC" = yes ; then
+	LDFLAGS_STATIC=-static
+	LDFLAGS_SHARED=-dynamic
+else
+	case $cf_cv_system_name in #(
+	aix[[45]]*) 	#( from ld manpage
+		LDFLAGS_STATIC=-bstatic
+		LDFLAGS_SHARED=-bdynamic
+		;;
+	hpux*)		#( from ld manpage for hpux10.20, hpux11.11
+		# We could also use just "archive" and "shared".
+		LDFLAGS_STATIC=-Wl,-a,archive_shared
+		LDFLAGS_SHARED=-Wl,-a,shared_archive
+		;;
+	irix*)		#( from ld manpage IRIX64
+		LDFLAGS_STATIC=-Bstatic
+		LDFLAGS_SHARED=-Bdynamic
+		;;
+	osf[[45]]*)	#( from ld manpage osf4.0d, osf5.1
+		# alternative "-oldstyle_liblookup" (not in cc manpage)
+		LDFLAGS_STATIC=-noso 
+		LDFLAGS_SHARED=-so_archive
+		;;
+	solaris2*)
+		LDFLAGS_STATIC=-Bstatic
+		LDFLAGS_SHARED=-Bdynamic
+		;;
+	esac
+fi
+
+AC_SUBST(LDFLAGS_STATIC)
+AC_SUBST(LDFLAGS_SHARED)
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
 dnl ----------
 dnl Check for libutf8
@@ -1852,11 +2027,11 @@
 	AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 40 updated: 2006/10/14 15:23:15
+dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
-dnl subdirectory is a library-source directory, modify the LIBRARIES list in
+dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
 dnl the corresponding makefile to list the models that we'll generate.
 dnl
 dnl For shared libraries, make a list of symbolic links to construct when
@@ -1875,7 +2050,6 @@
 		continue
 	elif test -f $srcdir/$cf_dir/modules; then
 
-		IMPORT_LIB=
 		SHARED_LIB=
 		LIBS_TO_MAKE=
 		for cf_item in $cf_LIST_MODELS
@@ -1922,9 +2096,7 @@
 			# use autodetected ${cf_prefix} for import lib and static lib, but
 			# use 'cyg' prefix for shared lib.
 			if test $cf_cv_shlib_version = cygdll ; then
-				SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
-				IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
-				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
+				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
 				continue
 			fi
 			fi
@@ -1933,17 +2105,34 @@
 
 		if test $cf_dir = ncurses ; then
 			cf_subsets="$LIB_SUBSETS"
-			cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
-			if test "$cf_termlib" != "$cf_subsets" ; then
-				cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
-				LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
-			fi
+			cf_r_parts="$cf_subsets"
+
+			while test -n "$cf_r_parts"
+			do
+				cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
+				cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
+				if test "$cf_l_parts" != "$cf_r_parts" ; then
+					case $cf_l_parts in #(vi
+					*termlib*) #(vi
+						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
+						;;
+					*ticlib*)
+						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
+						;;
+					*)
+						break
+						;;
+					esac
+					LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+				else
+					break
+				fi
+			done
 		else
 			cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
 		fi
 
 		sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-		    -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
 		    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
 			$cf_dir/Makefile >$cf_dir/Makefile.out
 		mv $cf_dir/Makefile.out $cf_dir/Makefile
@@ -1968,13 +2157,20 @@
 				case $cf_subset in
 				*base*)
 					;;
-				termlib*)
+				*termlib*)
 					cf_libname=$TINFO_LIB_SUFFIX
 					if test -n "${DFT_ARG_SUFFIX}" ; then
 						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
 						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
 					fi
-				;;
+					;;
+				ticlib*)
+					cf_libname=$TICS_LIB_SUFFIX
+					if test -n "${DFT_ARG_SUFFIX}" ; then
+						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+					fi
+					;;
 				esac
 			fi
 
@@ -2015,8 +2211,11 @@
 				prefix=$cf_prefix \
 				suffix=$cf_suffix \
 				subset=$cf_subset \
+				TermlibRoot=$TINFO_NAME \
+				TermlibSuffix=$TINFO_SUFFIX \
 				ShlibVer=$cf_cv_shlib_version \
 				ShlibVerInfix=$cf_cv_shlib_version_infix \
+				ReLink=${cf_cv_do_relink-no} \
 				DoLinks=$cf_cv_do_symlinks \
 				rmSoLocs=$cf_cv_rm_so_locs \
 				ldconfig="$LDCONFIG" \
@@ -2103,8 +2302,8 @@
 
 cat >> Makefile <<CF_EOF
 
-install.data \\
-uninstall.data ::
+install.libs uninstall.libs \\
+install.data uninstall.data ::
 $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
 
 install.man \\
@@ -2113,7 +2312,7 @@
 
 distclean ::
 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
-	rm -f headers.sh headers.sed
+	rm -f headers.sh headers.sed mk_shared_lib.sh
 	rm -rf \${DIRS_TO_MAKE}
 CF_EOF
 
@@ -2224,41 +2423,10 @@
 	fi
 
 	if test -f $srcdir/$cf_dir/headers; then
-	cat >>$cf_dir/Makefile <<CF_EOF
-\${DESTDIR}\${includedir} :
-	sh \${srcdir}/../mkinstalldirs \[$]@
-
-install \\
-install.libs \\
-install.includes :: \${AUTO_SRC} \${DESTDIR}\${includedir} \\
-CF_EOF
-		j=""
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			test -n "$j" && echo "		$j \\" >>$cf_dir/Makefile
-			j=$i
-		done
-
-		echo "		$j" >>$cf_dir/Makefile
-
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			echo "	@ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile
-			test $i = curses.h && test $WITH_CURSES_H = yes && echo "	@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile
-		done
-
-	cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			i=`basename $i`
-			echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile
-			test $i = curses.h && echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile
-		done
+		$AWK -f $srcdir/mk-hdr.awk \
+			subset="$LIB_SUBSETS" \
+			compat="$WITH_CURSES_H" \
+			$srcdir/$cf_dir/headers >>$cf_dir/Makefile
 	fi
 
 	if test -f $srcdir/$cf_dir/modules; then
@@ -2776,7 +2944,7 @@
 AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 31 updated: 2006/12/09 12:27:08
+dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
 dnl ------------
 dnl Try to determine if the man-pages on the system are compressed, and if
 dnl so, what format is used.  Use this information to construct a script that
@@ -2826,6 +2994,7 @@
 esac
 
 cf_edit_man=./edit_man.sh
+cf_man_alias=`pwd`/man_alias.sed
 
 cat >$cf_edit_man <<CF_EOF
 #! /bin/sh
@@ -2841,7 +3010,7 @@
 NCURSES_OSPEED="$NCURSES_OSPEED"
 TERMINFO="$TERMINFO"
 
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
 
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
@@ -2889,6 +3058,32 @@
 		\$MKDIRS \$cf_subdir\$section
 	fi
 	fi
+
+	# replace variables in man page
+	if test ! -f $cf_man_alias ; then
+cat >>$cf_man_alias <<-CF_EOF2
+		s,@DATADIR@,\$datadir,g
+		s,@TERMINFO@,\$TERMINFO,g
+		s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
+		s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
+		s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
+		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
+CF_EOF
+	ifelse($1,,,[
+	for cf_name in $1
+	do
+		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+		cf_name=`echo $cf_name|sed "$program_transform_name"`
+cat >>$cf_edit_man <<-CF_EOF
+		s,@$cf_NAME@,$cf_name,
+CF_EOF
+	done
+	])
+cat >>$cf_edit_man <<CF_EOF
+CF_EOF2
+		echo "...made $cf_man_alias"
+	fi
+
 	aliases=
 	cf_source=\`basename \$i\`
 	inalias=\$cf_source
@@ -2901,7 +3096,7 @@
 
 if test "$MANPAGE_ALIASES" != no ; then
 cat >>$cf_edit_man <<CF_EOF
-	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
+	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
 CF_EOF
 fi
 
@@ -2922,36 +3117,13 @@
 		cf_target="\$cf_source"
 	fi
 	cf_target="\$cf_subdir\${section}/\${cf_target}"
-CF_EOF
-fi
 
-	# replace variables in man page
-	ifelse($1,,,[
-	for cf_name in $1
-	do
-cat >>$cf_edit_man <<CF_EOF
-	prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
-CF_EOF
-	done
-	])
-cat >>$cf_edit_man <<CF_EOF
-	sed	-e "s,@DATADIR@,\$datadir," \\
-		-e "s,@TERMINFO@,\$TERMINFO," \\
-		-e "s,@NCURSES_MAJOR@,\$NCURSES_MAJOR," \\
-		-e "s,@NCURSES_MINOR@,\$NCURSES_MINOR," \\
-		-e "s,@NCURSES_PATCH@,\$NCURSES_PATCH," \\
-		-e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
 CF_EOF
+fi
 
-	ifelse($1,,,[
-	for cf_name in $1
-	do
-		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 cat >>$cf_edit_man <<CF_EOF
-		-e "s,@$cf_NAME@,\$prog_$cf_name," \\
+	sed	-f $cf_man_alias \\
 CF_EOF
-	done
-	])
 
 if test -f $MANPAGE_RENAMES ; then
 cat >>$cf_edit_man <<CF_EOF
@@ -3012,6 +3184,7 @@
 	if test \$verb = installing ; then
 		echo \$verb \$cf_target
 		\$INSTALL_DATA \$TMP \$cf_target
+		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
 				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
@@ -3053,8 +3226,11 @@
 			)
 		)
 	elif test \$verb = removing ; then
-		echo \$verb \$cf_target
-		rm -f \$cf_target
+		test -f \$cf_target && (
+			echo \$verb \$cf_target
+			rm -f \$cf_target
+		)
+		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
 				for cf_alias in \$aliases
@@ -3192,12 +3368,12 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
 dnl ----------
 dnl Write a debug message to config.log, along with the line number in the
 dnl configure script.
 AC_DEFUN([CF_MSG_LOG],[
-echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
@@ -3297,7 +3473,7 @@
 	AC_SUBST(PATHSEP)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PATH_SYNTAX version: 11 updated: 2006/09/02 08:55:46
+dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
 dnl --------------
 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
 dnl begins with one of the prefix/exec_prefix variables, and then again if the
@@ -3329,7 +3505,7 @@
   $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
+  ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
   ;;
 esac
 ])dnl
@@ -3680,7 +3856,73 @@
 		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 41 updated: 2006/12/09 12:32:00
+dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
+dnl -------------
+dnl Remove the given library from the symbol
+dnl
+dnl $1 = target (which could be the same as the source variable)
+dnl $2 = source (including '$')
+dnl $3 = library to remove
+define([CF_REMOVE_LIB],
+[
+# remove $3 library from $2
+$1=`echo "$2" | sed -e 's/-l$3[[ 	]]//g' -e 's/-l$3[$]//'`
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_RPATH_HACK version: 3 updated: 2007/12/01 11:14:13
+dnl -------------
+AC_DEFUN([CF_RPATH_HACK],
+[
+AC_REQUIRE([CF_SHARED_OPTS])
+AC_MSG_CHECKING(for updated LDFLAGS)
+if test -n "$LDFLAGS" ; then
+AC_MSG_RESULT(maybe)
+CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
+CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
+case "$EXTRA_LDFLAGS" in #(vi
+-Wl,-rpath,*) #(vi
+    cf_rpath_hack="-Wl,-rpath,"
+    ;;
+-R\ *)
+    cf_rpath_hack="-R "
+    ;;
+-R*)
+    cf_rpath_hack="-R"
+    ;;
+*)
+    cf_rpath_hack=
+    ;;
+esac
+if test -n "$cf_rpath_hack" ; then
+    cf_rpath_dst=
+    for cf_rpath_src in $LDFLAGS
+    do
+        CF_VERBOSE(Filtering $cf_rpath_src)
+        case $cf_rpath_src in #(vi
+        -L*) #(vi
+            if test "$cf_rpath_hack" = "-R " ; then
+                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
+            else
+                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
+            fi
+            CF_VERBOSE(...Filter $cf_rpath_tmp)
+            EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
+            ;;
+        *)
+            cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
+            ;;
+        esac
+    done
+    LDFLAGS=$cf_rpath_dst
+    CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
+    CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
+fi
+else
+AC_MSG_RESULT(no)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SHARED_OPTS version: 48 updated: 2008/06/14 15:08:17
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -3726,7 +3968,7 @@
 		cf_cv_shlib_version=$withval
 		;;
 	*)
-		AC_ERROR([option value must be one of: rel, abi, auto or no])
+		AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
 		;;
 	esac
 	],[cf_cv_shlib_version=auto])
@@ -3757,14 +3999,27 @@
 		;;
 	cygwin*)
 		CC_SHARED_OPTS=
-		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
+		MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
 		cf_cv_shlib_version=cygdll
 		cf_cv_shlib_version_infix=cygdll
+		cat >mk_shared_lib.sh <<-CF_EOF
+		#!/bin/sh
+		SHARED_LIB=\[$]1
+		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
+		shift
+		cat <<-EOF
+		Linking shared library
+		** SHARED_LIB \[$]SHARED_LIB
+		** IMPORT_LIB \[$]IMPORT_LIB
+EOF
+		exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
+CF_EOF
+		chmod +x mk_shared_lib.sh 
 		;;
 	darwin*)
 		EXTRA_CFLAGS="-no-cpp-precomp"
 		CC_SHARED_OPTS="-dynamic"
-		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
+		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
 		cf_cv_shlib_version_infix=yes
 		AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
@@ -3818,11 +4073,11 @@
 		CF_SHARED_SONAME
 		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
 		;;
-	openbsd2*)
+	openbsd[[2-9]].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
 		MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
 		;;
-	openbsd*|freebsd[[23]]*)
+	openbsd*|freebsd[[12]].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
 		MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
@@ -3903,9 +4158,7 @@
 		;;
 	solaris2*)
 		# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
-		if test "$GCC" != yes; then
-			CC_SHARED_OPTS='-KPIC'
-		fi
+		# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
 		if test "$DFT_LWR_MODEL" = "shared" ; then
 			LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
@@ -3915,7 +4168,12 @@
 			EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
 		fi
 		CF_SHARED_SONAME
-		MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]'
+		if test "$GCC" != yes; then
+			CC_SHARED_OPTS='-xcode=pic32'
+			MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]'
+		else
+			MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_shared_soname' -o $[@]'
+		fi
 		;;
 	sysv5uw7*|unix_sv*)
 		# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
@@ -4043,6 +4301,41 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
+dnl ---------------
+dnl signal handler, but there are some gcc depedencies in that recommendation.
+dnl Try anyway.
+AC_DEFUN([CF_SIG_ATOMIC_T],
+[
+AC_MSG_CHECKING(for signal global datatype)
+AC_CACHE_VAL(cf_cv_sig_atomic_t,[
+	for cf_type in \
+		"volatile sig_atomic_t" \
+		"sig_atomic_t" \
+		"int"
+	do
+	AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+
+extern $cf_type x;
+$cf_type x;
+static void handler(int sig)
+{
+	x = 5;
+}],
+		[signal(SIGINT, handler);
+		 x = 1],
+		[cf_cv_sig_atomic_t=$cf_type],
+		[cf_cv_sig_atomic_t=no])
+		test "$cf_cv_sig_atomic_t" != no && break
+	done
+	])
+AC_MSG_RESULT($cf_cv_sig_atomic_t)
+test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
 dnl -------------
 dnl Check for definitions & structures needed for window size-changing
@@ -4503,11 +4796,12 @@
 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
+dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
 dnl ----------
 dnl Use AC_VERBOSE w/o the warnings
 AC_DEFUN([CF_VERBOSE],
 [test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
+CF_MSG_LOG([$1])
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
@@ -4610,7 +4904,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_GPM version: 6 updated: 2006/12/17 11:12:09
+dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
 dnl -----------
 dnl
 dnl The option parameter (if neither yes/no) is assumed to be the name of
@@ -4632,7 +4926,7 @@
 			AC_DEFINE(HAVE_LIBGPM)
 		else
 			AC_CHECK_LIB(gpm,Gpm_Open,[:],[
-				AC_ERROR(Cannot link with GPM library)
+				AC_MSG_ERROR(Cannot link with GPM library)
 		fi
 		with_gpm=yes
 		])
@@ -4643,7 +4937,7 @@
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 10 updated: 2006/10/14 15:23:15
+dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
 dnl symbols for the makefile rules.
@@ -4692,7 +4986,7 @@
 # doing:
 LIB_CLEAN=
 LIB_COMPILE=
-LIB_LINK=
+LIB_LINK='${CC}'
 LIB_INSTALL=
 LIB_UNINSTALL=
 
@@ -4718,12 +5012,12 @@
  		AC_MSG_ERROR(Cannot find libtool)
  	fi
 ])dnl
-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
-	LIB_OBJECT='${OBJECTS}.o=.lo)'
+	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
+	LIB_OBJECT='${OBJECTS:.o=.lo}'
 	LIB_SUFFIX=.la
 	LIB_CLEAN='${LIBTOOL} --mode=clean'
 	LIB_COMPILE='${LIBTOOL} --mode=compile'
-	LIB_LINK='${LIBTOOL} --mode=link'
+	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
 	LIB_INSTALL='${LIBTOOL} --mode=install'
 	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
 	LIB_PREP=:
@@ -4734,16 +5028,17 @@
 	# Save the version in a cache variable - this is not entirely a good
 	# thing, but the version string from libtool is very ugly, and for
 	# bug reports it might be useful to have the original string.
-	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
+	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
 	AC_MSG_RESULT($cf_cv_libtool_version)
 	if test -z "$cf_cv_libtool_version" ; then
-		AC_MSG_ERROR(This is not libtool)
+		AC_MSG_ERROR(This is not GNU libtool)
 	fi
 
 	# special hack to add --tag option for C++ compiler
 	case $cf_cv_libtool_version in
 	1.[[5-9]]*|[[2-9]]*)
 		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
+		LIBTOOL="$LIBTOOL --tag=CC"
 		;;
 	*)
 		LIBTOOL_CXX="$LIBTOOL"
@@ -4758,6 +5053,7 @@
 
 AC_SUBST(LIBTOOL)
 AC_SUBST(LIBTOOL_CXX)
+AC_SUBST(LIBTOOL_OPTS)
 
 AC_SUBST(LIB_CREATE)
 AC_SUBST(LIB_OBJECT)
@@ -4772,7 +5068,7 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08
+dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
 dnl ------------
 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
 dnl defaulting to yes/no.
@@ -4786,7 +5082,9 @@
 AC_DEFUN([CF_WITH_PATH],
 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
+if ifelse($5,,true,[test -n "$5"]) ; then
 CF_PATH_SYNTAX(withval)
+fi
 $3="$withval"
 AC_SUBST($3)dnl
 ])dnl
@@ -4833,6 +5131,32 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_PTHREAD version: 1 updated: 2008/03/29 13:42:21
+dnl ---------------
+dnl Check for POSIX thread library.
+AC_DEFUN([CF_WITH_PTHREAD],
+[
+AC_MSG_CHECKING(if you want to link with the pthread library)
+AC_ARG_WITH(pthread,
+    [  --with-pthread          use POSIX thread library],
+    [with_pthread=$withval],
+    [with_pthread=no])
+AC_MSG_RESULT($with_pthread)
+
+if test "$with_pthread" != no ; then
+    AC_CHECK_HEADER(pthread.h,[
+        AC_DEFINE(HAVE_PTHREADS_H)
+        AC_CHECK_LIB(pthread,pthread_create,[
+            LIBS="-lpthread $LIBS"
+            AC_DEFINE(HAVE_LIBPTHREADS)
+            with_pthread=yes
+        ],[
+            AC_MSG_ERROR(Cannot link with pthread library)
+        ])
+    ])
+fi
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
 dnl -------------------
 dnl Allow library's release-version to be overridden.  Generally this happens when a
@@ -4896,7 +5220,7 @@
 	[USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09
+dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -4930,7 +5254,7 @@
 irix[[56]].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|k*bsd*-gnu) #(vi
 	CF_GNU_SOURCE
 	;;
 mirbsd*) #(vi
diff -Naur ncurses-5.6.orig/c++/Makefile.in ncurses-5.6/c++/Makefile.in
--- ncurses-5.6.orig/c++/Makefile.in	2006-10-21 13:07:49.000000000 -0400
+++ ncurses-5.6/c++/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.78 2006/10/21 17:07:49 tom Exp $
+# $Id: Makefile.in,v 1.84 2007/04/28 15:29:12 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -57,6 +57,7 @@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
 
 INSTALL		= @INSTALL@
+INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
@@ -74,6 +75,7 @@
 INCDIR		= ../include
 CPPFLAGS	= -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
 
+CC		= ${CXX}
 CCFLAGS		= $(CPPFLAGS) $(CXXFLAGS)
 
 CFLAGS_LIBTOOL	= $(CCFLAGS)
@@ -91,7 +93,7 @@
 
 LOCAL_LIBDIR	= @top_builddir@/lib
 
-LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) $(CXX) @CXXLDFLAGS@
+LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) @CXXLDFLAGS@
 SHLIB_DIRS	= -L../lib
 SHLIB_LIST	= $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
@@ -109,7 +111,9 @@
 LINK_PROFILE	= $(LINK_FLAGS)
 LINK_SHARED	= $(LINK_FLAGS)
 
-LDFLAGS		= @TEST_ARGS@ @LDFLAGS@ \
+TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
+
+LDFLAGS		= $(TEST_ARGS) @LDFLAGS@ \
 	@LD_MODEL@ @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
 
 LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LIBTOOL)
@@ -173,11 +177,11 @@
 	sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
 
 $(DESTDIR)$(libdir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 install \
 install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
-	$(LIBTOOL_INSTALL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
+	$(LIBTOOL_INSTALL) $(INSTALL_LIB) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
 
 uninstall \
 uninstall.libs::
diff -Naur ncurses-5.6.orig/c++/README-first ncurses-5.6/c++/README-first
--- ncurses-5.6.orig/c++/README-first	2006-04-22 18:19:37.000000000 -0400
+++ ncurses-5.6/c++/README-first	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,38 +25,38 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: README-first,v 1.8 2006/04/22 22:19:37 tom Exp $
+-- $Id: README-first,v 1.9 2007/01/27 18:27:09 tom Exp $
 -------------------------------------------------------------------------------
                   C++ interface to ncurses routines
 -----------------------------------------------------------------------
 
 This directory contains the source code for several C++ classes which
-ease the use of writing ncurses-based programs.  The code is derived
-from the libg++ CursesWindow class but enhanced for ncurses.
+ease the use of writing ncurses-based programs.  The code was originally
+derived from the libg++ CursesWindow class, but rewritten for ncurses.
 
 The classes simplify the use of window specific functions by
 encapsulating them in the window object.  Function overloading is
-used in order to narrow the interface.  E.g. you don't have the
+used in order to narrow the interface.  For example, you do not have the
 distinction between `printw' and `mvprintw' anymore.
 
 A second benefit is the removal of all #defines which are included in
 the curses.h file.  This is a steady cause of trouble because many
 common identifiers are used.  Instead now all #defines are inline
-functions which also allows strict type checking of arguments.
+functions, which also allows strict type checking of arguments.
 
 The next enhancement is color support. It was originally provided by a 
-derived class. This caused some trouble if you think about Panels or
-Menus and Forms with colors. We decided to put color support into the
+derived class.  This caused some trouble if you think about Panels or
+Menus and Forms with colors.  We decided to put color support into the
 base class so that any derived class may use color support also.
 The implementation chosen here is directed to unrestricted use
-of mixes of color and monochrome windows. The original NCursesColorWindow
+of mixes of color and monochrome windows.  The original NCursesColorWindow
 class is maintained for compatibility reasons.
 
 The last point to mention is the support of other packages that are
-distributed with the ncurses package: the panels library, the menu library
-and the form library. This support is provided by the NCursesPanel class, 
+distributed with the ncurses package:  the panels library, the menu library
+and the form library.  This support is provided by the NCursesPanel class,
 which is also derived from the NCursesWindow class and the NCursesMenu
-and NCursesForm classes which are derived from NCursesPanel. This allows 
+and NCursesForm classes which are derived from NCursesPanel.  This allows
 building interfaces with windows.
 
 Please see the example program for a quick introduction.
@@ -68,14 +68,6 @@
 Suggestions for enhancements and contributions of code (and docs) are
 welcome.  Please let us know which functionality you miss.
 
-	ATTENTION LINUX USERS:  There is currently some discussion of
-	replacing the BSD curses in the Linux libc with ncurses.  If
-	this is done we could perhaps include these classes in the Linux
-	libg++ replacing the original CursesWindow class (and renaming it
-	to CursesWindow).  This could be done because NCursesWindow can
-	be made easily to a superset of the CursesWindow class.
-
-
 Original author:
      Eric Newton         <newton@rocky.oswego.edu> for FSF's libg++
 
@@ -83,5 +75,6 @@
      Ulrich Drepper      <drepper@ira.uka.de>
  and Anatoly Ivasyuk     <anatoly@nick.csh.rit.edu>
 
-Author of this release:
+Authors of this release:
      Juergen Pfeifer
+     Thomas E. Dickey
diff -Naur ncurses-5.6.orig/c++/cursesapp.cc ncurses-5.6/c++/cursesapp.cc
--- ncurses-5.6.orig/c++/cursesapp.cc	2005-04-03 08:25:23.000000000 -0400
+++ ncurses-5.6/c++/cursesapp.cc	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 #include "internal.h"
 #include "cursesapp.h"
 
-MODULE_ID("$Id: cursesapp.cc,v 1.13 2005/04/03 12:25:23 tom Exp $")
+MODULE_ID("$Id: cursesapp.cc,v 1.14 2007/01/27 20:16:42 tom Exp $")
 
 void
 NCursesApplication::init(bool bColors)
@@ -72,11 +72,16 @@
   Soft_Label_Key_Set* S;
 
   delete titleWindow;
+  titleWindow = 0;
+
   while( (S=top()) ) {
     pop();
     delete S;
   }
+
   delete Root_Window;
+  Root_Window = 0;
+
   ::endwin();
 }
 
diff -Naur ncurses-5.6.orig/c++/cursesmain.cc ncurses-5.6/c++/cursesmain.cc
--- ncurses-5.6.orig/c++/cursesmain.cc	2003-10-25 10:53:13.000000000 -0400
+++ ncurses-5.6/c++/cursesmain.cc	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,14 @@
 #include "internal.h"
 #include "cursesapp.h"
 
-MODULE_ID("$Id: cursesmain.cc,v 1.11 2003/10/25 14:53:13 tom Exp $")
+#if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM
+#include <iostream>
+#else
+#undef CPP_HAS_TRY_CATCH
+#define CPP_HAS_TRY_CATCH 0
+#endif
+
+MODULE_ID("$Id: cursesmain.cc,v 1.14 2007/04/07 17:10:11 tom Exp $")
 
 #if HAVE_LOCALE_H
 #include <locale.h>
@@ -42,6 +49,10 @@
 #define setlocale(name,string) /* nothing */
 #endif
 
+#if NO_LEAKS
+#include <nc_alloc.h>
+#endif
+
 /* This is the default implementation of main() for a NCursesApplication.
  * You only have to instantiate a static NCursesApplication object in your
  * main application source file and link this module with your application.
@@ -58,8 +69,25 @@
 
     A->handleArgs(argc,argv);
     ::endwin();
+#if CPP_HAS_TRY_CATCH
+    try {
+      res = (*A)();
+      ::endwin();
+    }
+    catch(const NCursesException &e) {
+      ::endwin();
+      std::cerr << e.message << std::endl;
+      res = e.errorno;
+    }
+#else
     res = (*A)();
     ::endwin();
+#endif
+#if NO_LEAKS
+    delete A;
+    _nc_free_and_exit(res);
+#else
     return(res);
+#endif
   }
 }
diff -Naur ncurses-5.6.orig/c++/cursesp.h ncurses-5.6/c++/cursesp.h
--- ncurses-5.6.orig/c++/cursesp.h	2005-08-13 14:09:21.000000000 -0400
+++ ncurses-5.6/c++/cursesp.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 #ifndef NCURSES_CURSESP_H_incl
 #define NCURSES_CURSESP_H_incl 1
 
-// $Id: cursesp.h,v 1.26 2005/08/13 18:09:21 tom Exp $
+// $Id: cursesp.h,v 1.27 2007/04/07 17:12:54 tom Exp $
 
 #include <cursesw.h>
 
@@ -83,7 +83,7 @@
     return uptr->m_user;
   }
 
-  void OnError (int err) const THROWS((NCursesPanelException))
+  void OnError (int err) const THROWS(NCursesPanelException)
   {
     if (err==ERR)
       THROW(new NCursesPanelException (this, err));
diff -Naur ncurses-5.6.orig/c++/cursespad.cc ncurses-5.6/c++/cursespad.cc
--- ncurses-5.6.orig/c++/cursespad.cc	2005-07-23 16:51:23.000000000 -0400
+++ ncurses-5.6/c++/cursespad.cc	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,12 +33,10 @@
 
 #include "internal.h"
 
-#include <stdio.h>
+#include <etip.h>
+#include <cursesw.h>
 
-#include "etip.h"
-#include "cursesw.h"
-
-MODULE_ID("$Id: cursespad.cc,v 1.11 2005/07/23 20:51:23 tom Exp $")
+MODULE_ID("$Id: cursespad.cc,v 1.12 2007/04/07 18:43:54 tom Exp $")
 
 NCursesPad::NCursesPad(int nlines, int ncols)
   : NCursesWindow(),
diff -Naur ncurses-5.6.orig/c++/cursesw.cc ncurses-5.6/c++/cursesw.cc
--- ncurses-5.6.orig/c++/cursesw.cc	2005-08-13 14:12:17.000000000 -0400
+++ ncurses-5.6/c++/cursesw.cc	2008-06-18 06:49:45.000000000 -0400
@@ -1,77 +1,83 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
+/****************************************************************************
+ * Copyright (c) 2007 Free 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.                                                           *
+ ****************************************************************************/
 
 /*
-  Copyright (C) 1989 Free Software Foundation
-  written by Eric Newton (newton@rocky.oswego.edu)
-
-  This file is part of the GNU C++ Library.  This library is free
-  software; you can redistribute it and/or modify it under the terms of
-  the GNU Library General Public License as published by the Free
-  Software Foundation; either version 2 of the License, or (at your
-  option) any later version.  This library is distributed in the hope
-  that it will be useful, but WITHOUT ANY WARRANTY; without even the
-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-  PURPOSE.  See the GNU Library General Public License for more details.
-  You should have received a copy of the GNU Library General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-  modified by Ulrich Drepper  (drepper@karlsruhe.gmd.de)
-          and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
-
-  modified by Juergen Pfeifer
-  and Thomas Dickey (noting that more than 70% of this file has been changed)
-*/
+ * Authors:
+ *	Thomas E. Dickey
+ *	Juergen Pfeifer
+ *
+ * The NCursesWindow class was originally based on a file written by
+ * Eric Newton, later modified by Ulrich Drepper and Anatoly Ivasyuk.
+ * However, aside from the compatible interface definition, no trace
+ * of the original code remains in this version: it consists only of
+ * changes introduced since 1995.
+ */
 
 #include "internal.h"
 #include "cursesw.h"
 
-MODULE_ID("$Id: cursesw.cc,v 1.32 2005/08/13 18:12:17 tom Exp $")
+MODULE_ID("$Id: cursesw.cc,v 1.49 2007/12/15 23:01:57 tom Exp $")
 
 #define COLORS_NEED_INITIALIZATION  -1
 #define COLORS_NOT_INITIALIZED       0
 #define COLORS_MONOCHROME            1
 #define COLORS_ARE_REALLY_THERE      2
 
+#define HaveColors() (colorInitialized == COLORS_ARE_REALLY_THERE)
+
 // declare static variables for the class
 long NCursesWindow::count = 0L;
 bool NCursesWindow::b_initialized = FALSE;
 
-/*
- * The ncurses library has a fallback for vsscanf(), which may work...
- */
-#if !(USE_STRSTREAM_VSCAN || USE_STRSTREAM_VSCAN_CAST)
-#  undef  USE_STDIO_VSCAN
-#  define USE_STDIO_VSCAN 1
-#endif
+int
+NCursesWindow::scanw(const char* fmt, ...)
+{
+    int result = ERR;
+
+    va_list args;
+    va_start(args, fmt);
+    result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
+    va_end(args);
+
+    return result;
+}
 
-#if defined(__GNUG__)
-#  ifndef _IO_va_list
-#    define _IO_va_list char *
-#  endif
-#endif
 
 int
-NCursesWindow::scanw(const char* fmt, ...)
+NCursesWindow::scanw(int y, int x, const char* fmt, ...)
 {
     int result = ERR;
-    char buf[BUFSIZ];
 
-    if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
+    if (::wmove(w, y, x) != ERR) {
 	va_list args;
 	va_start(args, fmt);
-#if USE_STDIO_VSCAN
-	if (::vsscanf(buf, fmt, args) != -1)
-	    result = OK;
-#elif USE_STRSTREAM_VSCAN	/* powerpc, os390 */
-	strstreambuf ss(buf, sizeof(buf));
-	if (ss.vscan(fmt, args) != -1)
-	    result = OK;
-#elif USE_STRSTREAM_VSCAN_CAST	/* pre-gcc 3.0 */
-	strstreambuf ss(buf, sizeof(buf));
-	if (ss.vscan(fmt, (_IO_va_list)args) != -1)
-	    result = OK;
-#endif
+	result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
 	va_end(args);
     }
     return result;
@@ -79,29 +85,23 @@
 
 
 int
-NCursesWindow::scanw(int y, int x, const char* fmt, ...)
+NCursesWindow::scanw(const char* fmt, va_list args)
+{
+    int result = ERR;
+
+    result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
+
+    return result;
+}
+
+
+int
+NCursesWindow::scanw(int y, int x, const char* fmt, va_list args)
 {
     int result = ERR;
-    char buf[BUFSIZ];
 
     if (::wmove(w, y, x) != ERR) {
-	if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
-	    va_list args;
-	    va_start(args, fmt);
-#if USE_STDIO_VSCAN
-	    if (::vsscanf(buf, fmt, args) != -1)
-		result = OK;
-#elif USE_STRSTREAM_VSCAN	/* powerpc, os390 */
-	    strstreambuf ss(buf, sizeof(buf));
-	    if (ss.vscan(fmt, args) != -1)
-		result = OK;
-#elif USE_STRSTREAM_VSCAN_CAST	/* pre-gcc 3.0 */
-	    strstreambuf ss(buf, sizeof(buf));
-	    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
-		result = OK;
-#endif
-	    va_end(args);
-	}
+	result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
     }
     return result;
 }
@@ -112,10 +112,9 @@
 {
     va_list args;
     va_start(args, fmt);
-    char buf[BUFSIZ];
-    ::vsprintf(buf, fmt, args);
+    int result = ::vw_printw(w, fmt, args);
     va_end(args);
-    return waddstr(w, buf);
+    return result;
 }
 
 
@@ -126,21 +125,37 @@
     va_start(args, fmt);
     int result = ::wmove(w, y, x);
     if (result == OK) {
-	char buf[BUFSIZ];
-	::vsprintf(buf, fmt, args);
-	result = waddstr(w, buf);
+	result = ::vw_printw(w, fmt, args);
     }
     va_end(args);
     return result;
 }
 
 
+int
+NCursesWindow::printw(const char * fmt, va_list args)
+{
+    int result = ::vw_printw(w, fmt, args);
+    return result;
+}
+
+
+int
+NCursesWindow::printw(int y, int x, const char * fmt, va_list args)
+{
+    int result = ::wmove(w, y, x);
+    if (result == OK) {
+	result = ::vw_printw(w, fmt, args);
+    }
+    return result;
+}
+
+
 void
-NCursesWindow::init(void)
+NCursesWindow::set_keyboard(void)
 {
-    leaveok(0);
-    keypad(1);
-    meta(1);
+    keypad(TRUE);
+    meta(TRUE);
 }
 
 void
@@ -152,73 +167,73 @@
 void
 NCursesWindow::initialize()
 {
-  if (!b_initialized) {
-    ::initscr();
-    b_initialized = TRUE;
-    if (colorInitialized==COLORS_NEED_INITIALIZATION) {
-      colorInitialized=COLORS_NOT_INITIALIZED;
-      useColors();
-    }
-    ::noecho();
-    ::cbreak();
-  }
+    if (!b_initialized) {
+	::initscr();
+	b_initialized = TRUE;
+	if (colorInitialized == COLORS_NEED_INITIALIZATION) {
+	    colorInitialized = COLORS_NOT_INITIALIZED;
+	    useColors();
+	}
+	::noecho();
+	::cbreak();
+    }
+}
+
+void
+NCursesWindow::constructing()
+{
+    initialize();
+    ++count;
 }
 
 NCursesWindow::NCursesWindow()
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
 {
-  initialize();
+    constructing();
 
-  w = static_cast<WINDOW *>(0);
-  init();
-  alloced = FALSE;
-  subwins = par = sib = 0;
-  count++;
+    w = static_cast<WINDOW *>(0);
+    set_keyboard();
 }
 
 NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
 {
-    initialize();
+    constructing();
 
     w = ::newwin(nlines, ncols, begin_y, begin_x);
     if (w == 0) {
 	err_handler("Cannot construct window");
     }
-    init();
-
-    alloced = TRUE;
-    subwins = par = sib = 0;
-    count++;
+    set_keyboard();
 }
 
-NCursesWindow::NCursesWindow(WINDOW* &window)
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+NCursesWindow::NCursesWindow(WINDOW* window)
+  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
 {
-    initialize();
+    constructing();
 
-    w = window;
-    init();
-    alloced = FALSE;
-    subwins = par = sib = 0;
-    count++;
+    // We used to use a reference on the "window" parameter, but we cannot do
+    // that with an opaque pointer (see NCURSES_OPAQUE).  If the parameter was
+    // "::stdscr", that is first set via the "constructing() call, and is null
+    // up to that point.  So we allow a null pointer here as meaning the "same"
+    // as "::stdscr".
+    w = window ? window : ::stdscr;
+    set_keyboard();
 }
 
-NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
+NCursesWindow::NCursesWindow(NCursesWindow& win, int ny, int nx,
 			     int begin_y, int begin_x, char absrel)
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
 {
-    initialize();
-    if (absrel == 'a') { // absolute origin
+    constructing();
+    if (absrel == 'a') {	// absolute origin
 	begin_y -= win.begy();
 	begin_x -= win.begx();
     }
 
-    // Even though we treat subwindows as a tree, the standard curses
-    // library needs the `subwin' call to link to the parent in
-    // order to correctly perform refreshes, etc.
-    // Friendly enough, this also works for pads.
-    w = ::derwin(win.w, l, c, begin_y, begin_x);
+    // Link this window into its parent's list of subwindows.
+    // We use derwin(), since this also works for pads.
+    w = ::derwin(win.w, ny, nx, begin_y, begin_x);
     if (w == 0) {
 	err_handler("Cannot construct subwindow");
     }
@@ -226,45 +241,40 @@
     par = &win;
     sib = win.subwins;
     win.subwins = this;
-    subwins = 0;
-    alloced = TRUE;
-    count++;
 }
 
 NCursesWindow::NCursesWindow(NCursesWindow& win,
 				bool do_box NCURSES_PARAM_INIT(TRUE))
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
 {
-  initialize();
-  int myHeight = win.height();
-  int myWidth  = win.width();
-  w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
-  if (w == 0) {
-    err_handler("Cannot construct subwindow");
-  }
-
-  par = &win;
-  sib = win.subwins;
-  win.subwins = this;
-  subwins = 0;
-  alloced = TRUE;
-  count++;
-
-  if (do_box) {
-    win.box();
-    win.touchwin();
-  }
+    constructing();
+    int myHeight = win.height();
+    int myWidth  = win.width();
+    w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
+    if (w == 0) {
+	err_handler("Cannot construct subwindow");
+    }
+
+    par = &win;
+    sib = win.subwins;
+    win.subwins = this;
+    subwins = 0;
+
+    if (do_box) {
+	win.box();
+	win.touchwin();
+    }
 }
 
 NCursesWindow NCursesWindow::Clone()
 {
-  WINDOW *d = ::dupwin(w);
-  NCursesWindow W(d);
-  W.subwins = subwins;
-  W.sib = sib;
-  W.par = par;
-  W.alloced = alloced;
-  return W;
+    WINDOW *d = ::dupwin(w);
+    NCursesWindow W(d);
+    W.subwins = subwins;
+    W.sib = sib;
+    W.par = par;
+    W.alloced = alloced;
+    return W;
 }
 
 typedef int (*RIPOFFINIT)(NCursesWindow&);
@@ -273,62 +283,64 @@
 static RIPOFFINIT* prip = R_INIT;
 
 NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
-  : w(0), alloced(0), par(0), subwins(0), sib(0)
+  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
 {
-  initialize();
-  w = win;
-  assert((w->_maxx+1)==ncols);
-  alloced = FALSE;
-  subwins = par = sib = 0;
+    initialize();
+    w = win;
+    assert((w->_maxx +1 ) == ncols);
 }
 
 int _nc_xx_ripoff_init(WINDOW *w, int ncols)
 {
-  int res = ERR;
+    int res = ERR;
 
-  RIPOFFINIT init = *prip++;
-  if (init) {
-    NCursesWindow* W = new NCursesWindow(w,ncols);
-    res = init(*W);
-  }
-  return res;
+    RIPOFFINIT init = *prip++;
+    if (init) {
+	NCursesWindow* W = new NCursesWindow(w,ncols);
+	res = init(*W);
+    }
+    return res;
 }
 
 int NCursesWindow::ripoffline(int ripoff_lines,
 			      int (*init)(NCursesWindow& win))
 {
-  int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
-  if (code==OK && init && ripoff_lines) {
-    R_INIT[r_init_idx++] = init;
-  }
-  return code;
+    int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
+    if (code == OK && init && ripoff_lines) {
+	R_INIT[r_init_idx++] = init;
+    }
+    return code;
 }
 
 bool
 NCursesWindow::isDescendant(NCursesWindow& win)
 {
-  for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
-    if (p==&win)
-      return TRUE;
-    else {
-      if (p->isDescendant(win))
-	return TRUE;
+    bool result = FALSE;
+
+    for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
+	if (p == &win || p->isDescendant(win)) {
+	    result = TRUE;
+	    break;
+	}
     }
-  }
-  return FALSE;
+    return result;
 }
 
 void
 NCursesWindow::kill_subwindows()
 {
-    for (NCursesWindow* p = subwins; p != 0; p = p->sib) {
+    NCursesWindow* p = subwins;
+
+    subwins = 0;
+    while (p != 0) {
+	NCursesWindow* q = p->sib;
 	p->kill_subwindows();
 	if (p->alloced) {
 	    if (p->w != 0)
 		::delwin(p->w);
-	    p->alloced = FALSE;
 	}
-	p->w = 0; // cause a run-time error if anyone attempts to use...
+	delete p;
+	p = q;
     }
 }
 
@@ -337,22 +349,21 @@
 {
     kill_subwindows();
 
-    if (par != 0) {  // Snip us from the parent's list of subwindows.
-	NCursesWindow * win = par->subwins;
-	NCursesWindow * trail = 0;
-	for (;;) {
-	    if (win == 0)
+    if (par != 0) {
+	// Remove this window from the parent's list of subwindows.
+	NCursesWindow * next = par->subwins;
+	NCursesWindow * prev = 0;
+	while (next != 0) {
+	    if (next == this) {
+		if (prev != 0) {
+		    prev->sib = next->sib;
+		} else {
+		    par->subwins = next->sib;
+		}
 		break;
-	    else if (win == this) {
-		if (trail != 0)
-		    trail->sib = win->sib;
-		else
-		    par->subwins = win->sib;
-		break;
-	    } else {
-		trail = win;
-		win = win->sib;
 	    }
+	    prev = next;
+	    next = next->sib;
 	}
     }
 
@@ -360,13 +371,12 @@
 	::delwin(w);
 
     if (alloced) {
-      --count;
-      if (count == 0) {
-	::endwin();
-      }
-      else if (count < 0) { // cannot happen!
-	err_handler("Too many windows destroyed");
-      }
+	--count;
+	if (count == 0) {
+	    ::endwin();
+	} else if (count < 0) { // cannot happen!
+	    err_handler("Too many windows destroyed");
+	}
     }
 }
 
@@ -379,89 +389,82 @@
 NCursesWindow::useColors(void)
 {
     if (colorInitialized == COLORS_NOT_INITIALIZED) {
-      if (b_initialized) {
-	if (::has_colors()) {
-	  ::start_color();
-	  colorInitialized = COLORS_ARE_REALLY_THERE;
+	if (b_initialized) {
+	    if (::has_colors()) {
+		::start_color();
+		colorInitialized = COLORS_ARE_REALLY_THERE;
+	    } else {
+		colorInitialized = COLORS_MONOCHROME;
+	    }
+	} else {
+	    colorInitialized = COLORS_NEED_INITIALIZATION;
 	}
-	else
-	  colorInitialized = COLORS_MONOCHROME;
-      }
-      else
-	colorInitialized = COLORS_NEED_INITIALIZATION;
     }
 }
 
 short
+NCursesWindow::getPair() const
+{
+    return static_cast<short>(PAIR_NUMBER(getattrs(w)));
+}
+
+short
 NCursesWindow::getcolor(int getback) const
 {
     short fore, back;
 
-    if (colorInitialized==COLORS_ARE_REALLY_THERE) {
-      if (::pair_content(static_cast<short>(PAIR_NUMBER(w->_attrs)), &fore, &back))
-	err_handler("Can't get color pair");
-    }
-    else {
-      // Monochrome means white on black
-      back = COLOR_BLACK;
-      fore = COLOR_WHITE;
+    if (HaveColors()) {
+	if (::pair_content(getPair(), &fore, &back) == ERR)
+	    err_handler("Can't get color pair");
+    } else {
+	// Monochrome means white on black
+	back = COLOR_BLACK;
+	fore = COLOR_WHITE;
     }
     return getback ? back : fore;
 }
 
 int NCursesWindow::NumberOfColors()
 {
-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return COLORS;
-  else
-    return 1; // monochrome (actually there are two ;-)
+    return (HaveColors()) ? COLORS : 1;
 }
 
 short
 NCursesWindow::getcolor() const
 {
-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return PAIR_NUMBER(w->_attrs);
-  else
-    return 0; // we only have pair zero
+    return (HaveColors()) ? getPair() : 0;
 }
 
 int
 NCursesWindow::setpalette(short fore, short back, short pair)
 {
-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return ::init_pair(pair, fore, back);
-  else
-    return OK;
+    return (HaveColors()) ? ::init_pair(pair, fore, back) : OK;
 }
 
 int
 NCursesWindow::setpalette(short fore, short back)
 {
-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
-    return setpalette(fore, back, static_cast<short>(PAIR_NUMBER(w->_attrs)));
-  else
-    return OK;
+    return setpalette(fore, back, getPair());
 }
 
 
 int
 NCursesWindow::setcolor(short pair)
 {
-  if (colorInitialized==COLORS_ARE_REALLY_THERE) {
-    if ((pair < 1) || (pair > COLOR_PAIRS))
-      err_handler("Can't set color pair");
-
-    attroff(A_COLOR);
-    attrset(COLOR_PAIR(pair));
-  }
-  return OK;
+    if (HaveColors()) {
+	if ((pair < 1) || (pair > COLOR_PAIRS))
+	    err_handler("Can't set color pair");
+
+	attroff(A_COLOR);
+	attrset(COLOR_PAIR(pair));
+    }
+    return OK;
 }
 
 #if HAVE_HAS_KEY
 bool NCursesWindow::has_mouse() const
 {
-  return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
-	  ? TRUE : FALSE);
+    return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
+	     ? TRUE : FALSE);
 }
 #endif
diff -Naur ncurses-5.6.orig/c++/cursesw.h ncurses-5.6/c++/cursesw.h
--- ncurses-5.6.orig/c++/cursesw.h	2005-07-23 16:51:39.000000000 -0400
+++ ncurses-5.6/c++/cursesw.h	2008-06-18 06:49:46.000000000 -0400
@@ -1,6 +1,7 @@
 // * This makes emacs happy -*-Mode: C++;-*-
+// vile:cppmode
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,17 +31,10 @@
 #ifndef NCURSES_CURSESW_H_incl
 #define NCURSES_CURSESW_H_incl 1
 
-// $Id: cursesw.h,v 1.38 2005/07/23 20:51:39 tom Exp $
-
-#include <stdarg.h>
-#include <stdio.h>
+// $Id: cursesw.h,v 1.48 2008/01/19 21:09:10 tom Exp $
 
 #include <etip.h>
 
-#if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
-#include <strstream.h>
-#endif
-
 extern "C" {
 #  include   <curses.h>
 }
@@ -61,16 +55,17 @@
 #define addch UNDEF(addch)
 #endif
 
-#ifdef echochar
-inline int UNDEF(echochar)(chtype ch)  { return echochar(ch); }
-#undef echochar
-#define echochar UNDEF(echochar)
+#ifdef addchstr
+inline int UNDEF(addchstr)(chtype *at) { return addchstr(at); }
+#undef addchstr
+#define addchstr UNDEF(addchstr)
 #endif
 
-#ifdef insdelln
-inline int UNDEF(insdelln)(int n)  { return insdelln(n); }
-#undef insdelln
-#define insdelln UNDEF(insdelln)
+#ifdef addnstr
+inline int UNDEF(addnstr)(const char *str, int n)
+{ return addnstr(str, n); }
+#undef addnstr
+#define addnstr UNDEF(addnstr)
 #endif
 
 #ifdef addstr
@@ -79,28 +74,34 @@
 #define addstr UNDEF(addstr)
 #endif
 
-#ifdef attron
-inline int UNDEF(attron)(chtype at) { return attron(at); }
-#undef attron
-#define attron UNDEF(attron)
-#endif
-
 #ifdef attroff
 inline int UNDEF(attroff)(chtype at) { return attroff(at); }
 #undef attroff
 #define attroff UNDEF(attroff)
 #endif
 
+#ifdef attron
+inline int UNDEF(attron)(chtype at) { return attron(at); }
+#undef attron
+#define attron UNDEF(attron)
+#endif
+
 #ifdef attrset
 inline chtype UNDEF(attrset)(chtype at) { return attrset(at); }
 #undef attrset
 #define attrset UNDEF(attrset)
 #endif
 
-#ifdef color_set
-inline chtype UNDEF(color_set)(short p, void* opts) { return color_set(p, opts); }
-#undef color_set
-#define color_set UNDEF(color_set)
+#ifdef bkgd
+inline int UNDEF(bkgd)(chtype ch) { return bkgd(ch); }
+#undef bkgd
+#define bkgd UNDEF(bkgd)
+#endif
+
+#ifdef bkgdset
+inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
+#undef bkgdset
+#define bkgdset UNDEF(bkgdset)
 #endif
 
 #ifdef border
@@ -116,18 +117,11 @@
 #define box UNDEF(box)
 #endif
 
-#ifdef mvwhline
-inline int UNDEF(mvwhline)(WINDOW *win, int y, int x, chtype c, int n) {
-  return mvwhline(win, y, x, c, n); }
-#undef mvwhline
-#define mvwhline UNDEF(mvwhline)
-#endif
-
-#ifdef mvwvline
-inline int UNDEF(mvwvline)(WINDOW *win, int y, int x, chtype c, int n) {
-  return mvwvline(win, y, x, c, n); }
-#undef mvwvline
-#define mvwvline UNDEF(mvwvline)
+#ifdef chgat
+inline int UNDEF(chgat)(int n, attr_t attr, short color, const void *opts) {
+  return chgat(n, attr, color, opts); }
+#undef chgat
+#define chgat UNDEF(chgat)
 #endif
 
 #ifdef clear
@@ -156,6 +150,18 @@
 #define clrtoeol UNDEF(clrtoeol)
 #endif
 
+#ifdef color_set
+inline chtype UNDEF(color_set)(short p, void* opts) { return color_set(p, opts); }
+#undef color_set
+#define color_set UNDEF(color_set)
+#endif
+
+#ifdef crmode
+inline int UNDEF(crmode)(void) { return crmode(); }
+#undef crmode
+#define crmode UNDEF(crmode)
+#endif
+
 #ifdef delch
 inline int UNDEF(delch)()  { return delch(); }
 #undef delch
@@ -168,12 +174,24 @@
 #define deleteln UNDEF(deleteln)
 #endif
 
+#ifdef echochar
+inline int UNDEF(echochar)(chtype ch)  { return echochar(ch); }
+#undef echochar
+#define echochar UNDEF(echochar)
+#endif
+
 #ifdef erase
 inline int UNDEF(erase)()  { return erase(); }
 #undef erase
 #define erase UNDEF(erase)
 #endif
 
+#ifdef fixterm
+inline int UNDEF(fixterm)(void) { return fixterm(); }
+#undef fixterm
+#define fixterm UNDEF(fixterm)
+#endif
+
 #ifdef flushok
 inline int UNDEF(flushok)(WINDOW* _win, bool _bf)  {
   return flushok(_win, _bf); }
@@ -183,91 +201,34 @@
 #define _no_flushok
 #endif
 
-#ifdef getch
-inline int UNDEF(getch)()  { return getch(); }
-#undef getch
-#define getch UNDEF(getch)
-#endif
-
-#ifdef getstr
-inline int UNDEF(getstr)(char *_str)  { return getstr(_str); }
-#undef getstr
-#define getstr UNDEF(getstr)
-#endif
-
-#ifdef instr
-inline int UNDEF(instr)(char *_str)  { return instr(_str); }
-#undef instr
-#define instr UNDEF(instr)
-#endif
-
-#ifdef innstr
-inline int UNDEF(innstr)(char *_str, int n)  { return innstr(_str, n); }
-#undef innstr
-#define innstr UNDEF(innstr)
-#endif
-
-#ifdef mvwinnstr
-inline int UNDEF(mvwinnstr)(WINDOW *win, int y, int x, char *_str, int n) {
-  return mvwinnstr(win, y, x, _str, n); }
-#undef mvwinnstr
-#define mvwinnstr UNDEF(mvwinnstr)
-#endif
-
-#ifdef mvinnstr
-inline int UNDEF(mvinnstr)(int y, int x, char *_str, int n) {
-  return mvinnstr(y, x, _str, n); }
-#undef mvinnstr
-#define mvinnstr UNDEF(mvinnstr)
-#endif
-
-#ifdef winsstr
-inline int UNDEF(winsstr)(WINDOW *w, const char *_str)  {
-  return winsstr(w, _str); }
-#undef winsstr
-#define winsstr UNDEF(winsstr)
-#endif
-
-#ifdef mvwinsstr
-inline int UNDEF(mvwinsstr)(WINDOW *w, int y, int x,  const char *_str)  {
-  return mvwinsstr(w, y, x, _str); }
-#undef mvwinsstr
-#define mvwinsstr UNDEF(mvwinsstr)
-#endif
-
-#ifdef insstr
-inline int UNDEF(insstr)(const char *_str)  {
-  return insstr(_str); }
-#undef insstr
-#define insstr UNDEF(insstr)
+#ifdef getattrs
+inline int UNDEF(getattrs)(WINDOW *win) { return getattrs(win); }
+#undef getattrs
+#define getattrs UNDEF(getattrs)
 #endif
 
-#ifdef mvinsstr
-inline int UNDEF(mvinsstr)(int y, int x, const char *_str)  {
-  return mvinsstr(y, x, _str); }
-#undef mvinsstr
-#define mvinsstr UNDEF(mvinsstr)
+#ifdef getbegyx
+inline void UNDEF(getbegyx)(WINDOW* win, int& y, int& x) { getbegyx(win, y, x); }
+#undef getbegyx
+#define getbegyx UNDEF(getbegyx)
 #endif
 
-#ifdef insnstr
-inline int UNDEF(insnstr)(const char *_str, int n)  {
-  return insnstr(_str, n); }
-#undef insnstr
-#define insnstr UNDEF(insnstr)
+#ifdef getbkgd
+inline chtype UNDEF(getbkgd)(const WINDOW *win) { return getbkgd(win); }
+#undef getbkgd
+#define getbkgd UNDEF(getbkgd)
 #endif
 
-#ifdef mvwinsnstr
-inline int UNDEF(mvwinsnstr)(WINDOW *w, int y, int x, const char *_str, int n) {
-  return mvwinsnstr(w, y, x, _str, n); }
-#undef mvwinsnstr
-#define mvwinsnstr UNDEF(mvwinsnstr)
+#ifdef getch
+inline int UNDEF(getch)()  { return getch(); }
+#undef getch
+#define getch UNDEF(getch)
 #endif
 
-#ifdef mvinsnstr
-inline int UNDEF(mvinsnstr)(int y, int x, const char *_str, int n) {
-  return mvinsnstr(y, x, _str, n); }
-#undef mvinsnstr
-#define mvinsnstr UNDEF(mvinsnstr)
+#ifdef getmaxyx
+inline void UNDEF(getmaxyx)(WINDOW* win, int& y, int& x) { getmaxyx(win, y, x); }
+#undef getmaxyx
+#define getmaxyx UNDEF(getmaxyx)
 #endif
 
 #ifdef getnstr
@@ -276,6 +237,18 @@
 #define getnstr UNDEF(getnstr)
 #endif
 
+#ifdef getparyx
+inline void UNDEF(getparyx)(WINDOW* win, int& y, int& x) { getparyx(win, y, x); }
+#undef getparyx
+#define getparyx UNDEF(getparyx)
+#endif
+
+#ifdef getstr
+inline int UNDEF(getstr)(char *_str)  { return getstr(_str); }
+#undef getstr
+#define getstr UNDEF(getstr)
+#endif
+
 #ifdef getyx
 inline void UNDEF(getyx)(const WINDOW* win, int& y, int& x) {
   getyx(win, y, x); }
@@ -283,18 +256,6 @@
 #define getyx UNDEF(getyx)
 #endif
 
-#ifdef getbegyx
-inline void UNDEF(getbegyx)(WINDOW* win, int& y, int& x) { getbegyx(win, y, x); }
-#undef getbegyx
-#define getbegyx UNDEF(getbegyx)
-#endif
-
-#ifdef getmaxyx
-inline void UNDEF(getmaxyx)(WINDOW* win, int& y, int& x) { getmaxyx(win, y, x); }
-#undef getmaxyx
-#define getmaxyx UNDEF(getmaxyx)
-#endif
-
 #ifdef hline
 inline int UNDEF(hline)(chtype ch, int n) { return hline(ch, n); }
 #undef hline
@@ -307,18 +268,62 @@
 #define inch UNDEF(inch)
 #endif
 
+#ifdef inchstr
+inline int UNDEF(inchstr)(chtype *str)  { return inchstr(str); }
+#undef inchstr
+#define inchstr UNDEF(inchstr)
+#endif
+
+#ifdef innstr
+inline int UNDEF(innstr)(char *_str, int n)  { return innstr(_str, n); }
+#undef innstr
+#define innstr UNDEF(innstr)
+#endif
+
 #ifdef insch
 inline int UNDEF(insch)(chtype c)  { return insch(c); }
 #undef insch
 #define insch UNDEF(insch)
 #endif
 
+#ifdef insdelln
+inline int UNDEF(insdelln)(int n)  { return insdelln(n); }
+#undef insdelln
+#define insdelln UNDEF(insdelln)
+#endif
+
 #ifdef insertln
 inline int UNDEF(insertln)()  { return insertln(); }
 #undef insertln
 #define insertln UNDEF(insertln)
 #endif
 
+#ifdef insnstr
+inline int UNDEF(insnstr)(const char *_str, int n)  {
+  return insnstr(_str, n); }
+#undef insnstr
+#define insnstr UNDEF(insnstr)
+#endif
+
+#ifdef insstr
+inline int UNDEF(insstr)(const char *_str)  {
+  return insstr(_str); }
+#undef insstr
+#define insstr UNDEF(insstr)
+#endif
+
+#ifdef instr
+inline int UNDEF(instr)(char *_str)  { return instr(_str); }
+#undef instr
+#define instr UNDEF(instr)
+#endif
+
+#ifdef intrflush
+inline void UNDEF(intrflush)(WINDOW *win, bool bf) { intrflush(); }
+#undef intrflush
+#define intrflush UNDEF(intrflush)
+#endif
+
 #ifdef leaveok
 inline int UNDEF(leaveok)(WINDOW* win, bool bf)  { return leaveok(win, bf); }
 #undef leaveok
@@ -333,142 +338,127 @@
 #define move UNDEF(move)
 #endif
 
-#ifdef refresh
-inline int UNDEF(refresh)()  { return refresh(); }
-#undef refresh
-#define refresh UNDEF(refresh)
-#endif
-
-#ifdef redrawwin
-inline int UNDEF(redrawwin)(WINDOW *win)  { return redrawwin(win); }
-#undef redrawwin
-#define redrawwin UNDEF(redrawwin)
+#ifdef mvaddch
+inline int UNDEF(mvaddch)(int y, int x, chtype ch)
+{ return mvaddch(y, x, ch); }
+#undef mvaddch
+#define mvaddch UNDEF(mvaddch)
 #endif
 
-#ifdef scrl
-inline int UNDEF(scrl)(int l) { return scrl(l); }
-#undef scrl
-#define scrl UNDEF(scrl)
+#ifdef mvaddnstr
+inline int UNDEF(mvaddnstr)(int y, int x, const char *str, int n)
+{ return mvaddnstr(y, x, str, n); }
+#undef mvaddnstr
+#define mvaddnstr UNDEF(mvaddnstr)
 #endif
 
-#ifdef scroll
-inline int UNDEF(scroll)(WINDOW *win) { return scroll(win); }
-#undef scroll
-#define scroll UNDEF(scroll)
-#endif
-
-#ifdef scrollok
-inline int UNDEF(scrollok)(WINDOW* win, bool bf)  { return scrollok(win, bf); }
-#undef scrollok
-#define scrollok UNDEF(scrollok)
-#else
-#if	defined(__NCURSES_H)
-extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, bool);
-#else
-extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, char);
-#endif
-#endif
-
-#ifdef setscrreg
-inline int UNDEF(setscrreg)(int t, int b) { return setscrreg(t, b); }
-#undef setscrreg
-#define setscrreg UNDEF(setscrreg)
+#ifdef mvaddstr
+inline int UNDEF(mvaddstr)(int y, int x, const char * str)
+{ return mvaddstr(y, x, str); }
+#undef mvaddstr
+#define mvaddstr UNDEF(mvaddstr)
 #endif
 
-#ifdef standend
-inline int UNDEF(standend)()  { return standend(); }
-#undef standend
-#define standend UNDEF(standend)
+#ifdef mvchgat
+inline int UNDEF(mvchgat)(int y, int x, int n,
+			  attr_t attr, short color, const void *opts) {
+  return mvchgat(y, x, n, attr, color, opts); }
+#undef mvchgat
+#define mvchgat UNDEF(mvchgat)
 #endif
 
-#ifdef standout
-inline int UNDEF(standout)()  { return standout(); }
-#undef standout
-#define standout UNDEF(standout)
+#ifdef mvdelch
+inline int UNDEF(mvdelch)(int y, int x) { return mvdelch(y, x);}
+#undef mvdelch
+#define mvdelch UNDEF(mvdelch)
 #endif
 
-#ifdef subpad
-inline WINDOW *UNDEF(subpad)(WINDOW *p, int l, int c, int y, int x)
-{ return derwin(p, l, c, y, x); }
-#undef subpad
-#define subpad UNDEF(subpad)
+#ifdef mvgetch
+inline int UNDEF(mvgetch)(int y, int x) { return mvgetch(y, x);}
+#undef mvgetch
+#define mvgetch UNDEF(mvgetch)
 #endif
 
-#ifdef timeout
-inline void UNDEF(timeout)(int delay) { timeout(delay); }
-#undef timeout
-#define timeout UNDEF(timeout)
+#ifdef mvgetnstr
+inline int UNDEF(mvgetnstr)(int y, int x, char *str, int n) {
+  return mvgetnstr(y, x, str, n);}
+#undef mvgetnstr
+#define mvgetnstr UNDEF(mvgetnstr)
 #endif
 
-#ifdef touchline
-inline int UNDEF(touchline)(WINDOW *win, int s, int c)
-{ return touchline(win, s, c); }
-#undef touchline
-#define touchline UNDEF(touchline)
+#ifdef mvgetstr
+inline int UNDEF(mvgetstr)(int y, int x, char *str) {return mvgetstr(y, x, str);}
+#undef mvgetstr
+#define mvgetstr UNDEF(mvgetstr)
 #endif
 
-#ifdef touchwin
-inline int UNDEF(touchwin)(WINDOW *win) { return touchwin(win); }
-#undef touchwin
-#define touchwin UNDEF(touchwin)
+#ifdef mvinch
+inline chtype UNDEF(mvinch)(int y, int x) { return mvinch(y, x);}
+#undef mvinch
+#define mvinch UNDEF(mvinch)
 #endif
 
-#ifdef untouchwin
-inline int UNDEF(untouchwin)(WINDOW *win) { return untouchwin(win); }
-#undef untouchwin
-#define untouchwin UNDEF(untouchwin)
+#ifdef mvinnstr
+inline int UNDEF(mvinnstr)(int y, int x, char *_str, int n) {
+  return mvinnstr(y, x, _str, n); }
+#undef mvinnstr
+#define mvinnstr UNDEF(mvinnstr)
 #endif
 
-#ifdef vline
-inline int UNDEF(vline)(chtype ch, int n) { return vline(ch, n); }
-#undef vline
-#define vline UNDEF(vline)
+#ifdef mvinsch
+inline int UNDEF(mvinsch)(int y, int x, chtype c)
+{ return mvinsch(y, x, c); }
+#undef mvinsch
+#define mvinsch UNDEF(mvinsch)
 #endif
 
-#ifdef waddstr
-inline int UNDEF(waddstr)(WINDOW *win, char *str) { return waddstr(win, str); }
-#undef waddstr
-#define waddstr UNDEF(waddstr)
+#ifdef mvinsnstr
+inline int UNDEF(mvinsnstr)(int y, int x, const char *_str, int n) {
+  return mvinsnstr(y, x, _str, n); }
+#undef mvinsnstr
+#define mvinsnstr UNDEF(mvinsnstr)
 #endif
 
-#ifdef waddchstr
-inline int UNDEF(waddchstr)(WINDOW *win, chtype *at) { return waddchstr(win, at); }
-#undef waddchstr
-#define waddchstr UNDEF(waddchstr)
+#ifdef mvinsstr
+inline int UNDEF(mvinsstr)(int y, int x, const char *_str)  {
+  return mvinsstr(y, x, _str); }
+#undef mvinsstr
+#define mvinsstr UNDEF(mvinsstr)
 #endif
 
-#ifdef wstandend
-inline int UNDEF(wstandend)(WINDOW *win)  { return wstandend(win); }
-#undef wstandend
-#define wstandend UNDEF(wstandend)
+#ifdef mvwaddch
+inline int UNDEF(mvwaddch)(WINDOW *win, int y, int x, const chtype ch)
+{ return mvwaddch(win, y, x, ch); }
+#undef mvwaddch
+#define mvwaddch UNDEF(mvwaddch)
 #endif
 
-#ifdef wstandout
-inline int UNDEF(wstandout)(WINDOW *win)  { return wstandout(win); }
-#undef wstandout
-#define wstandout UNDEF(wstandout)
+#ifdef mvwaddchnstr
+inline int UNDEF(mvwaddchnstr)(WINDOW *win, int y, int x, const chtype *str, int n)
+{ return mvwaddchnstr(win, y, x, str, n); }
+#undef mvwaddchnstr
+#define mvwaddchnstr UNDEF(mvwaddchnstr)
 #endif
 
-
-#ifdef wattroff
-inline int UNDEF(wattroff)(WINDOW *win, int att) { return wattroff(win, att); }
-#undef wattroff
-#define wattroff UNDEF(wattroff)
+#ifdef mvwaddchstr
+inline int UNDEF(mvwaddchstr)(WINDOW *win, int y, int x, const chtype *str)
+{ return mvwaddchstr(win, y, x, str); }
+#undef mvwaddchstr
+#define mvwaddchstr UNDEF(mvwaddchstr)
 #endif
 
-#ifdef chgat
-inline int UNDEF(chgat)(int n, attr_t attr, short color, const void *opts) {
-  return chgat(n, attr, color, opts); }
-#undef chgat
-#define chgat UNDEF(chgat)
+#ifdef mvwaddnstr
+inline int UNDEF(mvwaddnstr)(WINDOW *win, int y, int x, const char *str, int n)
+{ return mvwaddnstr(win, y, x, str, n); }
+#undef mvwaddnstr
+#define mvwaddnstr UNDEF(mvwaddnstr)
 #endif
 
-#ifdef mvchgat
-inline int UNDEF(mvchgat)(int y, int x, int n,
-			  attr_t attr, short color, const void *opts) {
-  return mvchgat(y, x, n, attr, color, opts); }
-#undef mvchgat
-#define mvchgat UNDEF(mvchgat)
+#ifdef mvwaddstr
+inline int UNDEF(mvwaddstr)(WINDOW *win, int y, int x, const char * str)
+{ return mvwaddstr(win, y, x, str); }
+#undef mvwaddstr
+#define mvwaddstr UNDEF(mvwaddstr)
 #endif
 
 #ifdef mvwchgat
@@ -479,212 +469,275 @@
 #define mvwchgat UNDEF(mvwchgat)
 #endif
 
-#ifdef wattrset
-inline int UNDEF(wattrset)(WINDOW *win, int att) { return wattrset(win, att); }
-#undef wattrset
-#define wattrset UNDEF(wattrset)
+#ifdef mvwdelch
+inline int UNDEF(mvwdelch)(WINDOW *win, int y, int x)
+{ return mvwdelch(win, y, x); }
+#undef mvwdelch
+#define mvwdelch UNDEF(mvwdelch)
 #endif
 
-#ifdef winch
-inline chtype UNDEF(winch)(const WINDOW* win) { return winch(win); }
-#undef winch
-#define winch UNDEF(winch)
+#ifdef mvwgetch
+inline int UNDEF(mvwgetch)(WINDOW *win, int y, int x) { return mvwgetch(win, y, x);}
+#undef mvwgetch
+#define mvwgetch UNDEF(mvwgetch)
 #endif
 
-#ifdef mvwaddch
-inline int UNDEF(mvwaddch)(WINDOW *win, int y, int x, const chtype ch)
-{ return mvwaddch(win, y, x, ch); }
-#undef mvwaddch
-#define mvwaddch UNDEF(mvwaddch)
+#ifdef mvwgetnstr
+inline int UNDEF(mvwgetnstr)(WINDOW *win, int y, int x, char *str, int n)
+{return mvwgetnstr(win, y, x, str, n);}
+#undef mvwgetnstr
+#define mvwgetnstr UNDEF(mvwgetnstr)
 #endif
 
-#ifdef mvwaddchnstr
-inline int UNDEF(mvwaddchnstr)(WINDOW *win, int y, int x, chtype *str, int n)
-{ return mvwaddchnstr(win, y, x, str, n); }
-#undef mvwaddchnstr
-#define mvwaddchnstr UNDEF(mvwaddchnstr)
+#ifdef mvwgetstr
+inline int UNDEF(mvwgetstr)(WINDOW *win, int y, int x, char *str)
+{return mvwgetstr(win, y, x, str);}
+#undef mvwgetstr
+#define mvwgetstr UNDEF(mvwgetstr)
 #endif
 
-#ifdef mvwaddchstr
-inline int UNDEF(mvwaddchstr)(WINDOW *win, int y, int x, chtype *str)
-{ return mvwaddchstr(win, y, x, str); }
-#undef mvwaddchstr
-#define mvwaddchstr UNDEF(mvwaddchstr)
+#ifdef mvwhline
+inline int UNDEF(mvwhline)(WINDOW *win, int y, int x, chtype c, int n) {
+  return mvwhline(win, y, x, c, n); }
+#undef mvwhline
+#define mvwhline UNDEF(mvwhline)
 #endif
 
-#ifdef addnstr
-inline int UNDEF(addnstr)(const char *str, int n)
-{ return addnstr(str, n); }
-#undef addnstr
-#define addnstr UNDEF(addnstr)
+#ifdef mvwinch
+inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
+  return mvwinch(win, y, x);}
+#undef mvwinch
+#define mvwinch UNDEF(mvwinch)
+#endif
+
+#ifdef mvwinchnstr
+inline int UNDEF(mvwinchnstr)(WINDOW *win, int y, int x, chtype *str, int n)  { return mvwinchnstr(win, y, x, str, n); }
+#undef mvwinchnstr
+#define mvwinchnstr UNDEF(mvwinchnstr)
+#endif
+
+#ifdef mvwinchstr
+inline int UNDEF(mvwinchstr)(WINDOW *win, int y, int x, chtype *str)  { return mvwinchstr(win, y, x, str); }
+#undef mvwinchstr
+#define mvwinchstr UNDEF(mvwinchstr)
+#endif
+
+#ifdef mvwinnstr
+inline int UNDEF(mvwinnstr)(WINDOW *win, int y, int x, char *_str, int n) {
+  return mvwinnstr(win, y, x, _str, n); }
+#undef mvwinnstr
+#define mvwinnstr UNDEF(mvwinnstr)
+#endif
+
+#ifdef mvwinsch
+inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, chtype c)
+{ return mvwinsch(win, y, x, c); }
+#undef mvwinsch
+#define mvwinsch UNDEF(mvwinsch)
+#endif
+
+#ifdef mvwinsnstr
+inline int UNDEF(mvwinsnstr)(WINDOW *w, int y, int x, const char *_str, int n) {
+  return mvwinsnstr(w, y, x, _str, n); }
+#undef mvwinsnstr
+#define mvwinsnstr UNDEF(mvwinsnstr)
+#endif
+
+#ifdef mvwinsstr
+inline int UNDEF(mvwinsstr)(WINDOW *w, int y, int x,  const char *_str)  {
+  return mvwinsstr(w, y, x, _str); }
+#undef mvwinsstr
+#define mvwinsstr UNDEF(mvwinsstr)
+#endif
+
+#ifdef mvwvline
+inline int UNDEF(mvwvline)(WINDOW *win, int y, int x, chtype c, int n) {
+  return mvwvline(win, y, x, c, n); }
+#undef mvwvline
+#define mvwvline UNDEF(mvwvline)
+#endif
+
+#ifdef napms
+inline void UNDEF(napms)(unsigned long x) { napms(x); }
+#undef napms
+#define napms UNDEF(napms)
+#endif
+
+#ifdef nocrmode
+inline int UNDEF(nocrmode)(void) { return nocrmode(); }
+#undef nocrmode
+#define nocrmode UNDEF(nocrmode)
+#endif
+
+#ifdef nodelay
+inline void UNDEF(nodelay)() { nodelay(); }
+#undef nodelay
+#define nodelay UNDEF(nodelay)
 #endif
 
-#ifdef mvwaddnstr
-inline int UNDEF(mvwaddnstr)(WINDOW *win, int y, int x, const char *str, int n)
-{ return mvwaddnstr(win, y, x, str, n); }
-#undef mvwaddnstr
-#define mvwaddnstr UNDEF(mvwaddnstr)
+#ifdef redrawwin
+inline int UNDEF(redrawwin)(WINDOW *win)  { return redrawwin(win); }
+#undef redrawwin
+#define redrawwin UNDEF(redrawwin)
 #endif
 
-#ifdef mvwaddstr
-inline int UNDEF(mvwaddstr)(WINDOW *win, int y, int x, const char * str)
-{ return mvwaddstr(win, y, x, str); }
-#undef mvwaddstr
-#define mvwaddstr UNDEF(mvwaddstr)
+#ifdef refresh
+inline int UNDEF(refresh)()  { return refresh(); }
+#undef refresh
+#define refresh UNDEF(refresh)
 #endif
 
-#ifdef mvwdelch
-inline int UNDEF(mvwdelch)(WINDOW *win, int y, int x)
-{ return mvwdelch(win, y, x); }
-#undef mvwdelch
-#define mvwdelch UNDEF(mvwdelch)
+#ifdef resetterm
+inline int UNDEF(resetterm)(void) { return resetterm(); }
+#undef resetterm
+#define resetterm UNDEF(resetterm)
 #endif
 
-#ifdef mvwgetch
-inline int UNDEF(mvwgetch)(WINDOW *win, int y, int x) { return mvwgetch(win, y, x);}
-#undef mvwgetch
-#define mvwgetch UNDEF(mvwgetch)
+#ifdef saveterm
+inline int UNDEF(saveterm)(void) { return saveterm(); }
+#undef saveterm
+#define saveterm UNDEF(saveterm)
 #endif
 
-#ifdef mvwgetstr
-inline int UNDEF(mvwgetstr)(WINDOW *win, int y, int x, char *str)
-{return mvwgetstr(win, y, x, str);}
-#undef mvwgetstr
-#define mvwgetstr UNDEF(mvwgetstr)
+#ifdef scrl
+inline int UNDEF(scrl)(int l) { return scrl(l); }
+#undef scrl
+#define scrl UNDEF(scrl)
 #endif
 
-#ifdef mvwgetnstr
-inline int UNDEF(mvwgetnstr)(WINDOW *win, int y, int x, char *str, int n)
-{return mvwgetnstr(win, y, x, str, n);}
-#undef mvwgetnstr
-#define mvwgetnstr UNDEF(mvwgetnstr)
+#ifdef scroll
+inline int UNDEF(scroll)(WINDOW *win) { return scroll(win); }
+#undef scroll
+#define scroll UNDEF(scroll)
 #endif
 
-#ifdef mvwinch
-inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
-  return mvwinch(win, y, x);}
-#undef mvwinch
-#define mvwinch UNDEF(mvwinch)
+#ifdef scrollok
+inline int UNDEF(scrollok)(WINDOW* win, bool bf)  { return scrollok(win, bf); }
+#undef scrollok
+#define scrollok UNDEF(scrollok)
+#else
+#if	defined(__NCURSES_H)
+extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, bool);
+#else
+extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, char);
+#endif
 #endif
 
-#ifdef mvwinsch
-inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, chtype c)
-{ return mvwinsch(win, y, x, c); }
-#undef mvwinsch
-#define mvwinsch UNDEF(mvwinsch)
+#ifdef setscrreg
+inline int UNDEF(setscrreg)(int t, int b) { return setscrreg(t, b); }
+#undef setscrreg
+#define setscrreg UNDEF(setscrreg)
 #endif
 
-#ifdef mvaddch
-inline int UNDEF(mvaddch)(int y, int x, chtype ch)
-{ return mvaddch(y, x, ch); }
-#undef mvaddch
-#define mvaddch UNDEF(mvaddch)
+#ifdef standend
+inline int UNDEF(standend)()  { return standend(); }
+#undef standend
+#define standend UNDEF(standend)
 #endif
 
-#ifdef mvaddnstr
-inline int UNDEF(mvaddnstr)(int y, int x, const char *str, int n)
-{ return mvaddnstr(y, x, str, n); }
-#undef mvaddnstr
-#define mvaddnstr UNDEF(mvaddnstr)
+#ifdef standout
+inline int UNDEF(standout)()  { return standout(); }
+#undef standout
+#define standout UNDEF(standout)
 #endif
 
-#ifdef mvaddstr
-inline int UNDEF(mvaddstr)(int y, int x, const char * str)
-{ return mvaddstr(y, x, str); }
-#undef mvaddstr
-#define mvaddstr UNDEF(mvaddstr)
+#ifdef subpad
+inline WINDOW *UNDEF(subpad)(WINDOW *p, int l, int c, int y, int x)
+{ return derwin(p, l, c, y, x); }
+#undef subpad
+#define subpad UNDEF(subpad)
 #endif
 
-#ifdef mvdelch
-inline int UNDEF(mvdelch)(int y, int x) { return mvdelch(y, x);}
-#undef mvdelch
-#define mvdelch UNDEF(mvdelch)
+#ifdef timeout
+inline void UNDEF(timeout)(int delay) { timeout(delay); }
+#undef timeout
+#define timeout UNDEF(timeout)
 #endif
 
-#ifdef mvgetch
-inline int UNDEF(mvgetch)(int y, int x) { return mvgetch(y, x);}
-#undef mvgetch
-#define mvgetch UNDEF(mvgetch)
+#ifdef touchline
+inline int UNDEF(touchline)(WINDOW *win, int s, int c)
+{ return touchline(win, s, c); }
+#undef touchline
+#define touchline UNDEF(touchline)
 #endif
 
-#ifdef mvgetstr
-inline int UNDEF(mvgetstr)(int y, int x, char *str) {return mvgetstr(y, x, str);}
-#undef mvgetstr
-#define mvgetstr UNDEF(mvgetstr)
+#ifdef touchwin
+inline int UNDEF(touchwin)(WINDOW *win) { return touchwin(win); }
+#undef touchwin
+#define touchwin UNDEF(touchwin)
 #endif
 
-#ifdef mvgetnstr
-inline int UNDEF(mvgetnstr)(int y, int x, char *str, int n) {
-  return mvgetnstr(y, x, str, n);}
-#undef mvgetnstr
-#define mvgetnstr UNDEF(mvgetnstr)
+#ifdef untouchwin
+inline int UNDEF(untouchwin)(WINDOW *win) { return untouchwin(win); }
+#undef untouchwin
+#define untouchwin UNDEF(untouchwin)
 #endif
 
-#ifdef mvinch
-inline chtype UNDEF(mvinch)(int y, int x) { return mvinch(y, x);}
-#undef mvinch
-#define mvinch UNDEF(mvinch)
+#ifdef vline
+inline int UNDEF(vline)(chtype ch, int n) { return vline(ch, n); }
+#undef vline
+#define vline UNDEF(vline)
 #endif
 
-#ifdef mvinsch
-inline int UNDEF(mvinsch)(int y, int x, chtype c)
-{ return mvinsch(y, x, c); }
-#undef mvinsch
-#define mvinsch UNDEF(mvinsch)
+#ifdef waddchstr
+inline int UNDEF(waddchstr)(WINDOW *win, chtype *at) { return waddchstr(win, at); }
+#undef waddchstr
+#define waddchstr UNDEF(waddchstr)
 #endif
 
-#ifdef napms
-inline void UNDEF(napms)(unsigned long x) { napms(x); }
-#undef napms
-#define napms UNDEF(napms)
+#ifdef waddstr
+inline int UNDEF(waddstr)(WINDOW *win, char *str) { return waddstr(win, str); }
+#undef waddstr
+#define waddstr UNDEF(waddstr)
 #endif
 
-#ifdef fixterm
-inline int UNDEF(fixterm)(void) { return fixterm(); }
-#undef fixterm
-#define fixterm UNDEF(fixterm)
+#ifdef wattroff
+inline int UNDEF(wattroff)(WINDOW *win, int att) { return wattroff(win, att); }
+#undef wattroff
+#define wattroff UNDEF(wattroff)
 #endif
 
-#ifdef resetterm
-inline int UNDEF(resetterm)(void) { return resetterm(); }
-#undef resetterm
-#define resetterm UNDEF(resetterm)
+#ifdef wattrset
+inline int UNDEF(wattrset)(WINDOW *win, int att) { return wattrset(win, att); }
+#undef wattrset
+#define wattrset UNDEF(wattrset)
 #endif
 
-#ifdef saveterm
-inline int UNDEF(saveterm)(void) { return saveterm(); }
-#undef saveterm
-#define saveterm UNDEF(saveterm)
+#ifdef winch
+inline chtype UNDEF(winch)(const WINDOW* win) { return winch(win); }
+#undef winch
+#define winch UNDEF(winch)
 #endif
 
-#ifdef crmode
-inline int UNDEF(crmode)(void) { return crmode(); }
-#undef crmode
-#define crmode UNDEF(crmode)
+#ifdef winchnstr
+inline int UNDEF(winchnstr)(WINDOW *win, chtype *str, int n)  { return winchnstr(win, str, n); }
+#undef winchnstr
+#define winchnstr UNDEF(winchnstr)
 #endif
 
-#ifdef nocrmode
-inline int UNDEF(nocrmode)(void) { return nocrmode(); }
-#undef nocrmode
-#define nocrmode UNDEF(nocrmode)
+#ifdef winchstr
+inline int UNDEF(winchstr)(WINDOW *win, chtype *str)  { return winchstr(win, str); }
+#undef winchstr
+#define winchstr UNDEF(winchstr)
 #endif
 
-#ifdef getbkgd
-inline chtype UNDEF(getbkgd)(const WINDOW *win) { return getbkgd(win); }
-#undef getbkgd
-#define getbkgd UNDEF(getbkgd)
+#ifdef winsstr
+inline int UNDEF(winsstr)(WINDOW *w, const char *_str)  {
+  return winsstr(w, _str); }
+#undef winsstr
+#define winsstr UNDEF(winsstr)
 #endif
 
-#ifdef bkgd
-inline int UNDEF(bkgd)(chtype ch) { return bkgd(ch); }
-#undef bkgd
-#define bkgd UNDEF(bkgd)
+#ifdef wstandend
+inline int UNDEF(wstandend)(WINDOW *win)  { return wstandend(win); }
+#undef wstandend
+#define wstandend UNDEF(wstandend)
 #endif
 
-#ifdef bkgdset
-inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
-#undef bkgdset
-#define bkgdset UNDEF(bkgdset)
+#ifdef wstandout
+inline int UNDEF(wstandout)(WINDOW *win)  { return wstandout(win); }
+#undef wstandout
+#define wstandout UNDEF(wstandout)
 #endif
 
 /*
@@ -705,11 +758,13 @@
 private:
   static bool    b_initialized;
   static void    initialize();
+  void           constructing();
   friend int     _nc_xx_ripoff_init(WINDOW *, int);
 
-  void           init();
+  void           set_keyboard();
 
   short          getcolor(int getback) const;
+  short          getPair() const;
 
   static int     setpalette(short fore, short back, short pair);
   static int     colorInitialized;
@@ -743,7 +798,7 @@
   NCursesWindow();
 
 public:
-  NCursesWindow(WINDOW* &window);  // useful only for stdscr
+  NCursesWindow(WINDOW* window);   // useful only for stdscr
 
   NCursesWindow(int nlines,        // number of lines
 		int ncols,         // number of columns
@@ -823,16 +878,22 @@
   int            width() const { return maxx() + 1; }
   // Number of columns in this window
 
-  int            begx() const { return w->_begx; }
+  int            begx() const { return getbegx(w); }
+  // Column of top left corner relative to stdscr
+
+  int            begy() const { return getbegy(w); }
+  // Line of top left corner relative to stdscr
+
+  int            curx() const { return getcurx(w); }
   // Column of top left corner relative to stdscr
 
-  int            begy() const { return w->_begy; }
+  int            cury() const { return getcury(w); }
   // Line of top left corner relative to stdscr
 
-  int            maxx() const { return w->_maxx; }
+  int            maxx() const { return getmaxx(w) == ERR ? ERR : getmaxx(w)-1; }
   // Largest x coord in window
 
-  int            maxy() const { return w->_maxy; }
+  int            maxy() const { return getmaxy(w) == ERR ? ERR : getmaxy(w)-1; }
   // Largest y coord in window
 
   short          getcolor() const;
@@ -867,6 +928,15 @@
   void           getyx(int& y, int& x) const { ::getyx(w, y, x); }
   // Get current position of the cursor
 
+  void           getbegyx(int& y, int& x) const { ::getbegyx(w, y, x); }
+  // Get beginning of the window
+
+  void           getmaxyx(int& y, int& x) const { ::getmaxyx(w, y, x); }
+  // Get size of the window
+
+  void           getparyx(int& y, int& x) const { ::getparyx(w, y, x); }
+  // Get parent's beginning of the window
+
   int            mvcur(int oldrow, int oldcol, int newrow, int newcol) const {
     return ::mvcur(oldrow, oldcol, newrow, newcol); }
   // Perform lowlevel cursor motion that takes effect immediately.
@@ -909,6 +979,9 @@
   ;
 #endif
 
+  int            scanw(const char*, va_list);
+    // Perform a scanw function from the window.
+
   int            scanw(int y, int x, const char* fmt, ...)
     // Move the cursor to the requested position and then perform a scanw
     // from the window.
@@ -918,6 +991,10 @@
   ;
 #endif
 
+  int            scanw(int y, int x, const char* fmt, va_list);
+    // Move the cursor to the requested position and then perform a scanw
+    // from the window.
+
   // -------------------------------------------------------------------------
   // output
   // -------------------------------------------------------------------------
@@ -939,7 +1016,17 @@
 
   int            addstr(int y, int x, const char * str, int n=-1) {
     return ::mvwaddnstr(w, y, x, str, n); }
-  // Move the cursor to the requested position and then perform the addstr
+  // Move the cursor to the requested position and then perform the addchstr
+  // as described above.
+
+  int            addchstr(const chtype* str, int n=-1) {
+    return ::waddchnstr(w, str, n); }
+  // Write the string str to the window, stop writing if the terminating
+  // NUL or the limit n is reached. If n is negative, it is ignored.
+
+  int            addchstr(int y, int x, const chtype * str, int n=-1) {
+    return ::mvwaddchnstr(w, y, x, str, n); }
+  // Move the cursor to the requested position and then perform the addchstr
   // as described above.
 
   int            printw(const char* fmt, ...)
@@ -958,6 +1045,12 @@
   ;
 #endif
 
+  int            printw(const char* fmt, va_list args);
+    // Do a formatted print to the window.
+
+  int            printw(int y, int x, const char * fmt, va_list args);
+    // Move the cursor and then do a formatted print to the window.
+
   chtype         inch() const { return ::winch(w); }
   // Retrieve attributed character under the current cursor position.
 
@@ -965,6 +1058,16 @@
   // Move cursor to requested position and then retrieve attributed character
   // at this position.
 
+  int            inchstr(chtype* str, int n=-1) {
+    return ::winchnstr(w, str, n); }
+  // Read the string str from the window, stop reading if the terminating
+  // NUL or the limit n is reached. If n is negative, it is ignored.
+
+  int            inchstr(int y, int x, chtype * str, int n=-1) {
+    return ::mvwinchnstr(w, y, x, str, n); }
+  // Move the cursor to the requested position and then perform the inchstr
+  // as described above.
+
   int            insch(chtype ch) { return ::winsch(w, ch); }
   // Insert attributed character into the window before current cursor
   // position.
@@ -1001,6 +1104,9 @@
   int            attrset(chtype at) { return ::wattrset(w, static_cast<int>(at)); }
   // Set the window attributes;
 
+  chtype         attrget() { return ::getattrs(w); }
+  // Get the window attributes;
+
   int            color_set(short color_pair_number, void* opts=NULL) {
     return ::wcolor_set(w, color_pair_number, opts); }
   // Set the window color attribute;
@@ -1116,11 +1222,13 @@
   // If bf is TRUE, use insert/delete line hardware support if possible.
   // Otherwise do it in software.
 
-
   void           idcok(bool bf) { ::idcok(w, bf); }
   // If bf is TRUE, use insert/delete character hardware support if possible.
   // Otherwise do it in software.
 
+  int            touchline(int s, int c) { return ::touchline(w, s, c); }
+  // Mark the given lines as modified.
+
   int            touchwin()   { return ::wtouchln(w, 0, height(), 1); }
   // Mark the whole window as modified.
 
@@ -1173,9 +1281,13 @@
   // If called with bf=TRUE, any change in the window will cause an
   // automatic immediate refresh()
 
+  int            intrflush(bool bf) { return ::intrflush(w, bf); }
+
   int            keypad(bool bf) { return ::keypad(w, bf); }
   // If called with bf=TRUE, the application will interpret function keys.
 
+  int            nodelay(bool bf) { return ::nodelay(w, bf); }
+
   int            meta(bool bf) { return ::meta(w, bf); }
   // If called with bf=TRUE, keys may generate 8-Bit characters. Otherwise
   // 7-Bit characters are generated.
@@ -1220,6 +1332,14 @@
   // sminrow,smincol.
 
   // -------------------------------------------------------------------------
+  // Extended functions
+  // -------------------------------------------------------------------------
+#if defined(NCURSES_EXT_FUNCS) && (NCURSES_EXT_FUNCS != 0)
+  int            wresize(int newLines, int newColumns) {
+    return ::wresize(w, newLines, newColumns); }
+#endif
+
+  // -------------------------------------------------------------------------
   // Mouse related
   // -------------------------------------------------------------------------
   bool has_mouse() const;
diff -Naur ncurses-5.6.orig/c++/demo.cc ncurses-5.6/c++/demo.cc
--- ncurses-5.6.orig/c++/demo.cc	2006-04-22 18:38:57.000000000 -0400
+++ ncurses-5.6/c++/demo.cc	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,7 +35,7 @@
  *   Demo code for NCursesMenu and NCursesForm written by
  *   Juergen Pfeifer
  *
- * $Id: demo.cc,v 1.34 2006/04/22 22:38:57 tom Exp $
+ * $Id: demo.cc,v 1.36 2007/04/07 20:24:49 tom Exp $
  */
 
 #include "internal.h"
@@ -55,30 +55,30 @@
   public:
   void run(int sleeptime) {
 
-    NCursesPanel *std = new NCursesPanel();
+    NCursesPanel *mystd = new NCursesPanel();
 
     //  Make a few small demo panels
 
-    NCursesPanel *u = new NCursesPanel(8,20,12,4);
-    NCursesPanel *v = new NCursesPanel(8,20,10,6);
-    NCursesPanel *w = new NCursesPanel(8,20,8,8);
-    NCursesPanel *x = new NCursesPanel(8,20,6,10);
-    NCursesPanel *y = new NCursesPanel(8,20,4,12);
-    NCursesPanel *z = new NCursesPanel(8,30,2,14);
+    NCursesPanel *u = new NCursesPanel(8, 20, 12, 4);
+    NCursesPanel *v = new NCursesPanel(8, 20, 10, 6);
+    NCursesPanel *w = new NCursesPanel(8, 20, 8, 8);
+    NCursesPanel *x = new NCursesPanel(8, 20, 6, 10);
+    NCursesPanel *y = new NCursesPanel(8, 20, 4, 12);
+    NCursesPanel *z = new NCursesPanel(8, 30, 2, 14);
 
     //  Draw something on the main screen, so we can see what happens
     //  when panels get moved or deleted.
 
-    std->box();
-    std->move(std->height()/2,1);
-    std->hline(std->width()-2);
-    std->move(1,std->width()/2);
-    std->vline(std->height()-2);
-    std->addch(0,std->width()/2,ACS_TTEE);
-    std->addch(std->height()-1,std->width()/2,ACS_BTEE);
-    std->addch(std->height()/2,0,ACS_LTEE);
-    std->addch(std->height()/2,std->width()-1,ACS_RTEE);
-    std->addch(std->height()/2,std->width()/2,ACS_PLUS);
+    mystd->box();
+    mystd->move(mystd->height()/2, 1);
+    mystd->hline(mystd->width()-2);
+    mystd->move(1, mystd->width()/2);
+    mystd->vline(mystd->height()-2);
+    mystd->addch(0, mystd->width()/2, ACS_TTEE);
+    mystd->addch(mystd->height()-1, mystd->width()/2, ACS_BTEE);
+    mystd->addch(mystd->height()/2, 0, ACS_LTEE);
+    mystd->addch(mystd->height()/2, mystd->width()-1, ACS_RTEE);
+    mystd->addch(mystd->height()/2, mystd->width()/2, ACS_PLUS);
 
     //  Draw frames with titles around panels so that we can see where
     //  the panels are located.
@@ -98,56 +98,56 @@
     }
 
     //  A refresh to any valid panel updates all panels and refreshes
-    //  the screen.  Using std is just convenient - We know it's always
+    //  the screen.  Using mystd is just convenient - We know it's always
     //  valid until the end of the program.
 
-    std->refresh();
+    mystd->refresh();
     sleep(sleeptime);
 
     //  Show what happens when panels are deleted and moved.
 
     sleep(sleeptime);
     delete u;
-    std->refresh();
+    mystd->refresh();
 
     sleep(sleeptime);
     delete z;
-    std->refresh();
+    mystd->refresh();
 
     sleep(sleeptime);
     delete v;
-    std->refresh();
+    mystd->refresh();
 
     // show how it looks when a panel moves
     sleep(sleeptime);
-    y->mvwin(5,30);
-    std->refresh();
+    y->mvwin(5, 30);
+    mystd->refresh();
 
     sleep(sleeptime);
     delete y;
-    std->refresh();
+    mystd->refresh();
 
     // show how it looks when you raise a panel
     sleep(sleeptime);
     w->top();
-    std->refresh();
+    mystd->refresh();
 
     sleep(sleeptime);
     delete w;
-    std->refresh();
+    mystd->refresh();
 
     sleep(sleeptime);
     delete x;
 
-    std->clear();
-    std->refresh();
+    mystd->clear();
+    mystd->refresh();
 
     //  Don't forget to clean up the main screen.  Since this is the
     //  last thing using NCursesWindow, this has the effect of
     //  shutting down ncurses and restoring the terminal state.
 
     sleep(sleeptime);
-    delete std;
+    delete mystd;
   }
 };
 
@@ -247,21 +247,21 @@
 
     F     = new NCursesFormField*[10];
     mft   = new MyFieldType('X');
-    ift   = new Integer_Field(0,1,10);
+    ift   = new Integer_Field(0, 1, 10);
     eft   = new Enumeration_Field(weekdays);
 
-    F[0]  = new Label("Demo Entry Form",0,16);
-    F[1]  = new Label("Weekday Enum",2,1);
-    F[2]  = new Label("Number(1-10)",2,21);
-    F[3]  = new Label("Only 'X'",2,35);
-    F[4]  = new Label("Multiline Field (Dynamic and Scrollable)",5,1);
-    F[5]  = new NCursesFormField(1,18,3,1);
-    F[6]  = new NCursesFormField(1,12,3,21);
-    F[7]  = new NCursesFormField(1,12,3,35);
-    F[8]  = new NCursesFormField(4,46,6,1,2);
+    F[0]  = new Label("Demo Entry Form", 0, 16);
+    F[1]  = new Label("Weekday Enum", 2, 1);
+    F[2]  = new Label("Number(1-10)", 2, 21);
+    F[3]  = new Label("Only 'X'", 2, 35);
+    F[4]  = new Label("Multiline Field (Dynamic and Scrollable)", 5, 1);
+    F[5]  = new NCursesFormField(1, 18, 3, 1);
+    F[6]  = new NCursesFormField(1, 12, 3, 21);
+    F[7]  = new NCursesFormField(1, 12, 3, 35);
+    F[8]  = new NCursesFormField(4, 46, 6, 1, 2);
     F[9]  = new NCursesFormField();
 
-    InitForm(F,TRUE,TRUE);
+    InitForm(F, TRUE, TRUE);
     boldframe();
 
     F[5]->set_fieldtype(*eft);
@@ -312,7 +312,7 @@
     Soft_Label_Key_Set* S = new Soft_Label_Key_Set;
     for(int i=1; i <= S->labels(); i++) {
       char buf[8];
-      ::sprintf(buf,"Frm%02d",i);
+      ::sprintf(buf, "Frm%02d", i);
       (*S)[i] = buf;                                      // Text
       (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
     }
@@ -336,9 +336,9 @@
     const int PADSIZE  = 200;
     unsigned gridcount = 0;
 
-    NCursesPanel std;
-    NCursesPanel P(std.lines()-2,std.cols()-2,1,1);
-    NCursesFramedPad FP(P,PADSIZE,PADSIZE);
+    NCursesPanel mystd;
+    NCursesPanel P(mystd.lines()-2, mystd.cols()-2, 1, 1);
+    NCursesFramedPad FP(P, PADSIZE, PADSIZE);
 
     for (int i=0; i < PADSIZE; i++) {
       for (int j=0; j < PADSIZE; j++) {
@@ -357,7 +357,7 @@
       }
     }
 
-    P.label("Pad Demo",NULL);
+    P.label("Pad Demo", NULL);
     FP();
     P.clear();
     return FALSE;
@@ -385,9 +385,9 @@
   }
 
   bool action() {
-    NCursesPanel *std = new NCursesPanel();
+    NCursesPanel *mystd = new NCursesPanel();
 
-    NCursesPanel *w = new NCursesPanel(std->lines() - 2, std->cols() - 2, 1, 1);
+    NCursesPanel *w = new NCursesPanel(mystd->lines() - 2, mystd->cols() - 2, 1, 1);
     w->box();
     w->refresh();
 
@@ -411,7 +411,7 @@
 
     delete s;
     delete w;
-    delete std;
+    delete mystd;
     ::noecho();
     return FALSE;
   }
@@ -444,10 +444,10 @@
     I[6] = new QuitItem();
     I[7] = new NCursesMenuItem(); // Terminating empty item
 
-    InitMenu(I,TRUE,TRUE);
+    InitMenu(I, TRUE, TRUE);
 
-    P = new NCursesPanel(1,n_items,LINES-1,1);
-    boldframe("Demo","Silly");
+    P = new NCursesPanel(1, n_items, LINES-1, 1);
+    boldframe("Demo", "Silly");
     P->show();
   }
 
@@ -474,7 +474,7 @@
   virtual void On_Menu_Init()
   {
     NCursesWindow W(::stdscr);
-    P->move(0,0);
+    P->move(0, 0);
     P->clrtoeol();
     for(int i=1; i<=count(); i++)
       P->addch('0' + i);
@@ -484,25 +484,25 @@
 
   virtual void On_Menu_Termination()
   {
-    P->move(0,0);
+    P->move(0, 0);
     P->clrtoeol();
     refresh();
   }
 
   virtual void On_Item_Init(NCursesMenuItem& item)
   {
-    P->move(0,item.index());
+    P->move(0, item.index());
     P->attron(A_REVERSE);
-    P->printw("%1d",1+item.index());
+    P->printw("%1d", 1+item.index());
     P->attroff(A_REVERSE);
     refresh();
   }
 
   virtual void On_Item_Termination(NCursesMenuItem& item)
   {
-    P->move(0,item.index());
+    P->move(0, item.index());
     P->attroff(A_REVERSE);
-    P->printw("%1d",1+item.index());
+    P->printw("%1d", 1+item.index());
     refresh();
   }
 };
@@ -530,7 +530,7 @@
 {
   for(int i=1; i <= S.labels(); i++) {
     char buf[8];
-    ::sprintf(buf,"Key%02d",i);
+    ::sprintf(buf, "Key%02d", i);
     S[i] = buf;                                      // Text
     S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
   }
@@ -542,7 +542,7 @@
   const int len = ::strlen(titleText);
 
   titleWindow->bkgd(screen_titles());
-  titleWindow->addstr(0,(titleWindow->cols() - len)/2, titleText);
+  titleWindow->addstr(0, (titleWindow->cols() - len)/2, titleText);
   titleWindow->noutrefresh();
 }
 
@@ -557,4 +557,4 @@
 //
 // -------------------------------------------------------------------------
 //
-static TestApplication Demo;
+static TestApplication *Demo = new TestApplication();
diff -Naur ncurses-5.6.orig/c++/edit_cfg.sh ncurses-5.6/c++/edit_cfg.sh
--- ncurses-5.6.orig/c++/edit_cfg.sh	2005-04-30 17:00:22.000000000 -0400
+++ ncurses-5.6/c++/edit_cfg.sh	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $Id: edit_cfg.sh,v 1.14 2005/04/30 21:00:22 tom Exp $
+# $Id: edit_cfg.sh,v 1.16 2007/04/07 19:08:49 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2005,2007 Free 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"), #
@@ -28,7 +28,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1997
+# Author: Thomas E. Dickey 1997-on
 #
 # Edit the default value of the etip.h file based on the autoconf-generated
 # values:
@@ -45,11 +45,9 @@
 	HAVE_BUILTIN_H \
 	HAVE_GPP_BUILTIN_H \
 	HAVE_GXX_BUILTIN_H \
-	HAVE_STRSTREAM_H \
+	HAVE_IOSTREAM \
 	HAVE_TYPEINFO \
-	HAVE_VALUES_H \
-	USE_STRSTREAM_VSCAN \
-	USE_STRSTREAM_VSCAN_CAST
+	HAVE_VALUES_H
 do
 	rm -f $2.bak
 	mv $2 $2.bak
diff -Naur ncurses-5.6.orig/c++/etip.h.in ncurses-5.6/c++/etip.h.in
--- ncurses-5.6.orig/c++/etip.h.in	2005-08-06 15:55:57.000000000 -0400
+++ ncurses-5.6/c++/etip.h.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,7 +31,7 @@
  *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-// $Id: etip.h.in,v 1.32 2005/08/06 19:55:57 tom Exp $
+// $Id: etip.h.in,v 1.36 2007/04/07 18:56:32 tom Exp $
 
 #ifndef NCURSES_ETIP_H_incl
 #define NCURSES_ETIP_H_incl 1
@@ -49,8 +49,8 @@
 #define HAVE_GPP_BUILTIN_H 0
 #endif
 
-#ifndef HAVE_STRSTREAM_H
-#define HAVE_STRSTREAM_H 0
+#ifndef HAVE_IOSTREAM
+#define HAVE_IOSTREAM 0
 #endif
 
 #ifndef HAVE_TYPEINFO
@@ -77,14 +77,6 @@
 #define CPP_HAS_STATIC_CAST 0	// workaround for g++ 2.95.3
 #endif
 
-#ifndef USE_STRSTREAM_VSCAN
-#define USE_STRSTREAM_VSCAN 0
-#endif
-
-#ifndef USE_STRSTREAM_VSCAN_CAST
-#define USE_STRSTREAM_VSCAN_CAST 0
-#endif
-
 #ifdef __GNUG__
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
 #    if HAVE_TYPEINFO
@@ -335,30 +327,46 @@
 };
 
 #if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
-#  include <iostream.h>
+#  if HAVE_IOSTREAM
+#     include <iostream>
+using std::cerr;
+using std::endl;
+#  else
+#     include <iostream.h>
+#  endif
    extern "C" void exit(int);
 #endif
 
 inline void THROW(const NCursesException *e) {
 #if defined(__GNUG__) && defined(__EXCEPTIONS)
 #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
-      (*lib_error_handler)(e?e->classname():"",e?e->message:"");
+      (*lib_error_handler)(e ? e->classname() : "", e ? e->message : "");
 #else
-      throw *e;
+#define CPP_HAS_TRY_CATCH 1
 #endif
 #elif defined(__SUNPRO_CC)
 #  if !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5)
   genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
 #else
-  throw *e;
+#define CPP_HAS_TRY_CATCH 1
 #endif
 #else
   if (e)
     cerr << e->message << endl;
   exit(0);
 #endif
-}
 
-#define THROWS(s)
+#ifndef CPP_HAS_TRY_CATCH
+#define CPP_HAS_TRY_CATCH 0
+#define NCURSES_CPP_TRY		/* nothing */
+#define NCURSES_CPP_CATCH(e)	if (false)
+#define THROWS(s)		/* nothing */
+#elif CPP_HAS_TRY_CATCH
+  throw *e;
+#define NCURSES_CPP_TRY		try
+#define NCURSES_CPP_CATCH(e)	catch(e)
+#define THROWS(s)		throw(s)
+#endif
+}
 
 #endif /* NCURSES_ETIP_H_incl */
diff -Naur ncurses-5.6.orig/c++/headers ncurses-5.6/c++/headers
--- ncurses-5.6.orig/c++/headers	1998-02-11 07:13:40.000000000 -0500
+++ ncurses-5.6/c++/headers	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 # C++ headers
-# $Id: headers,v 1.2 1998/02/11 12:13:40 tom Exp $
+# $Id: headers,v 1.3 2006/12/24 16:25:45 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -37,3 +37,4 @@
 $(srcdir)/cursesw.h
 $(srcdir)/cursslk.h
 etip.h
+# vile:makemode
diff -Naur ncurses-5.6.orig/c++/internal.h ncurses-5.6/c++/internal.h
--- ncurses-5.6.orig/c++/internal.h	2006-09-30 17:59:57.000000000 -0400
+++ ncurses-5.6/c++/internal.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -31,13 +31,15 @@
  *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-// $Id: internal.h,v 1.13 2006/09/30 21:59:57 tom Exp $
+// $Id: internal.h,v 1.15 2007/06/02 15:58:00 tom Exp $
 
 #ifndef NCURSES_CPLUS_INTERNAL_H
 #define NCURSES_CPLUS_INTERNAL_H 1
 
 #include <ncurses_cfg.h>
 
+#include <stdlib.h>
+
 #if USE_RCS_IDS
 #define MODULE_ID(id) static const char Ident[] = id;
 #else
diff -Naur ncurses-5.6.orig/c++/modules ncurses-5.6/c++/modules
--- ncurses-5.6.orig/c++/modules	1999-07-31 05:46:54.000000000 -0400
+++ ncurses-5.6/c++/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 # Program modules
-# $Id: modules,v 1.6 1999/07/31 09:46:54 juergen Exp $
+# $Id: modules,v 1.7 2006/12/24 00:53:08 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -28,7 +28,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
+# Author: Thomas E. Dickey	1995-on
 #
 
 @ base
@@ -41,3 +41,5 @@
 cursesapp	c++		$(srcdir)	$(cursesapp_h)
 cursesmain	c++		$(srcdir)	$(cursesapp_h)
 demo		c++		$(srcdir)	$(cursesf_h) $(cursesm_h) $(cursesapp_h)
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/config.guess ncurses-5.6/config.guess
--- ncurses-5.6.orig/config.guess	2006-07-22 11:57:37.000000000 -0400
+++ ncurses-5.6/config.guess	2008-06-18 06:49:49.000000000 -0400
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2006-07-02'
+timestamp='2008-03-12'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -161,6 +161,7 @@
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
@@ -179,7 +180,7 @@
 		fi
 		;;
 	    *)
-	        os=netbsd
+		os=netbsd
 		;;
 	esac
 	# The OS release
@@ -218,11 +219,11 @@
 	exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
-	*4.0)
+	    *4.0)
 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
 		;;
-	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+	    *5.*)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
 		;;
 	esac
 	# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -294,7 +295,7 @@
 	echo s390-ibm-zvmoe
 	exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+	echo powerpc-ibm-os400
 	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
@@ -329,7 +330,7 @@
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:*)
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
@@ -374,23 +375,23 @@
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+	exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
     m68k:machten:*:*)
 	echo m68k-apple-machten${UNAME_RELEASE}
 	exit ;;
@@ -460,8 +461,8 @@
 	echo m88k-motorola-sysv3
 	exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
 	then
 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -531,7 +532,7 @@
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -574,8 +575,8 @@
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
                       532)                      # CPU_PA_RISC2_0
@@ -710,22 +711,22 @@
 	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit ;;
+	exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit ;;
+	exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit ;;
+	exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit ;;
+	exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit ;;
+	exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
@@ -749,14 +750,14 @@
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -780,22 +781,28 @@
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    i*:MINGW*:*)
+    *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
-    	# uname -m includes "-pc" on this system.
-    	echo ${UNAME_MACHINE}-mingw32
+	# uname -m includes "-pc" on this system.
+	echo ${UNAME_MACHINE}-mingw32
 	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[3456]*)
-	echo i586-pc-interix${UNAME_RELEASE}
-	exit ;;
-    EM64T:Interix*:[3456]*)
-	echo x86_64-unknown-interix${UNAME_RELEASE}
-	exit ;;
+    *:Interix*:[3456]*)
+	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+	    	echo ia64-unknown-interix${UNAME_RELEASE}
+	    	exit ;;
+	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
@@ -829,7 +836,13 @@
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -841,7 +854,7 @@
 	echo crisv32-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
+	echo frv-unknown-linux-gnu
 	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -869,10 +882,10 @@
 	#endif
 EOF
 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
+		/^CPU/{
+			s: ::g
+			p
+		}'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
@@ -892,15 +905,15 @@
 	#endif
 EOF
 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
+		/^CPU/{
+			s: ::g
+			p
+		}'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-unknown-linux-gnu
-	exit ;;
+    	echo or32-unknown-linux-gnu
+    	exit ;;
     ppc:Linux:*:*)
 	echo powerpc-unknown-linux-gnu
 	exit ;;
@@ -916,7 +929,7 @@
 	  EV6)   UNAME_MACHINE=alphaev6 ;;
 	  EV67)  UNAME_MACHINE=alphaev67 ;;
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
+	esac
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
@@ -936,7 +949,7 @@
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -950,6 +963,9 @@
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
+    xtensa*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -961,7 +977,7 @@
 				    s/.*supported targets: *//
 				    s/ .*//
 				    p'`
-        case "$ld_supported_targets" in
+	case "$ld_supported_targets" in
 	  elf32-i386)
 		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
 		;;
@@ -1003,10 +1019,10 @@
 	#endif
 EOF
 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
+		/^LIBC/{
+			s: ::g
+			p
+		}'`"
 	test x"${LIBC}" != x && {
 		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
@@ -1020,11 +1036,11 @@
 	echo i386-sequent-sysv4
 	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+	# Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
 	exit ;;
     i*86:OS/2:*:*)
@@ -1056,7 +1072,7 @@
 	fi
 	exit ;;
     i*86:*:5:[678]*)
-    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
@@ -1084,10 +1100,10 @@
 	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i386.
 	echo i386-pc-msdosdjgpp
-        exit ;;
+	exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
 	exit ;;
@@ -1122,8 +1138,8 @@
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
 	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	   && { echo i486-ncr-sysv4; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1157,9 +1173,9 @@
 	fi
 	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+	              # says <Richard.M.Bartel@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes@openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
@@ -1189,7 +1205,7 @@
 	else
 	        echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit ;;
+	exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
 	exit ;;
@@ -1199,6 +1215,9 @@
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1208,6 +1227,15 @@
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1224,8 +1252,8 @@
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
 	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
+	    UNAME_PROCESSOR=i386
+	    UNAME_MACHINE=pc
 	fi
 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
 	exit ;;
@@ -1277,13 +1305,13 @@
 	echo pdp10-unknown-its
 	exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+	echo mips-sei-seiux${UNAME_RELEASE}
 	exit ;;
     *:DragonFly:*:*)
 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit ;;
     *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
 	case "${UNAME_MACHINE}" in
 	    A*) echo alpha-dec-vms ; exit ;;
 	    I*) echo ia64-dec-vms ; exit ;;
@@ -1458,9 +1486,9 @@
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff -Naur ncurses-5.6.orig/config.sub ncurses-5.6/config.sub
--- ncurses-5.6.orig/config.sub	2006-08-14 12:00:00.000000000 -0400
+++ ncurses-5.6/config.sub	2008-06-18 06:49:49.000000000 -0400
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2006-08-14'
+timestamp='2008-03-08'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -245,17 +245,19 @@
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
+	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore \
+	| maxq | mb | microblaze | mcore | mep \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -276,6 +278,7 @@
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
+	| score \
 	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
@@ -303,8 +306,8 @@
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
 	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
+		basic_machine=$basic_machine-pc
+		;;
 	# Object if more than one company name word.
 	*-*-*)
 		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
@@ -323,19 +326,21 @@
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
-	| m32c-* | m32r-* | m32rle-* \
+	| m32c- | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -363,15 +368,19 @@
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
 	| z8k-*)
 		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -388,7 +397,7 @@
 		basic_machine=a29k-amd
 		os=-udi
 		;;
-    	abacus)
+	abacus)
 		basic_machine=abacus-unknown
 		;;
 	adobe68k)
@@ -442,6 +451,14 @@
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -474,8 +491,8 @@
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -667,6 +684,14 @@
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -682,6 +707,10 @@
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -808,6 +837,14 @@
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -924,6 +961,9 @@
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -1013,6 +1053,10 @@
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
@@ -1173,8 +1217,8 @@
 if [ x"$os" != x"" ]
 then
 case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
+	# First match some system type aliases
+	# that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1218,7 +1262,7 @@
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1257,7 +1301,7 @@
 	-opened*)
 		os=-openedition
 		;;
-        -os400*)
+	-os400*)
 		os=-os400
 		;;
 	-wince*)
@@ -1306,7 +1350,7 @@
 	-sinix*)
 		os=-sysv4
 		;;
-        -tpf*)
+	-tpf*)
 		os=-tpf
 		;;
 	-triton*)
@@ -1370,7 +1414,10 @@
 # system, and we'll never get to this point.
 
 case $basic_machine in
-        spu-*)
+	score-*)
+		os=-elf
+		;;
+	spu-*)
 		os=-elf
 		;;
 	*-acorn)
@@ -1382,8 +1429,8 @@
 	arm*-semi)
 		os=-aout
 		;;
-        c4x-* | tic4x-*)
-        	os=-coff
+	c4x-* | tic4x-*)
+		os=-coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
@@ -1410,6 +1457,9 @@
 	m68*-cisco)
 		os=-aout
 		;;
+	mep-*)
+		os=-elf
+		;;
 	mips*-cisco)
 		os=-elf
 		;;
@@ -1434,7 +1484,7 @@
 	*-ibm)
 		os=-aix
 		;;
-    	*-knuth)
+	*-knuth)
 		os=-mmixware
 		;;
 	*-wec)
diff -Naur ncurses-5.6.orig/configure ncurses-5.6/configure
--- ncurses-5.6.orig/configure	2006-12-17 11:33:38.000000000 -0500
+++ ncurses-5.6/configure	2008-06-18 06:49:52.000000000 -0400
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in Revision: 1.383 .
+# From configure.in Revision: 1.434 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20061216.
+# Generated by Autoconf 2.52.20080325.
 #
 # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
 # Free Software Foundation, Inc.
@@ -699,6 +699,7 @@
   --without-ada           suppress check for Ada95, don't build demo
   --without-progs         suppress build with programs (e.g., tic)
   --without-curses-h      install curses.h as ncurses.h only
+  --enable-mixed-case     tic should assume mixed-case filenames
   --with-install-prefix   prefixes actual install-location ($DESTDIR)
 Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
   --with-build-cc=XXX     the build C compiler ($BUILD_CC)
@@ -714,10 +715,12 @@
   --with-debug            generate debug-libraries (default)
   --with-profile          generate profile-libraries
   --with-termlib          generate separate terminfo library
+  --with-ticlib           generate separate tic library
   --with-gpm              use Alessandro Rubini's GPM library
   --without-dlsym         do not use dlsym() to load GPM dynamically
   --with-sysmouse         use sysmouse (FreeBSD console)
   --enable-rpath          use rpath option when generating shared libraries
+  --disable-relink        relink shared libraries during install
   --with-shlib-version=X  Specify rel or abi version for shared libs
 Fine-Tuning Your Configuration:
   --disable-overwrite     leave out the link to -lcurses
@@ -729,6 +732,7 @@
   --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
   --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
   --disable-big-core      assume machine has little memory
+  --disable-big-strings   assume compiler has only standard-size strings
   --enable-termcap        compile in termcap fallback support
   --with-termpath=XXX     specify list of termcap files (default: /etc/termcap:/usr/share/misc/termcap)
   --enable-getcap         fast termcap load, no xrefs to terminfo
@@ -758,8 +762,10 @@
 Extensions:
   --disable-ext-funcs     disable function-extensions
   --enable-const          compile with extra/non-standard const
+  --enable-ext-colors     compile for 256-color support
+  --enable-ext-mouse      compile for extended mouse-encoding
   --enable-no-padding     compile with $NCURSES_NO_PADDING code
-  --enable-signed-char    compile with SIGWINCH handler
+  --enable-signed-char    compile using signed Boolean's in term.h
   --enable-sigwinch       compile with SIGWINCH handler
   --enable-tcap-names     compile with user-definable terminal capabilities
 Development Code:
@@ -770,8 +776,8 @@
   --disable-assumed-color do not assume anything about default-colors
   --disable-hashmap       compile without hashmap scrolling-optimization
   --enable-colorfgbg      compile with $COLORFGBG code
-  --enable-ext-colors     compile for experimental 256-color support
-  --enable-ext-mouse      compile for experimental mouse-encoding
+  --with-pthread          use POSIX thread library
+  --enable-reentrant      compile with experimental reentrant code
   --enable-safe-sprintf   compile with experimental safe-sprintf code
   --disable-scroll-hints  compile without scroll-hints code
   --enable-wgetch-events  compile with experimental wgetch-events code
@@ -862,7 +868,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.52.20061216.  Invocation command line was
+generated by GNU Autoconf 2.52.20080325.  Invocation command line was
 
   $ $0 $@
 
@@ -986,7 +992,7 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:989: loading site script $ac_site_file" >&5
+    { echo "$as_me:995: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
     cat "$ac_site_file" >&5
     . "$ac_site_file"
@@ -997,7 +1003,7 @@
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { echo "$as_me:1000: loading cache $cache_file" >&5
+    { echo "$as_me:1006: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -1005,7 +1011,7 @@
     esac
   fi
 else
-  { echo "$as_me:1008: creating cache $cache_file" >&5
+  { echo "$as_me:1014: creating cache $cache_file" >&5
 echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -1021,21 +1027,21 @@
   eval ac_new_val="\$ac_env_${ac_var}_value"
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:1024: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { echo "$as_me:1030: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { echo "$as_me:1028: error: \`$ac_var' was not set in the previous run" >&5
+      { echo "$as_me:1034: error: \`$ac_var' was not set in the previous run" >&5
 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:1034: error: \`$ac_var' has changed since the previous run:" >&5
+        { echo "$as_me:1040: error: \`$ac_var' has changed since the previous run:" >&5
 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:1036:   former value:  $ac_old_val" >&5
+        { echo "$as_me:1042:   former value:  $ac_old_val" >&5
 echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:1038:   current value: $ac_new_val" >&5
+        { echo "$as_me:1044:   current value: $ac_new_val" >&5
 echo "$as_me:   current value: $ac_new_val" >&2;}
         ac_cache_corrupted=:
       fi;;
@@ -1054,9 +1060,9 @@
   fi
 done
 if $ac_cache_corrupted; then
-  { echo "$as_me:1057: error: changes in the environment can compromise the build" >&5
+  { echo "$as_me:1063: error: changes in the environment can compromise the build" >&5
 echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:1059: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+  { { echo "$as_me:1065: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1077,10 +1083,10 @@
 echo "#! $SHELL" >conftest.sh
 echo  "exit 0"   >>conftest.sh
 chmod +x conftest.sh
-if { (echo "$as_me:1080: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1086: PATH=\".;.\"; conftest.sh") >&5
   (PATH=".;."; conftest.sh) 2>&5
   ac_status=$?
-  echo "$as_me:1083: \$? = $ac_status" >&5
+  echo "$as_me:1089: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   ac_path_separator=';'
 else
@@ -1093,7 +1099,7 @@
 
 top_builddir=`pwd`
 
-echo "$as_me:1096: checking for egrep" >&5
+echo "$as_me:1102: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 if test "${ac_cv_prog_egrep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1103,11 +1109,11 @@
     else ac_cv_prog_egrep='egrep'
     fi
 fi
-echo "$as_me:1106: result: $ac_cv_prog_egrep" >&5
+echo "$as_me:1112: result: $ac_cv_prog_egrep" >&5
 echo "${ECHO_T}$ac_cv_prog_egrep" >&6
  EGREP=$ac_cv_prog_egrep
 
-test -z "$EGREP" && { { echo "$as_me:1110: error: No egrep program found" >&5
+test -z "$EGREP" && { { echo "$as_me:1116: error: No egrep program found" >&5
 echo "$as_me: error: No egrep program found" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -1117,7 +1123,7 @@
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 cf_cv_timestamp=`date`
-echo "$as_me:1120: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "$as_me:1126: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
 echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
 
 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
@@ -1125,7 +1131,7 @@
 # Check whether --with-rel-version or --without-rel-version was given.
 if test "${with_rel_version+set}" = set; then
   withval="$with_rel_version"
-  { echo "$as_me:1128: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+  { echo "$as_me:1134: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
 echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
  cf_cv_rel_version=$withval
 fi;
@@ -1138,13 +1144,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1141: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+	{ { echo "$as_me:1147: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
 echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1147: error: Release major-version value is empty" >&5
+  { { echo "$as_me:1153: error: Release major-version value is empty" >&5
 echo "$as_me: error: Release major-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1154,13 +1160,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1157: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+	{ { echo "$as_me:1163: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
 echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1163: error: Release minor-version value is empty" >&5
+  { { echo "$as_me:1169: error: Release minor-version value is empty" >&5
 echo "$as_me: error: Release minor-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1170,7 +1176,7 @@
 # Check whether --with-abi-version or --without-abi-version was given.
 if test "${with_abi_version+set}" = set; then
   withval="$with_abi_version"
-  { echo "$as_me:1173: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+  { echo "$as_me:1179: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
 echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
  cf_cv_abi_version=$withval
 fi;
@@ -1180,13 +1186,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1183: error: ABI version is not a number: $cf_cv_abi_version" >&5
+	{ { echo "$as_me:1189: error: ABI version is not a number: $cf_cv_abi_version" >&5
 echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1189: error: ABI version value is empty" >&5
+  { { echo "$as_me:1195: error: ABI version value is empty" >&5
 echo "$as_me: error: ABI version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1208,7 +1214,7 @@
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:1211: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+  { { echo "$as_me:1217: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1218,11 +1224,11 @@
 
 # Make sure we can run config.sub.
 $ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:1221: error: cannot run $ac_config_sub" >&5
+  { { echo "$as_me:1227: error: cannot run $ac_config_sub" >&5
 echo "$as_me: error: cannot run $ac_config_sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:1225: checking build system type" >&5
+echo "$as_me:1231: checking build system type" >&5
 echo $ECHO_N "checking build system type... $ECHO_C" >&6
 if test "${ac_cv_build+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1231,23 +1237,23 @@
 test -z "$ac_cv_build_alias" &&
   ac_cv_build_alias=`$ac_config_guess`
 test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:1234: error: cannot guess build type; you must specify one" >&5
+  { { echo "$as_me:1240: error: cannot guess build type; you must specify one" >&5
 echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
 ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:1238: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+  { { echo "$as_me:1244: error: $ac_config_sub $ac_cv_build_alias failed." >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1243: result: $ac_cv_build" >&5
+echo "$as_me:1249: result: $ac_cv_build" >&5
 echo "${ECHO_T}$ac_cv_build" >&6
 build=$ac_cv_build
 build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-echo "$as_me:1250: checking host system type" >&5
+echo "$as_me:1256: checking host system type" >&5
 echo $ECHO_N "checking host system type... $ECHO_C" >&6
 if test "${ac_cv_host+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1256,12 +1262,12 @@
 test -z "$ac_cv_host_alias" &&
   ac_cv_host_alias=$ac_cv_build_alias
 ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:1259: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+  { { echo "$as_me:1265: error: $ac_config_sub $ac_cv_host_alias failed" >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1264: result: $ac_cv_host" >&5
+echo "$as_me:1270: result: $ac_cv_host" >&5
 echo "${ECHO_T}$ac_cv_host" >&6
 host=$ac_cv_host
 host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1269,7 +1275,7 @@
 host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-	echo "$as_me:1272: checking target system type" >&5
+	echo "$as_me:1278: checking target system type" >&5
 echo $ECHO_N "checking target system type... $ECHO_C" >&6
 if test "${ac_cv_target+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1278,12 +1284,12 @@
 test "x$ac_cv_target_alias" = "x" &&
   ac_cv_target_alias=$ac_cv_host_alias
 ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
-  { { echo "$as_me:1281: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+  { { echo "$as_me:1287: error: $ac_config_sub $ac_cv_target_alias failed" >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1286: result: $ac_cv_target" >&5
+echo "$as_me:1292: result: $ac_cv_target" >&5
 echo "${ECHO_T}$ac_cv_target" >&6
 target=$ac_cv_target
 target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1314,13 +1320,13 @@
 fi
 
 test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1317: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1323: result: Configuring for $cf_cv_system_name" >&5
 echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
-	echo "$as_me:1321: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+	echo "$as_me:1327: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
 echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
-	{ { echo "$as_me:1323: error: \"Please remove config.cache and try again.\"" >&5
+	{ { echo "$as_me:1329: error: \"Please remove config.cache and try again.\"" >&5
 echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1328,7 +1334,7 @@
 # Check whether --with-system-type or --without-system-type was given.
 if test "${with_system_type+set}" = set; then
   withval="$with_system_type"
-  { echo "$as_me:1331: WARNING: overriding system type to $withval" >&5
+  { echo "$as_me:1337: WARNING: overriding system type to $withval" >&5
 echo "$as_me: WARNING: overriding system type to $withval" >&2;}
  cf_cv_system_name=$withval
 fi;
@@ -1338,7 +1344,7 @@
 
 ###	Default install-location
 
-echo "$as_me:1341: checking for prefix" >&5
+echo "$as_me:1347: checking for prefix" >&5
 echo $ECHO_N "checking for prefix... $ECHO_C" >&6
 if test "x$prefix" = "xNONE" ; then
 	case "$cf_cv_system_name" in
@@ -1350,11 +1356,11 @@
 		;;
 	esac
 fi
-echo "$as_me:1353: result: $prefix" >&5
+echo "$as_me:1359: result: $prefix" >&5
 echo "${ECHO_T}$prefix" >&6
 
 if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1357: checking for default include-directory" >&5
+echo "$as_me:1363: checking for default include-directory" >&5
 echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
 test -n "$verbose" && echo 1>&6
 for cf_symbol in \
@@ -1377,7 +1383,7 @@
 	fi
 	test -n "$verbose"  && echo "	tested $cf_dir" 1>&6
 done
-echo "$as_me:1380: result: $includedir" >&5
+echo "$as_me:1386: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 fi
 
@@ -1391,7 +1397,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1394: checking for $ac_word" >&5
+echo "$as_me:1400: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1406,7 +1412,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1409: found $ac_dir/$ac_word" >&5
+echo "$as_me:1415: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1414,10 +1420,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1417: result: $CC" >&5
+  echo "$as_me:1423: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1420: result: no" >&5
+  echo "$as_me:1426: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1426,7 +1432,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:1429: checking for $ac_word" >&5
+echo "$as_me:1435: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1441,7 +1447,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1444: found $ac_dir/$ac_word" >&5
+echo "$as_me:1450: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1449,10 +1455,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1452: result: $ac_ct_CC" >&5
+  echo "$as_me:1458: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1455: result: no" >&5
+  echo "$as_me:1461: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1465,7 +1471,7 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1468: checking for $ac_word" >&5
+echo "$as_me:1474: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1480,7 +1486,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1483: found $ac_dir/$ac_word" >&5
+echo "$as_me:1489: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1488,10 +1494,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1491: result: $CC" >&5
+  echo "$as_me:1497: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1494: result: no" >&5
+  echo "$as_me:1500: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1500,7 +1506,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1503: checking for $ac_word" >&5
+echo "$as_me:1509: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1515,7 +1521,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1518: found $ac_dir/$ac_word" >&5
+echo "$as_me:1524: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1523,10 +1529,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1526: result: $ac_ct_CC" >&5
+  echo "$as_me:1532: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1529: result: no" >&5
+  echo "$as_me:1535: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1539,7 +1545,7 @@
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1542: checking for $ac_word" >&5
+echo "$as_me:1548: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1559,7 +1565,7 @@
   continue
 fi
 ac_cv_prog_CC="cc"
-echo "$as_me:1562: found $ac_dir/$ac_word" >&5
+echo "$as_me:1568: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1581,10 +1587,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1584: result: $CC" >&5
+  echo "$as_me:1590: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1587: result: no" >&5
+  echo "$as_me:1593: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1595,7 +1601,7 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1598: checking for $ac_word" >&5
+echo "$as_me:1604: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1610,7 +1616,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1613: found $ac_dir/$ac_word" >&5
+echo "$as_me:1619: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1618,10 +1624,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1621: result: $CC" >&5
+  echo "$as_me:1627: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1624: result: no" >&5
+  echo "$as_me:1630: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1634,7 +1640,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:1637: checking for $ac_word" >&5
+echo "$as_me:1643: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1649,7 +1655,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1652: found $ac_dir/$ac_word" >&5
+echo "$as_me:1658: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1657,10 +1663,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1660: result: $ac_ct_CC" >&5
+  echo "$as_me:1666: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1663: result: no" >&5
+  echo "$as_me:1669: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1672,32 +1678,32 @@
 
 fi
 
-test -z "$CC" && { { echo "$as_me:1675: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1681: error: no acceptable cc found in \$PATH" >&5
 echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:1680:" \
+echo "$as_me:1686:" \
      "checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1683: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1689: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1686: \$? = $ac_status" >&5
+  echo "$as_me:1692: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1688: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1694: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1691: \$? = $ac_status" >&5
+  echo "$as_me:1697: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1693: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1699: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1696: \$? = $ac_status" >&5
+  echo "$as_me:1702: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 1700 "configure"
+#line 1706 "configure"
 #include "confdefs.h"
 
 int
@@ -1713,13 +1719,13 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:1716: checking for C compiler default output" >&5
+echo "$as_me:1722: checking for C compiler default output" >&5
 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:1719: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1725: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
   ac_status=$?
-  echo "$as_me:1722: \$? = $ac_status" >&5
+  echo "$as_me:1728: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Find the output, starting from the most likely.  This scheme is
 # not robust to junk in `.', hence go to wildcards (a.*) only as a last
@@ -1742,34 +1748,34 @@
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1745: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1751: error: C compiler cannot create executables" >&5
 echo "$as_me: error: C compiler cannot create executables" >&2;}
    { (exit 77); exit 77; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:1751: result: $ac_file" >&5
+echo "$as_me:1757: result: $ac_file" >&5
 echo "${ECHO_T}$ac_file" >&6
 
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1756: checking whether the C compiler works" >&5
+echo "$as_me:1762: checking whether the C compiler works" >&5
 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:1762: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1768: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1765: \$? = $ac_status" >&5
+  echo "$as_me:1771: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { echo "$as_me:1772: error: cannot run C compiled programs.
+	{ { echo "$as_me:1778: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'." >&5
 echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'." >&2;}
@@ -1777,24 +1783,24 @@
     fi
   fi
 fi
-echo "$as_me:1780: result: yes" >&5
+echo "$as_me:1786: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
 rm -f a.out a.exe conftest$ac_cv_exeext
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1787: checking whether we are cross compiling" >&5
+echo "$as_me:1793: checking whether we are cross compiling" >&5
 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1789: result: $cross_compiling" >&5
+echo "$as_me:1795: result: $cross_compiling" >&5
 echo "${ECHO_T}$cross_compiling" >&6
 
-echo "$as_me:1792: checking for executable suffix" >&5
+echo "$as_me:1798: checking for executable suffix" >&5
 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1794: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1800: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:1797: \$? = $ac_status" >&5
+  echo "$as_me:1803: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
@@ -1810,25 +1816,25 @@
   esac
 done
 else
-  { { echo "$as_me:1813: error: cannot compute EXEEXT: cannot compile and link" >&5
+  { { echo "$as_me:1819: error: cannot compute EXEEXT: cannot compile and link" >&5
 echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:1819: result: $ac_cv_exeext" >&5
+echo "$as_me:1825: result: $ac_cv_exeext" >&5
 echo "${ECHO_T}$ac_cv_exeext" >&6
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:1825: checking for object suffix" >&5
+echo "$as_me:1831: checking for object suffix" >&5
 echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1831 "configure"
+#line 1837 "configure"
 #include "confdefs.h"
 
 int
@@ -1840,10 +1846,10 @@
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1843: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1849: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1846: \$? = $ac_status" >&5
+  echo "$as_me:1852: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
@@ -1855,24 +1861,24 @@
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1858: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1864: error: cannot compute OBJEXT: cannot compile" >&5
 echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:1865: result: $ac_cv_objext" >&5
+echo "$as_me:1871: result: $ac_cv_objext" >&5
 echo "${ECHO_T}$ac_cv_objext" >&6
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:1869: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1875: checking whether we are using the GNU C compiler" >&5
 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1875 "configure"
+#line 1881 "configure"
 #include "confdefs.h"
 
 int
@@ -1887,16 +1893,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1890: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1896: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1893: \$? = $ac_status" >&5
+  echo "$as_me:1899: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1896: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1902: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1899: \$? = $ac_status" >&5
+  echo "$as_me:1905: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -1908,19 +1914,19 @@
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:1911: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1917: result: $ac_cv_c_compiler_gnu" >&5
 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 CFLAGS="-g"
-echo "$as_me:1917: checking whether $CC accepts -g" >&5
+echo "$as_me:1923: checking whether $CC accepts -g" >&5
 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1923 "configure"
+#line 1929 "configure"
 #include "confdefs.h"
 
 int
@@ -1932,16 +1938,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1935: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1941: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1938: \$? = $ac_status" >&5
+  echo "$as_me:1944: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1941: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1947: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1944: \$? = $ac_status" >&5
+  echo "$as_me:1950: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
@@ -1951,7 +1957,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:1954: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1960: result: $ac_cv_prog_cc_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -1978,16 +1984,16 @@
 #endif
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1981: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1987: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1984: \$? = $ac_status" >&5
+  echo "$as_me:1990: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1987: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1993: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1990: \$? = $ac_status" >&5
+  echo "$as_me:1996: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
    ''\
@@ -1999,7 +2005,7 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 2002 "configure"
+#line 2008 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -2012,16 +2018,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2015: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2021: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2018: \$? = $ac_status" >&5
+  echo "$as_me:2024: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2021: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2027: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2024: \$? = $ac_status" >&5
+  echo "$as_me:2030: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -2031,7 +2037,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 2034 "configure"
+#line 2040 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -2043,16 +2049,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2046: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2052: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2049: \$? = $ac_status" >&5
+  echo "$as_me:2055: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2052: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2058: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2055: \$? = $ac_status" >&5
+  echo "$as_me:2061: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -2082,11 +2088,11 @@
 
 GCC_VERSION=none
 if test "$GCC" = yes ; then
-	echo "$as_me:2085: checking version of $CC" >&5
+	echo "$as_me:2091: checking version of $CC" >&5
 echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
 	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
-	echo "$as_me:2089: result: $GCC_VERSION" >&5
+	echo "$as_me:2095: result: $GCC_VERSION" >&5
 echo "${ECHO_T}$GCC_VERSION" >&6
 fi
 
@@ -2096,7 +2102,7 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ac_main_return=return
-echo "$as_me:2099: checking how to run the C preprocessor" >&5
+echo "$as_me:2105: checking how to run the C preprocessor" >&5
 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
@@ -2117,18 +2123,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2120 "configure"
+#line 2126 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2125: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2131: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2131: \$? = $ac_status" >&5
+  echo "$as_me:2137: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2151,17 +2157,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2154 "configure"
+#line 2160 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2158: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2164: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2164: \$? = $ac_status" >&5
+  echo "$as_me:2170: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2198,7 +2204,7 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:2201: result: $CPP" >&5
+echo "$as_me:2207: result: $CPP" >&5
 echo "${ECHO_T}$CPP" >&6
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -2208,18 +2214,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2211 "configure"
+#line 2217 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2216: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2222: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2222: \$? = $ac_status" >&5
+  echo "$as_me:2228: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2242,17 +2248,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2245 "configure"
+#line 2251 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2249: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2255: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2255: \$? = $ac_status" >&5
+  echo "$as_me:2261: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2280,7 +2286,7 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:2283: error: C preprocessor \"$CPP\" fails sanity check" >&5
+  { { echo "$as_me:2289: error: C preprocessor \"$CPP\" fails sanity check" >&5
 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -2293,14 +2299,14 @@
 ac_main_return=return
 
 if test $ac_cv_c_compiler_gnu = yes; then
-    echo "$as_me:2296: checking whether $CC needs -traditional" >&5
+    echo "$as_me:2302: checking whether $CC needs -traditional" >&5
 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
 if test "${ac_cv_prog_gcc_traditional+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
     ac_pattern="Autoconf.*'x'"
   cat >conftest.$ac_ext <<_ACEOF
-#line 2303 "configure"
+#line 2309 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 int Autoconf = TIOCGETP;
@@ -2315,7 +2321,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat >conftest.$ac_ext <<_ACEOF
-#line 2318 "configure"
+#line 2324 "configure"
 #include "confdefs.h"
 #include <termio.h>
 int Autoconf = TCGETA;
@@ -2328,14 +2334,14 @@
 
   fi
 fi
-echo "$as_me:2331: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:2337: result: $ac_cv_prog_gcc_traditional" >&5
 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
 fi
 
-echo "$as_me:2338: checking whether $CC understands -c and -o together" >&5
+echo "$as_me:2344: checking whether $CC understands -c and -o together" >&5
 echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
 if test "${cf_cv_prog_CC_c_o+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2351,15 +2357,15 @@
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:2354: \"$ac_try\"") >&5
+if { (eval echo "$as_me:2360: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2357: \$? = $ac_status" >&5
+  echo "$as_me:2363: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-  test -f conftest2.$ac_objext && { (eval echo "$as_me:2359: \"$ac_try\"") >&5
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:2365: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2362: \$? = $ac_status" >&5
+  echo "$as_me:2368: \$? = $ac_status" >&5
   (exit $ac_status); };
 then
   eval cf_cv_prog_CC_c_o=yes
@@ -2370,19 +2376,19 @@
 
 fi
 if test $cf_cv_prog_CC_c_o = yes; then
-  echo "$as_me:2373: result: yes" >&5
+  echo "$as_me:2379: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:2376: result: no" >&5
+  echo "$as_me:2382: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:2380: checking for POSIXized ISC" >&5
+echo "$as_me:2386: checking for POSIXized ISC" >&5
 echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
 if test -d /etc/conf/kconfig.d &&
    grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
-  echo "$as_me:2385: result: yes" >&5
+  echo "$as_me:2391: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   ISC=yes # If later tests want to check for ISC.
 
@@ -2396,12 +2402,12 @@
     CC="$CC -Xp"
   fi
 else
-  echo "$as_me:2399: result: no" >&5
+  echo "$as_me:2405: result: no" >&5
 echo "${ECHO_T}no" >&6
   ISC=
 fi
 
-echo "$as_me:2404: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "$as_me:2410: checking for ${CC-cc} option to accept ANSI C" >&5
 echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
 if test "${cf_cv_ansi_cc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2495,7 +2501,7 @@
 fi
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 2498 "configure"
+#line 2504 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2516,16 +2522,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2519: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2525: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2522: \$? = $ac_status" >&5
+  echo "$as_me:2528: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2525: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2531: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2528: \$? = $ac_status" >&5
+  echo "$as_me:2534: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2538,7 +2544,7 @@
 CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
-echo "$as_me:2541: result: $cf_cv_ansi_cc" >&5
+echo "$as_me:2547: result: $cf_cv_ansi_cc" >&5
 echo "${ECHO_T}$cf_cv_ansi_cc" >&6
 
 if test "$cf_cv_ansi_cc" != "no"; then
@@ -2621,7 +2627,7 @@
 fi
 
 if test "$cf_cv_ansi_cc" = "no"; then
-	{ { echo "$as_me:2624: error: Your compiler does not appear to recognize prototypes.
+	{ { echo "$as_me:2630: error: Your compiler does not appear to recognize prototypes.
 You have the following choices:
 	a. adjust your compiler options
 	b. get an up-to-date compiler
@@ -2661,7 +2667,7 @@
 *) LDPATH=$PATH:/sbin:/usr/sbin
   # Extract the first word of "ldconfig", so it can be a program name with args.
 set dummy ldconfig; ac_word=$2
-echo "$as_me:2664: checking for $ac_word" >&5
+echo "$as_me:2670: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_LDCONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2678,7 +2684,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
-   echo "$as_me:2681: found $ac_dir/$ac_word" >&5
+   echo "$as_me:2687: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -2689,10 +2695,10 @@
 LDCONFIG=$ac_cv_path_LDCONFIG
 
 if test -n "$LDCONFIG"; then
-  echo "$as_me:2692: result: $LDCONFIG" >&5
+  echo "$as_me:2698: result: $LDCONFIG" >&5
 echo "${ECHO_T}$LDCONFIG" >&6
 else
-  echo "$as_me:2695: result: no" >&5
+  echo "$as_me:2701: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2700,7 +2706,7 @@
 esac
 fi
 
-echo "$as_me:2703: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:2709: checking if you want to ensure bool is consistent with C++" >&5
 echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
 
 # Check whether --with-cxx or --without-cxx was given.
@@ -2710,7 +2716,7 @@
 else
   cf_with_cxx=yes
 fi;
-echo "$as_me:2713: result: $cf_with_cxx" >&5
+echo "$as_me:2719: result: $cf_with_cxx" >&5
 echo "${ECHO_T}$cf_with_cxx" >&6
 if test "X$cf_with_cxx" = Xno ; then
 	CXX=""
@@ -2728,7 +2734,7 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:2731: checking for $ac_word" >&5
+echo "$as_me:2737: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2743,7 +2749,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-echo "$as_me:2746: found $ac_dir/$ac_word" >&5
+echo "$as_me:2752: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2751,10 +2757,10 @@
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  echo "$as_me:2754: result: $CXX" >&5
+  echo "$as_me:2760: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:2757: result: no" >&5
+  echo "$as_me:2763: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2767,7 +2773,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:2770: checking for $ac_word" >&5
+echo "$as_me:2776: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2782,7 +2788,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CXX="$ac_prog"
-echo "$as_me:2785: found $ac_dir/$ac_word" >&5
+echo "$as_me:2791: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2790,10 +2796,10 @@
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  echo "$as_me:2793: result: $ac_ct_CXX" >&5
+  echo "$as_me:2799: result: $ac_ct_CXX" >&5
 echo "${ECHO_T}$ac_ct_CXX" >&6
 else
-  echo "$as_me:2796: result: no" >&5
+  echo "$as_me:2802: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2805,32 +2811,32 @@
 fi
 
 # Provide some information about the compiler.
-echo "$as_me:2808:" \
+echo "$as_me:2814:" \
      "checking for C++ compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:2811: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2817: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2814: \$? = $ac_status" >&5
+  echo "$as_me:2820: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2816: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2822: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2819: \$? = $ac_status" >&5
+  echo "$as_me:2825: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2821: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2827: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2824: \$? = $ac_status" >&5
+  echo "$as_me:2830: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:2827: checking whether we are using the GNU C++ compiler" >&5
+echo "$as_me:2833: checking whether we are using the GNU C++ compiler" >&5
 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 2833 "configure"
+#line 2839 "configure"
 #include "confdefs.h"
 
 int
@@ -2845,16 +2851,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2848: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2854: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2851: \$? = $ac_status" >&5
+  echo "$as_me:2857: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2854: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2860: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2857: \$? = $ac_status" >&5
+  echo "$as_me:2863: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -2866,19 +2872,19 @@
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:2869: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "$as_me:2875: result: $ac_cv_cxx_compiler_gnu" >&5
 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
 GXX=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
 CXXFLAGS="-g"
-echo "$as_me:2875: checking whether $CXX accepts -g" >&5
+echo "$as_me:2881: checking whether $CXX accepts -g" >&5
 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
 if test "${ac_cv_prog_cxx_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 2881 "configure"
+#line 2887 "configure"
 #include "confdefs.h"
 
 int
@@ -2890,16 +2896,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2893: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2899: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2896: \$? = $ac_status" >&5
+  echo "$as_me:2902: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2899: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2905: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2902: \$? = $ac_status" >&5
+  echo "$as_me:2908: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cxx_g=yes
 else
@@ -2909,7 +2915,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:2912: result: $ac_cv_prog_cxx_g" >&5
+echo "$as_me:2918: result: $ac_cv_prog_cxx_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
@@ -2936,7 +2942,7 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 2939 "configure"
+#line 2945 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -2949,16 +2955,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2952: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2958: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2955: \$? = $ac_status" >&5
+  echo "$as_me:2961: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2958: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2964: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2961: \$? = $ac_status" >&5
+  echo "$as_me:2967: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -2968,7 +2974,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 2971 "configure"
+#line 2977 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -2980,16 +2986,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2983: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2989: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2986: \$? = $ac_status" >&5
+  echo "$as_me:2992: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2989: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2995: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2992: \$? = $ac_status" >&5
+  echo "$as_me:2998: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -3016,7 +3022,7 @@
 	if test "$CXX" = "g++" ; then
 		# Extract the first word of "g++", so it can be a program name with args.
 set dummy g++; ac_word=$2
-echo "$as_me:3019: checking for $ac_word" >&5
+echo "$as_me:3025: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3033,7 +3039,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_CXX="$ac_dir/$ac_word"
-   echo "$as_me:3036: found $ac_dir/$ac_word" >&5
+   echo "$as_me:3042: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -3044,16 +3050,16 @@
 CXX=$ac_cv_path_CXX
 
 if test -n "$CXX"; then
-  echo "$as_me:3047: result: $CXX" >&5
+  echo "$as_me:3053: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:3050: result: no" >&5
+  echo "$as_me:3056: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 	fi
 	if test "$CXX" = "g++" ; then
-		{ echo "$as_me:3056: WARNING: ignoring hardcoded g++" >&5
+		{ echo "$as_me:3062: WARNING: ignoring hardcoded g++" >&5
 echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
 		cf_with_cxx=no; CXX=""; GXX="";
 	fi
@@ -3061,11 +3067,11 @@
 
 GXX_VERSION=none
 if test "$GXX" = yes; then
-	echo "$as_me:3064: checking version of g++" >&5
+	echo "$as_me:3070: checking version of g++" >&5
 echo $ECHO_N "checking version of g++... $ECHO_C" >&6
 	GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
 	test -z "$GXX_VERSION" && GXX_VERSION=unknown
-	echo "$as_me:3068: result: $GXX_VERSION" >&5
+	echo "$as_me:3074: result: $GXX_VERSION" >&5
 echo "${ECHO_T}$GXX_VERSION" >&6
 fi
 
@@ -3073,12 +3079,12 @@
 1*|2.[0-6]*)
 	# GXX=""; CXX=""; ac_cv_prog_gxx=no
 	# cf_cxx_library=no
-	{ echo "$as_me:3076: WARNING: templates do not work" >&5
+	{ echo "$as_me:3082: WARNING: templates do not work" >&5
 echo "$as_me: WARNING: templates do not work" >&2;}
 	;;
 esac
 
-echo "$as_me:3081: checking if you want to build C++ binding and demo" >&5
+echo "$as_me:3087: checking if you want to build C++ binding and demo" >&5
 echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
 
 # Check whether --with-cxx-binding or --without-cxx-binding was given.
@@ -3088,10 +3094,10 @@
 else
   cf_with_cxx_binding=$cf_with_cxx
 fi;
-echo "$as_me:3091: result: $cf_with_cxx_binding" >&5
+echo "$as_me:3097: result: $cf_with_cxx_binding" >&5
 echo "${ECHO_T}$cf_with_cxx_binding" >&6
 
-echo "$as_me:3094: checking if you want to build with Ada95" >&5
+echo "$as_me:3100: checking if you want to build with Ada95" >&5
 echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
 
 # Check whether --with-ada or --without-ada was given.
@@ -3101,10 +3107,10 @@
 else
   cf_with_ada=yes
 fi;
-echo "$as_me:3104: result: $cf_with_ada" >&5
+echo "$as_me:3110: result: $cf_with_ada" >&5
 echo "${ECHO_T}$cf_with_ada" >&6
 
-echo "$as_me:3107: checking if you want to build programs such as tic" >&5
+echo "$as_me:3113: checking if you want to build programs such as tic" >&5
 echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
 
 # Check whether --with-progs or --without-progs was given.
@@ -3114,10 +3120,10 @@
 else
   cf_with_progs=yes
 fi;
-echo "$as_me:3117: result: $cf_with_progs" >&5
+echo "$as_me:3123: result: $cf_with_progs" >&5
 echo "${ECHO_T}$cf_with_progs" >&6
 
-echo "$as_me:3120: checking if you wish to install curses.h" >&5
+echo "$as_me:3126: checking if you wish to install curses.h" >&5
 echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
 
 # Check whether --with-curses-h or --without-curses-h was given.
@@ -3127,7 +3133,7 @@
 else
   with_curses_h=yes
 fi;
-echo "$as_me:3130: result: $with_curses_h" >&5
+echo "$as_me:3136: result: $with_curses_h" >&5
 echo "${ECHO_T}$with_curses_h" >&6
 
 modules_to_build="ncurses"
@@ -3153,7 +3159,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3156: checking for $ac_word" >&5
+echo "$as_me:3162: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3168,7 +3174,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:3171: found $ac_dir/$ac_word" >&5
+echo "$as_me:3177: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3176,21 +3182,21 @@
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:3179: result: $AWK" >&5
+  echo "$as_me:3185: result: $AWK" >&5
 echo "${ECHO_T}$AWK" >&6
 else
-  echo "$as_me:3182: result: no" >&5
+  echo "$as_me:3188: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
   test -n "$AWK" && break
 done
 
-test -z "$AWK" && { { echo "$as_me:3189: error: No awk program found" >&5
+test -z "$AWK" && { { echo "$as_me:3195: error: No awk program found" >&5
 echo "$as_me: error: No awk program found" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:3193: checking for egrep" >&5
+echo "$as_me:3199: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 if test "${ac_cv_prog_egrep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3200,11 +3206,11 @@
     else ac_cv_prog_egrep='egrep'
     fi
 fi
-echo "$as_me:3203: result: $ac_cv_prog_egrep" >&5
+echo "$as_me:3209: result: $ac_cv_prog_egrep" >&5
 echo "${ECHO_T}$ac_cv_prog_egrep" >&6
  EGREP=$ac_cv_prog_egrep
 
-test -z "$EGREP" && { { echo "$as_me:3207: error: No egrep program found" >&5
+test -z "$EGREP" && { { echo "$as_me:3213: error: No egrep program found" >&5
 echo "$as_me: error: No egrep program found" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -3220,7 +3226,7 @@
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:3223: checking for a BSD compatible install" >&5
+echo "$as_me:3229: checking for a BSD compatible install" >&5
 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
@@ -3269,7 +3275,7 @@
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:3272: result: $INSTALL" >&5
+echo "$as_me:3278: result: $INSTALL" >&5
 echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -3294,7 +3300,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3297: checking for $ac_word" >&5
+echo "$as_me:3303: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_LINT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3309,7 +3315,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:3312: found $ac_dir/$ac_word" >&5
+echo "$as_me:3318: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3317,57 +3323,91 @@
 fi
 LINT=$ac_cv_prog_LINT
 if test -n "$LINT"; then
-  echo "$as_me:3320: result: $LINT" >&5
+  echo "$as_me:3326: result: $LINT" >&5
 echo "${ECHO_T}$LINT" >&6
 else
-  echo "$as_me:3323: result: no" >&5
+  echo "$as_me:3329: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
   test -n "$LINT" && break
 done
 
-echo "$as_me:3330: checking whether ln -s works" >&5
+echo "$as_me:3336: checking whether ln -s works" >&5
 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  echo "$as_me:3334: result: yes" >&5
+  echo "$as_me:3340: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:3337: result: no, using $LN_S" >&5
+  echo "$as_me:3343: result: no, using $LN_S" >&5
 echo "${ECHO_T}no, using $LN_S" >&6
 fi
 
-echo "$as_me:3341: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+echo "$as_me:3347: checking for long file names" >&5
+echo $ECHO_N "checking for long file names... $ECHO_C" >&6
+if test "${ac_cv_sys_long_file_names+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.make <<\EOF
-all:
-	@echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
+  ac_cv_sys_long_file_names=yes
+# Test for long file names in all the places we know might matter:
+#      .		the current directory, where building will happen
+#      $prefix/lib	where we will be installing things
+#      $exec_prefix/lib	likewise
+# eval it to expand exec_prefix.
+#      $TMPDIR		if set, where it might want to write temporary files
+# if $TMPDIR is not set:
+#      /tmp		where it might want to write temporary files
+#      /var/tmp		likewise
+#      /usr/tmp		likewise
+if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
+  ac_tmpdirs=$TMPDIR
 else
-  eval ac_cv_prog_make_${ac_make}_set=no
+  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
 fi
-rm -f conftest.make
+for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
+  test -d $ac_dir || continue
+  test -w $ac_dir || continue # It is less confusing to not echo anything here.
+  ac_xdir=$ac_dir/cf$$
+  (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue
+  ac_tf1=$ac_xdir/conftest9012345
+  ac_tf2=$ac_xdir/conftest9012346
+  (echo 1 >$ac_tf1) 2>/dev/null
+  (echo 2 >$ac_tf2) 2>/dev/null
+  ac_val=`cat $ac_tf1 2>/dev/null`
+  if test ! -f $ac_tf1 || test "$ac_val" != 1; then
+    ac_cv_sys_long_file_names=no
+    rm -rf $ac_xdir 2>/dev/null
+    break
+  fi
+  rm -rf $ac_xdir 2>/dev/null
+done
 fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:3361: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-  SET_MAKE=
-else
-  echo "$as_me:3365: result: no" >&5
-echo "${ECHO_T}no" >&6
-  SET_MAKE="MAKE=${MAKE-make}"
+echo "$as_me:3386: result: $ac_cv_sys_long_file_names" >&5
+echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
+if test $ac_cv_sys_long_file_names = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_LONG_FILE_NAMES 1
+EOF
+
 fi
 
-echo "$as_me:3370: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3396: checking if we should assume mixed-case filenames" >&5
+echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
+
+# Check whether --enable-mixed-case or --disable-mixed-case was given.
+if test "${enable_mixed_case+set}" = set; then
+  enableval="$enable_mixed_case"
+  enable_mixedcase=$enableval
+else
+  enable_mixedcase=auto
+fi;
+echo "$as_me:3406: result: $enable_mixedcase" >&5
+echo "${ECHO_T}$enable_mixedcase" >&6
+if test "$enable_mixedcase" = "auto" ; then
+
+echo "$as_me:3410: checking if filesystem supports mixed-case filenames" >&5
 echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
 if test "${cf_cv_mixedcase+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3394,15 +3434,55 @@
 fi
 
 fi
-echo "$as_me:3397: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3437: result: $cf_cv_mixedcase" >&5
 echo "${ECHO_T}$cf_cv_mixedcase" >&6
 test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
 #define MIXEDCASE_FILENAMES 1
 EOF
 
+else
+    cf_cv_mixedcase=$enable_mixedcase
+    if test "$enable_mixedcase" = "yes" ; then
+        cat >>confdefs.h <<\EOF
+#define MIXEDCASE_FILENAMES 1
+EOF
+
+    fi
+fi
+
+# do this after mixed-case option (tags/TAGS is not as important as tic).
+echo "$as_me:3454: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\EOF
+all:
+	@echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:3474: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:3478: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
 # Extract the first word of "ctags", so it can be a program name with args.
 set dummy ctags; ac_word=$2
-echo "$as_me:3405: checking for $ac_word" >&5
+echo "$as_me:3485: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3417,7 +3497,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3420: found $ac_dir/$ac_word" >&5
+echo "$as_me:3500: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3426,17 +3506,17 @@
 fi
 MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
 if test -n "$MAKE_LOWER_TAGS"; then
-  echo "$as_me:3429: result: $MAKE_LOWER_TAGS" >&5
+  echo "$as_me:3509: result: $MAKE_LOWER_TAGS" >&5
 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
 else
-  echo "$as_me:3432: result: no" >&5
+  echo "$as_me:3512: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 if test "$cf_cv_mixedcase" = yes ; then
 	# Extract the first word of "etags", so it can be a program name with args.
 set dummy etags; ac_word=$2
-echo "$as_me:3439: checking for $ac_word" >&5
+echo "$as_me:3519: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3451,7 +3531,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3454: found $ac_dir/$ac_word" >&5
+echo "$as_me:3534: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3460,10 +3540,10 @@
 fi
 MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
 if test -n "$MAKE_UPPER_TAGS"; then
-  echo "$as_me:3463: result: $MAKE_UPPER_TAGS" >&5
+  echo "$as_me:3543: result: $MAKE_UPPER_TAGS" >&5
 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
 else
-  echo "$as_me:3466: result: no" >&5
+  echo "$as_me:3546: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3483,7 +3563,7 @@
 	MAKE_LOWER_TAGS="#"
 fi
 
-echo "$as_me:3486: checking for makeflags variable" >&5
+echo "$as_me:3566: checking for makeflags variable" >&5
 echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
 if test "${cf_cv_makeflags+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3517,95 +3597,13 @@
 	rm -f cf_makeflags.tmp
 
 fi
-echo "$as_me:3520: result: $cf_cv_makeflags" >&5
+echo "$as_me:3600: result: $cf_cv_makeflags" >&5
 echo "${ECHO_T}$cf_cv_makeflags" >&6
 
-echo "$as_me:3523: checking for long file names" >&5
-echo $ECHO_N "checking for long file names... $ECHO_C" >&6
-if test "${ac_cv_sys_long_file_names+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_sys_long_file_names=yes
-# Test for long file names in all the places we know might matter:
-#      .		the current directory, where building will happen
-#      $prefix/lib	where we will be installing things
-#      $exec_prefix/lib	likewise
-# eval it to expand exec_prefix.
-#      $TMPDIR		if set, where it might want to write temporary files
-# if $TMPDIR is not set:
-#      /tmp		where it might want to write temporary files
-#      /var/tmp		likewise
-#      /usr/tmp		likewise
-if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
-  ac_tmpdirs=$TMPDIR
-else
-  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
-fi
-for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
-  test -d $ac_dir || continue
-  test -w $ac_dir || continue # It is less confusing to not echo anything here.
-  ac_xdir=$ac_dir/cf$$
-  (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue
-  ac_tf1=$ac_xdir/conftest9012345
-  ac_tf2=$ac_xdir/conftest9012346
-  (echo 1 >$ac_tf1) 2>/dev/null
-  (echo 2 >$ac_tf2) 2>/dev/null
-  ac_val=`cat $ac_tf1 2>/dev/null`
-  if test ! -f $ac_tf1 || test "$ac_val" != 1; then
-    ac_cv_sys_long_file_names=no
-    rm -rf $ac_xdir 2>/dev/null
-    break
-  fi
-  rm -rf $ac_xdir 2>/dev/null
-done
-fi
-echo "$as_me:3562: result: $ac_cv_sys_long_file_names" >&5
-echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
-if test $ac_cv_sys_long_file_names = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_LONG_FILE_NAMES 1
-EOF
-
-fi
-
-echo "$as_me:3572: checking if filesystem supports mixed-case filenames" >&5
-echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
-if test "${cf_cv_mixedcase+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test "$cross_compiling" = yes ; then
-	case $target_alias in #(vi
-	*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
-		cf_cv_mixedcase=no
-		;;
-	*)
-		cf_cv_mixedcase=yes
-		;;
-	esac
-else
-	rm -f conftest CONFTEST
-	echo test >conftest
-	if test -f CONFTEST ; then
-		cf_cv_mixedcase=no
-	else
-		cf_cv_mixedcase=yes
-	fi
-	rm -f conftest CONFTEST
-fi
-
-fi
-echo "$as_me:3599: result: $cf_cv_mixedcase" >&5
-echo "${ECHO_T}$cf_cv_mixedcase" >&6
-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
-#define MIXEDCASE_FILENAMES 1
-EOF
-
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3608: checking for $ac_word" >&5
+echo "$as_me:3606: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3620,7 +3618,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:3623: found $ac_dir/$ac_word" >&5
+echo "$as_me:3621: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3628,10 +3626,10 @@
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:3631: result: $RANLIB" >&5
+  echo "$as_me:3629: result: $RANLIB" >&5
 echo "${ECHO_T}$RANLIB" >&6
 else
-  echo "$as_me:3634: result: no" >&5
+  echo "$as_me:3632: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3640,7 +3638,7 @@
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo "$as_me:3643: checking for $ac_word" >&5
+echo "$as_me:3641: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3655,7 +3653,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:3658: found $ac_dir/$ac_word" >&5
+echo "$as_me:3656: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3664,10 +3662,10 @@
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:3667: result: $ac_ct_RANLIB" >&5
+  echo "$as_me:3665: result: $ac_ct_RANLIB" >&5
 echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  echo "$as_me:3670: result: no" >&5
+  echo "$as_me:3668: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3679,7 +3677,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:3682: checking for $ac_word" >&5
+echo "$as_me:3680: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3694,7 +3692,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_LD="${ac_tool_prefix}ld"
-echo "$as_me:3697: found $ac_dir/$ac_word" >&5
+echo "$as_me:3695: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3702,10 +3700,10 @@
 fi
 LD=$ac_cv_prog_LD
 if test -n "$LD"; then
-  echo "$as_me:3705: result: $LD" >&5
+  echo "$as_me:3703: result: $LD" >&5
 echo "${ECHO_T}$LD" >&6
 else
-  echo "$as_me:3708: result: no" >&5
+  echo "$as_me:3706: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3714,7 +3712,7 @@
   ac_ct_LD=$LD
   # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
-echo "$as_me:3717: checking for $ac_word" >&5
+echo "$as_me:3715: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3729,7 +3727,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:3732: found $ac_dir/$ac_word" >&5
+echo "$as_me:3730: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3738,10 +3736,10 @@
 fi
 ac_ct_LD=$ac_cv_prog_ac_ct_LD
 if test -n "$ac_ct_LD"; then
-  echo "$as_me:3741: result: $ac_ct_LD" >&5
+  echo "$as_me:3739: result: $ac_ct_LD" >&5
 echo "${ECHO_T}$ac_ct_LD" >&6
 else
-  echo "$as_me:3744: result: no" >&5
+  echo "$as_me:3742: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3753,7 +3751,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3756: checking for $ac_word" >&5
+echo "$as_me:3754: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3768,7 +3766,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:3771: found $ac_dir/$ac_word" >&5
+echo "$as_me:3769: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3776,10 +3774,10 @@
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  echo "$as_me:3779: result: $AR" >&5
+  echo "$as_me:3777: result: $AR" >&5
 echo "${ECHO_T}$AR" >&6
 else
-  echo "$as_me:3782: result: no" >&5
+  echo "$as_me:3780: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3788,7 +3786,7 @@
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo "$as_me:3791: checking for $ac_word" >&5
+echo "$as_me:3789: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3803,7 +3801,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3806: found $ac_dir/$ac_word" >&5
+echo "$as_me:3804: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3812,10 +3810,10 @@
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  echo "$as_me:3815: result: $ac_ct_AR" >&5
+  echo "$as_me:3813: result: $ac_ct_AR" >&5
 echo "${ECHO_T}$ac_ct_AR" >&6
 else
-  echo "$as_me:3818: result: no" >&5
+  echo "$as_me:3816: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3828,7 +3826,7 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-echo "$as_me:3831: checking for archiver options (symbol AR_OPTS)" >&5
+echo "$as_me:3829: checking for archiver options (symbol AR_OPTS)" >&5
 echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
 
 if test -z "$AR_OPTS" ; then
@@ -3837,12 +3835,12 @@
 fi
 
 cf_cv_subst_AR_OPTS=$AR_OPTS
-echo "$as_me:3840: result: $AR_OPTS" >&5
+echo "$as_me:3838: result: $AR_OPTS" >&5
 echo "${ECHO_T}$AR_OPTS" >&6
 
 fi
 
-echo "$as_me:3845: checking if you have specified an install-prefix" >&5
+echo "$as_me:3843: checking if you have specified an install-prefix" >&5
 echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
 
 # Check whether --with-install-prefix or --without-install-prefix was given.
@@ -3855,7 +3853,7 @@
 		;;
 	esac
 fi;
-echo "$as_me:3858: result: $DESTDIR" >&5
+echo "$as_me:3856: result: $DESTDIR" >&5
 echo "${ECHO_T}$DESTDIR" >&6
 
 ###############################################################################
@@ -3883,7 +3881,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3886: checking for $ac_word" >&5
+echo "$as_me:3884: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_BUILD_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3898,7 +3896,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:3901: found $ac_dir/$ac_word" >&5
+echo "$as_me:3899: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3906,10 +3904,10 @@
 fi
 BUILD_CC=$ac_cv_prog_BUILD_CC
 if test -n "$BUILD_CC"; then
-  echo "$as_me:3909: result: $BUILD_CC" >&5
+  echo "$as_me:3907: result: $BUILD_CC" >&5
 echo "${ECHO_T}$BUILD_CC" >&6
 else
-  echo "$as_me:3912: result: no" >&5
+  echo "$as_me:3910: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3917,12 +3915,12 @@
 done
 
 fi;
-	echo "$as_me:3920: checking for native build C compiler" >&5
+	echo "$as_me:3918: checking for native build C compiler" >&5
 echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
-	echo "$as_me:3922: result: $BUILD_CC" >&5
+	echo "$as_me:3920: result: $BUILD_CC" >&5
 echo "${ECHO_T}$BUILD_CC" >&6
 
-	echo "$as_me:3925: checking for native build C preprocessor" >&5
+	echo "$as_me:3923: checking for native build C preprocessor" >&5
 echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
 
 # Check whether --with-build-cpp or --without-build-cpp was given.
@@ -3932,10 +3930,10 @@
 else
   BUILD_CPP='${BUILD_CC} -E'
 fi;
-	echo "$as_me:3935: result: $BUILD_CPP" >&5
+	echo "$as_me:3933: result: $BUILD_CPP" >&5
 echo "${ECHO_T}$BUILD_CPP" >&6
 
-	echo "$as_me:3938: checking for native build C flags" >&5
+	echo "$as_me:3936: checking for native build C flags" >&5
 echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
 
 # Check whether --with-build-cflags or --without-build-cflags was given.
@@ -3943,10 +3941,10 @@
   withval="$with_build_cflags"
   BUILD_CFLAGS="$withval"
 fi;
-	echo "$as_me:3946: result: $BUILD_CFLAGS" >&5
+	echo "$as_me:3944: result: $BUILD_CFLAGS" >&5
 echo "${ECHO_T}$BUILD_CFLAGS" >&6
 
-	echo "$as_me:3949: checking for native build C preprocessor-flags" >&5
+	echo "$as_me:3947: checking for native build C preprocessor-flags" >&5
 echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
 
 # Check whether --with-build-cppflags or --without-build-cppflags was given.
@@ -3954,10 +3952,10 @@
   withval="$with_build_cppflags"
   BUILD_CPPFLAGS="$withval"
 fi;
-	echo "$as_me:3957: result: $BUILD_CPPFLAGS" >&5
+	echo "$as_me:3955: result: $BUILD_CPPFLAGS" >&5
 echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
 
-	echo "$as_me:3960: checking for native build linker-flags" >&5
+	echo "$as_me:3958: checking for native build linker-flags" >&5
 echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
 
 # Check whether --with-build-ldflags or --without-build-ldflags was given.
@@ -3965,10 +3963,10 @@
   withval="$with_build_ldflags"
   BUILD_LDFLAGS="$withval"
 fi;
-	echo "$as_me:3968: result: $BUILD_LDFLAGS" >&5
+	echo "$as_me:3966: result: $BUILD_LDFLAGS" >&5
 echo "${ECHO_T}$BUILD_LDFLAGS" >&6
 
-	echo "$as_me:3971: checking for native build linker-libraries" >&5
+	echo "$as_me:3969: checking for native build linker-libraries" >&5
 echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
 
 # Check whether --with-build-libs or --without-build-libs was given.
@@ -3976,7 +3974,7 @@
   withval="$with_build_libs"
   BUILD_LIBS="$withval"
 fi;
-	echo "$as_me:3979: result: $BUILD_LIBS" >&5
+	echo "$as_me:3977: result: $BUILD_LIBS" >&5
 echo "${ECHO_T}$BUILD_LIBS" >&6
 
 	# this assumes we're on Unix.
@@ -3986,7 +3984,7 @@
 	: ${BUILD_CC:='${CC}'}
 
 	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
-		{ { echo "$as_me:3989: error: Cross-build requires two compilers.
+		{ { echo "$as_me:3987: error: Cross-build requires two compilers.
 Use --with-build-cc to specify the native compiler." >&5
 echo "$as_me: error: Cross-build requires two compilers.
 Use --with-build-cc to specify the native compiler." >&2;}
@@ -4023,11 +4021,11 @@
 # doing:
 LIB_CLEAN=
 LIB_COMPILE=
-LIB_LINK=
+LIB_LINK='${CC}'
 LIB_INSTALL=
 LIB_UNINSTALL=
 
-echo "$as_me:4030: checking if you want to build libraries with libtool" >&5
+echo "$as_me:4028: checking if you want to build libraries with libtool" >&5
 echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
 
 # Check whether --with-libtool or --without-libtool was given.
@@ -4037,7 +4035,7 @@
 else
   with_libtool=no
 fi;
-echo "$as_me:4040: result: $with_libtool" >&5
+echo "$as_me:4038: result: $with_libtool" >&5
 echo "${ECHO_T}$with_libtool" >&6
 if test "$with_libtool" != "no"; then
 
@@ -4068,7 +4066,7 @@
   with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:4071: error: expected a pathname, not \"$with_libtool\"" >&5
+  { { echo "$as_me:4069: error: expected a pathname, not \"$with_libtool\"" >&5
 echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -4078,7 +4076,7 @@
 	else
  		# Extract the first word of "libtool", so it can be a program name with args.
 set dummy libtool; ac_word=$2
-echo "$as_me:4081: checking for $ac_word" >&5
+echo "$as_me:4079: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_LIBTOOL+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4095,7 +4093,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
-   echo "$as_me:4098: found $ac_dir/$ac_word" >&5
+   echo "$as_me:4096: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -4106,42 +4104,42 @@
 LIBTOOL=$ac_cv_path_LIBTOOL
 
 if test -n "$LIBTOOL"; then
-  echo "$as_me:4109: result: $LIBTOOL" >&5
+  echo "$as_me:4107: result: $LIBTOOL" >&5
 echo "${ECHO_T}$LIBTOOL" >&6
 else
-  echo "$as_me:4112: result: no" >&5
+  echo "$as_me:4110: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
  	fi
  	if test -z "$LIBTOOL" ; then
- 		{ { echo "$as_me:4118: error: Cannot find libtool" >&5
+ 		{ { echo "$as_me:4116: error: Cannot find libtool" >&5
 echo "$as_me: error: Cannot find libtool" >&2;}
    { (exit 1); exit 1; }; }
  	fi
-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
-	LIB_OBJECT='${OBJECTS}.o=.lo)'
+	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
+	LIB_OBJECT='${OBJECTS:.o=.lo}'
 	LIB_SUFFIX=.la
 	LIB_CLEAN='${LIBTOOL} --mode=clean'
 	LIB_COMPILE='${LIBTOOL} --mode=compile'
-	LIB_LINK='${LIBTOOL} --mode=link'
+	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
 	LIB_INSTALL='${LIBTOOL} --mode=install'
 	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
 	LIB_PREP=:
 
 	# Show the version of libtool
-	echo "$as_me:4133: checking version of libtool" >&5
+	echo "$as_me:4131: checking version of libtool" >&5
 echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
 
 	# Save the version in a cache variable - this is not entirely a good
 	# thing, but the version string from libtool is very ugly, and for
 	# bug reports it might be useful to have the original string.
-	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-	echo "$as_me:4140: result: $cf_cv_libtool_version" >&5
+	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
+	echo "$as_me:4138: result: $cf_cv_libtool_version" >&5
 echo "${ECHO_T}$cf_cv_libtool_version" >&6
 	if test -z "$cf_cv_libtool_version" ; then
-		{ { echo "$as_me:4143: error: This is not libtool" >&5
-echo "$as_me: error: This is not libtool" >&2;}
+		{ { echo "$as_me:4141: error: This is not GNU libtool" >&5
+echo "$as_me: error: This is not GNU libtool" >&2;}
    { (exit 1); exit 1; }; }
 	fi
 
@@ -4149,6 +4147,7 @@
 	case $cf_cv_libtool_version in
 	1.[5-9]*|[2-9]*)
 		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
+		LIBTOOL="$LIBTOOL --tag=CC"
 		;;
 	*)
 		LIBTOOL_CXX="$LIBTOOL"
@@ -4167,7 +4166,7 @@
 
 else
 
-echo "$as_me:4170: checking if you want to build shared libraries" >&5
+echo "$as_me:4169: checking if you want to build shared libraries" >&5
 echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
 
 # Check whether --with-shared or --without-shared was given.
@@ -4177,11 +4176,11 @@
 else
   with_shared=no
 fi;
-echo "$as_me:4180: result: $with_shared" >&5
+echo "$as_me:4179: result: $with_shared" >&5
 echo "${ECHO_T}$with_shared" >&6
 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
 
-echo "$as_me:4184: checking if you want to build static libraries" >&5
+echo "$as_me:4183: checking if you want to build static libraries" >&5
 echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
 
 # Check whether --with-normal or --without-normal was given.
@@ -4191,11 +4190,11 @@
 else
   with_normal=yes
 fi;
-echo "$as_me:4194: result: $with_normal" >&5
+echo "$as_me:4193: result: $with_normal" >&5
 echo "${ECHO_T}$with_normal" >&6
 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
 
-echo "$as_me:4198: checking if you want to build debug libraries" >&5
+echo "$as_me:4197: checking if you want to build debug libraries" >&5
 echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
 
 # Check whether --with-debug or --without-debug was given.
@@ -4205,11 +4204,11 @@
 else
   with_debug=yes
 fi;
-echo "$as_me:4208: result: $with_debug" >&5
+echo "$as_me:4207: result: $with_debug" >&5
 echo "${ECHO_T}$with_debug" >&6
 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
 
-echo "$as_me:4212: checking if you want to build profiling libraries" >&5
+echo "$as_me:4211: checking if you want to build profiling libraries" >&5
 echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
 
 # Check whether --with-profile or --without-profile was given.
@@ -4219,7 +4218,7 @@
 else
   with_profile=no
 fi;
-echo "$as_me:4222: result: $with_profile" >&5
+echo "$as_me:4221: result: $with_profile" >&5
 echo "${ECHO_T}$with_profile" >&6
 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
 
@@ -4227,23 +4226,25 @@
 
 ###############################################################################
 
-echo "$as_me:4230: checking for specified models" >&5
+echo "$as_me:4229: checking for specified models" >&5
 echo $ECHO_N "checking for specified models... $ECHO_C" >&6
 test -z "$cf_list_models" && cf_list_models=normal
 test "$with_libtool" != "no" && cf_list_models=libtool
-echo "$as_me:4234: result: $cf_list_models" >&5
+echo "$as_me:4233: result: $cf_list_models" >&5
 echo "${ECHO_T}$cf_list_models" >&6
 
 ### Use the first model as the default, and save its suffix for use in building
 ### up test-applications.
-echo "$as_me:4239: checking for default model" >&5
+echo "$as_me:4238: checking for default model" >&5
 echo $ECHO_N "checking for default model... $ECHO_C" >&6
 DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
-echo "$as_me:4242: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:4241: result: $DFT_LWR_MODEL" >&5
 echo "${ECHO_T}$DFT_LWR_MODEL" >&6
 
 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
+TICS_NAME=tic
+
 TINFO_NAME=tinfo
 
 LIB_NAME=ncurses
@@ -4264,7 +4265,7 @@
 
 ###############################################################################
 
-echo "$as_me:4267: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:4268: checking if you want to build a separate terminfo library" >&5
 echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
 
 # Check whether --with-termlib or --without-termlib was given.
@@ -4274,13 +4275,26 @@
 else
   with_termlib=no
 fi;
-echo "$as_me:4277: result: $with_termlib" >&5
+echo "$as_me:4278: result: $with_termlib" >&5
 echo "${ECHO_T}$with_termlib" >&6
 
+echo "$as_me:4281: checking if you want to build a separate tic library" >&5
+echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
+
+# Check whether --with-ticlib or --without-ticlib was given.
+if test "${with_ticlib+set}" = set; then
+  withval="$with_ticlib"
+  with_ticlib=$withval
+else
+  with_ticlib=no
+fi;
+echo "$as_me:4291: result: $with_ticlib" >&5
+echo "${ECHO_T}$with_ticlib" >&6
+
 ### Checks for special libraries, must be done up-front.
 SHLIB_LIST=""
 
-echo "$as_me:4283: checking if you want to link with the GPM mouse library" >&5
+echo "$as_me:4297: checking if you want to link with the GPM mouse library" >&5
 echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
 
 # Check whether --with-gpm or --without-gpm was given.
@@ -4290,27 +4304,27 @@
 else
   with_gpm=maybe
 fi;
-echo "$as_me:4293: result: $with_gpm" >&5
+echo "$as_me:4307: result: $with_gpm" >&5
 echo "${ECHO_T}$with_gpm" >&6
 
 if test "$with_gpm" != no ; then
-	echo "$as_me:4297: checking for gpm.h" >&5
+	echo "$as_me:4311: checking for gpm.h" >&5
 echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
 if test "${ac_cv_header_gpm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4303 "configure"
+#line 4317 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 _ACEOF
-if { (eval echo "$as_me:4307: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:4321: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:4313: \$? = $ac_status" >&5
+  echo "$as_me:4327: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4329,7 +4343,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:4332: result: $ac_cv_header_gpm_h" >&5
+echo "$as_me:4346: result: $ac_cv_header_gpm_h" >&5
 echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
 if test $ac_cv_header_gpm_h = yes; then
 
@@ -4340,12 +4354,14 @@
 		if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
 			test -n "$verbose" && echo "	assuming we really have GPM library" 1>&6
 
+echo "${as_me-configure}:4357: testing assuming we really have GPM library ..." 1>&5
+
 			cat >>confdefs.h <<\EOF
 #define HAVE_LIBGPM 1
 EOF
 
 		else
-			echo "$as_me:4348: checking for Gpm_Open in -lgpm" >&5
+			echo "$as_me:4364: checking for Gpm_Open in -lgpm" >&5
 echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
 if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4353,7 +4369,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4356 "configure"
+#line 4372 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4372,16 +4388,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4375: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4391: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4378: \$? = $ac_status" >&5
+  echo "$as_me:4394: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4381: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4397: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4384: \$? = $ac_status" >&5
+  echo "$as_me:4400: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_gpm_Gpm_Open=yes
 else
@@ -4392,13 +4408,13 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4395: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:4411: result: $ac_cv_lib_gpm_Gpm_Open" >&5
 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
 if test $ac_cv_lib_gpm_Gpm_Open = yes; then
   :
 else
 
-				{ { echo "$as_me:4401: error: Cannot link with GPM library" >&5
+				{ { echo "$as_me:4417: error: Cannot link with GPM library" >&5
 echo "$as_me: error: Cannot link with GPM library" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -4408,7 +4424,7 @@
 
 else
 
-		test "$with_gpm" != maybe && { echo "$as_me:4411: WARNING: Cannot find GPM header" >&5
+		test "$with_gpm" != maybe && { echo "$as_me:4427: WARNING: Cannot find GPM header" >&5
 echo "$as_me: WARNING: Cannot find GPM header" >&2;}
 		with_gpm=no
 
@@ -4417,7 +4433,7 @@
 fi
 
 if test "$with_gpm" != no ; then
-	echo "$as_me:4420: checking if you want to load GPM dynamically" >&5
+	echo "$as_me:4436: checking if you want to load GPM dynamically" >&5
 echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
 
 # Check whether --with-dlsym or --without-dlsym was given.
@@ -4427,18 +4443,18 @@
 else
   with_dlsym=yes
 fi;
-	echo "$as_me:4430: result: $with_dlsym" >&5
+	echo "$as_me:4446: result: $with_dlsym" >&5
 echo "${ECHO_T}$with_dlsym" >&6
 	if test "$with_dlsym" = yes ; then
 
 cf_have_dlsym=no
-echo "$as_me:4435: checking for dlsym" >&5
+echo "$as_me:4451: checking for dlsym" >&5
 echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
 if test "${ac_cv_func_dlsym+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4441 "configure"
+#line 4457 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dlsym (); below.  */
@@ -4469,16 +4485,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4472: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4488: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4475: \$? = $ac_status" >&5
+  echo "$as_me:4491: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4478: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4494: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4481: \$? = $ac_status" >&5
+  echo "$as_me:4497: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_dlsym=yes
 else
@@ -4488,14 +4504,14 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:4491: result: $ac_cv_func_dlsym" >&5
+echo "$as_me:4507: result: $ac_cv_func_dlsym" >&5
 echo "${ECHO_T}$ac_cv_func_dlsym" >&6
 if test $ac_cv_func_dlsym = yes; then
   cf_have_dlsym=yes
 else
 
 cf_have_libdl=no
-echo "$as_me:4498: checking for dlsym in -ldl" >&5
+echo "$as_me:4514: checking for dlsym in -ldl" >&5
 echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
 if test "${ac_cv_lib_dl_dlsym+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4503,7 +4519,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4506 "configure"
+#line 4522 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4522,16 +4538,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4525: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4541: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4528: \$? = $ac_status" >&5
+  echo "$as_me:4544: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4531: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4547: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4534: \$? = $ac_status" >&5
+  echo "$as_me:4550: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dl_dlsym=yes
 else
@@ -4542,7 +4558,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4545: result: $ac_cv_lib_dl_dlsym" >&5
+echo "$as_me:4561: result: $ac_cv_lib_dl_dlsym" >&5
 echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
 if test $ac_cv_lib_dl_dlsym = yes; then
 
@@ -4555,10 +4571,10 @@
 if test "$cf_have_dlsym" = yes ; then
 	test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
 
-	echo "$as_me:4558: checking whether able to link to dl*() functions" >&5
+	echo "$as_me:4574: checking whether able to link to dl*() functions" >&5
 echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 4561 "configure"
+#line 4577 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int
@@ -4576,16 +4592,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4579: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4595: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4582: \$? = $ac_status" >&5
+  echo "$as_me:4598: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4585: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4601: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4588: \$? = $ac_status" >&5
+  echo "$as_me:4604: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 		cat >>confdefs.h <<\EOF
@@ -4596,15 +4612,15 @@
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 
-		{ { echo "$as_me:4599: error: Cannot link test program for libdl" >&5
+		{ { echo "$as_me:4615: error: Cannot link test program for libdl" >&5
 echo "$as_me: error: Cannot link test program for libdl" >&2;}
    { (exit 1); exit 1; }; }
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-	echo "$as_me:4604: result: ok" >&5
+	echo "$as_me:4620: result: ok" >&5
 echo "${ECHO_T}ok" >&6
 else
-	{ { echo "$as_me:4607: error: Cannot find dlsym function" >&5
+	{ { echo "$as_me:4623: error: Cannot find dlsym function" >&5
 echo "$as_me: error: Cannot find dlsym function" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -4612,10 +4628,12 @@
 		if test "$with_gpm" != yes ; then
 			test -n "$verbose" && echo "	assuming soname for gpm is $with_gpm" 1>&6
 
+echo "${as_me-configure}:4631: testing assuming soname for gpm is $with_gpm ..." 1>&5
+
 			cf_cv_gpm_soname="$with_gpm"
 		else
 
-echo "$as_me:4618: checking for soname of gpm library" >&5
+echo "$as_me:4636: checking for soname of gpm library" >&5
 echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
 if test "${cf_cv_gpm_soname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4633,15 +4651,15 @@
 CF_EOF
 cf_save_LIBS="$LIBS"
 	LIBS="-lgpm $LIBS"
-	if { (eval echo "$as_me:4636: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:4654: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4639: \$? = $ac_status" >&5
+  echo "$as_me:4657: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
-		if { (eval echo "$as_me:4641: \"$ac_link\"") >&5
+		if { (eval echo "$as_me:4659: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4644: \$? = $ac_status" >&5
+  echo "$as_me:4662: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
 			cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
 			test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
@@ -4652,7 +4670,7 @@
 fi
 
 fi
-echo "$as_me:4655: result: $cf_cv_gpm_soname" >&5
+echo "$as_me:4673: result: $cf_cv_gpm_soname" >&5
 echo "${ECHO_T}$cf_cv_gpm_soname" >&6
 
 		fi
@@ -4668,7 +4686,7 @@
 #define HAVE_LIBGPM 1
 EOF
 
-	echo "$as_me:4671: checking for Gpm_Wgetch in -lgpm" >&5
+echo "$as_me:4689: checking for Gpm_Wgetch in -lgpm" >&5
 echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
 if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4676,7 +4694,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4679 "configure"
+#line 4697 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4695,16 +4713,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4698: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4716: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4701: \$? = $ac_status" >&5
+  echo "$as_me:4719: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4704: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4722: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4707: \$? = $ac_status" >&5
+  echo "$as_me:4725: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_gpm_Gpm_Wgetch=yes
 else
@@ -4715,12 +4733,61 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4718: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+echo "$as_me:4736: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
 if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
 
-		{ echo "$as_me:4722: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+echo "$as_me:4740: checking if GPM is weakly bound to curses library" >&5
+echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
+if test "${cf_cv_check_gpm_wgetch+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cf_cv_check_gpm_wgetch=unknown
+if test "$cross_compiling" != yes ; then
+
+cat >conftest.$ac_ext <<CF_EOF
+#include <gpm.h>
+int main()
+{
+	Gpm_Wgetch();
+	${cf_cv_main_return:-return}(0);
+}
+CF_EOF
+
+	cf_save_LIBS="$LIBS"
+	# This only works if we can look at the symbol table.  If a shared
+	# library is stripped for install, we cannot use that.  So we're forced
+	# to rely on the static library, noting that some packagers may not
+	# include it.
+	LIBS="-static -lgpm -dynamic $LIBS"
+	if { (eval echo "$as_me:4764: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4767: \$? = $ac_status" >&5
+  (exit $ac_status); } ; then
+		if { (eval echo "$as_me:4769: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4772: \$? = $ac_status" >&5
+  (exit $ac_status); } ; then
+			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
+			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
+			test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
+		fi
+	fi
+	rm -f conftest*
+	LIBS="$cf_save_LIBS"
+fi
+
+fi
+echo "$as_me:4784: result: $cf_cv_check_gpm_wgetch" >&5
+echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
+
+if test "$cf_cv_check_gpm_wgetch" != yes ; then
+	{ echo "$as_me:4788: WARNING: GPM library is already linked with curses - read the FAQ" >&5
 echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
+fi
 
 fi
 
@@ -4728,7 +4795,7 @@
 
 # not everyone has "test -c"
 if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:4731: checking if you want to use sysmouse" >&5
+echo "$as_me:4798: checking if you want to use sysmouse" >&5
 echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
 
 # Check whether --with-sysmouse or --without-sysmouse was given.
@@ -4740,7 +4807,7 @@
 fi;
 	if test "$cf_with_sysmouse" != no ; then
 	cat >conftest.$ac_ext <<_ACEOF
-#line 4743 "configure"
+#line 4810 "configure"
 #include "confdefs.h"
 
 #include <osreldate.h>
@@ -4763,16 +4830,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4766: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4833: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4769: \$? = $ac_status" >&5
+  echo "$as_me:4836: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4772: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4839: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4775: \$? = $ac_status" >&5
+  echo "$as_me:4842: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_with_sysmouse=yes
 else
@@ -4782,7 +4849,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 	fi
-echo "$as_me:4785: result: $cf_with_sysmouse" >&5
+echo "$as_me:4852: result: $cf_with_sysmouse" >&5
 echo "${ECHO_T}$cf_with_sysmouse" >&6
 test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
 #define USE_SYSMOUSE 1
@@ -4800,7 +4867,7 @@
 	test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
 fi
 
-echo "$as_me:4803: checking for default loader flags" >&5
+echo "$as_me:4870: checking for default loader flags" >&5
 echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
 case $DFT_LWR_MODEL in
 libtool) LD_MODEL=''   ;;
@@ -4809,10 +4876,12 @@
 profile) LD_MODEL='-pg';;
 shared)  LD_MODEL=''   ;;
 esac
-echo "$as_me:4812: result: $LD_MODEL" >&5
+echo "$as_me:4879: result: $LD_MODEL" >&5
 echo "${ECHO_T}$LD_MODEL" >&6
 
-echo "$as_me:4815: checking if rpath option should be used" >&5
+case $DFT_LWR_MODEL in
+shared)
+echo "$as_me:4884: checking if rpath option should be used" >&5
 echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
 
 # Check whether --enable-rpath or --disable-rpath was given.
@@ -4822,8 +4891,22 @@
 else
   cf_cv_ld_rpath=no
 fi;
-echo "$as_me:4825: result: $cf_cv_ld_rpath" >&5
+echo "$as_me:4894: result: $cf_cv_ld_rpath" >&5
 echo "${ECHO_T}$cf_cv_ld_rpath" >&6
+echo "$as_me:4896: checking if shared libraries should be relinked during install" >&5
+echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
+
+# Check whether --enable-relink or --disable-relink was given.
+if test "${enable_relink+set}" = set; then
+  enableval="$enable_relink"
+  cf_cv_do_relink=$enableval
+else
+  cf_cv_do_relink=yes
+fi;
+echo "$as_me:4906: result: $cf_cv_do_relink" >&5
+echo "${ECHO_T}$cf_cv_do_relink" >&6
+	;;
+esac
 
 	LOCAL_LDFLAGS=
 	LOCAL_LDFLAGS2=
@@ -4832,7 +4915,7 @@
 
 	cf_cv_do_symlinks=no
 
-	echo "$as_me:4835: checking if release/abi version should be used for shared libs" >&5
+	echo "$as_me:4918: checking if release/abi version should be used for shared libs" >&5
 echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
 
 # Check whether --with-shlib-version or --without-shlib-version was given.
@@ -4847,7 +4930,7 @@
 		cf_cv_shlib_version=$withval
 		;;
 	*)
-		{ { echo "$as_me:4850: error: option value must be one of: rel, abi, auto or no" >&5
+		{ { echo "$as_me:4933: error: option value must be one of: rel, abi, auto or no" >&5
 echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
    { (exit 1); exit 1; }; }
 		;;
@@ -4856,7 +4939,7 @@
 else
   cf_cv_shlib_version=auto
 fi;
-	echo "$as_me:4859: result: $cf_cv_shlib_version" >&5
+	echo "$as_me:4942: result: $cf_cv_shlib_version" >&5
 echo "${ECHO_T}$cf_cv_shlib_version" >&6
 
 	cf_cv_rm_so_locs=no
@@ -4865,14 +4948,14 @@
 	CC_SHARED_OPTS=
 	if test "$GCC" = yes
 	then
-		echo "$as_me:4868: checking which $CC option to use" >&5
+		echo "$as_me:4951: checking which $CC option to use" >&5
 echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
 		cf_save_CFLAGS="$CFLAGS"
 		for CC_SHARED_OPTS in -fPIC -fpic ''
 		do
 			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
 			cat >conftest.$ac_ext <<_ACEOF
-#line 4875 "configure"
+#line 4958 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -4884,16 +4967,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4887: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4970: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4890: \$? = $ac_status" >&5
+  echo "$as_me:4973: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4893: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4976: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4896: \$? = $ac_status" >&5
+  echo "$as_me:4979: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -4902,7 +4985,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		done
-		echo "$as_me:4905: result: $CC_SHARED_OPTS" >&5
+		echo "$as_me:4988: result: $CC_SHARED_OPTS" >&5
 echo "${ECHO_T}$CC_SHARED_OPTS" >&6
 		CFLAGS="$cf_save_CFLAGS"
 	fi
@@ -4915,17 +4998,30 @@
 		;;
 	cygwin*)
 		CC_SHARED_OPTS=
-		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
+		MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
 		cf_cv_shlib_version=cygdll
 		cf_cv_shlib_version_infix=cygdll
+		cat >mk_shared_lib.sh <<-CF_EOF
+		#!/bin/sh
+		SHARED_LIB=\$1
+		IMPORT_LIB=\`echo "\$1" | sed -e 's/cyg/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\`
+		shift
+		cat <<-EOF
+		Linking shared library
+		** SHARED_LIB \$SHARED_LIB
+		** IMPORT_LIB \$IMPORT_LIB
+EOF
+		exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
+CF_EOF
+		chmod +x mk_shared_lib.sh
 		;;
 	darwin*)
 		EXTRA_CFLAGS="-no-cpp-precomp"
 		CC_SHARED_OPTS="-dynamic"
-		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
+		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
 		cf_cv_shlib_version_infix=yes
-		echo "$as_me:4928: checking if ld -search_paths_first works" >&5
+		echo "$as_me:5024: checking if ld -search_paths_first works" >&5
 echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
 if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4934,7 +5030,7 @@
 			cf_save_LDFLAGS=$LDFLAGS
 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
 			cat >conftest.$ac_ext <<_ACEOF
-#line 4937 "configure"
+#line 5033 "configure"
 #include "confdefs.h"
 
 int
@@ -4946,16 +5042,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4949: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5045: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4952: \$? = $ac_status" >&5
+  echo "$as_me:5048: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4955: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5051: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4958: \$? = $ac_status" >&5
+  echo "$as_me:5054: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_ldflags_search_paths_first=yes
 else
@@ -4966,7 +5062,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 				LDFLAGS=$cf_save_LDFLAGS
 fi
-echo "$as_me:4969: result: $cf_cv_ldflags_search_paths_first" >&5
+echo "$as_me:5065: result: $cf_cv_ldflags_search_paths_first" >&5
 echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
 		if test $cf_cv_ldflags_search_paths_first = yes; then
 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
@@ -5021,11 +5117,11 @@
 
 		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $@'
 		;;
-	openbsd2*)
+	openbsd[2-9].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
 		MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $@.${ABI_VERSION}` -o $@'
 		;;
-	openbsd*|freebsd[23]*)
+	openbsd*|freebsd[12].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
 		MK_SHARED_LIB='${LD} -Bshareable -o $@'
 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
@@ -5120,9 +5216,7 @@
 		;;
 	solaris2*)
 		# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
-		if test "$GCC" != yes; then
-			CC_SHARED_OPTS='-KPIC'
-		fi
+		# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
 		if test "$DFT_LWR_MODEL" = "shared" ; then
 			LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
@@ -5139,7 +5233,12 @@
 		cf_shared_soname='`basename $@`'
 	fi
 
-		MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $@'
+		if test "$GCC" != yes; then
+			CC_SHARED_OPTS='-xcode=pic32'
+			MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $@'
+		else
+			MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_shared_soname' -o $@'
+		fi
 		;;
 	sysv5uw7*|unix_sv*)
 		# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
@@ -5162,7 +5261,7 @@
 			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
 			;;
 		*)
-			{ echo "$as_me:5165: WARNING: ignored --with-shlib-version" >&5
+			{ echo "$as_me:5264: WARNING: ignored --with-shlib-version" >&5
 echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
 			;;
 		esac
@@ -5170,12 +5269,12 @@
 	esac
 
 	if test -n "$cf_ld_rpath_opt" ; then
-		echo "$as_me:5173: checking if we need a space after rpath option" >&5
+		echo "$as_me:5272: checking if we need a space after rpath option" >&5
 echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
 		cf_save_LIBS="$LIBS"
 		LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 5178 "configure"
+#line 5277 "configure"
 #include "confdefs.h"
 
 int
@@ -5187,16 +5286,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5190: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5289: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5193: \$? = $ac_status" >&5
+  echo "$as_me:5292: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5196: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5295: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5199: \$? = $ac_status" >&5
+  echo "$as_me:5298: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_rpath_space=no
 else
@@ -5206,7 +5305,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 		LIBS="$cf_save_LIBS"
-		echo "$as_me:5209: result: $cf_rpath_space" >&5
+		echo "$as_me:5308: result: $cf_rpath_space" >&5
 echo "${ECHO_T}$cf_rpath_space" >&6
 		test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
 		MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
@@ -5215,7 +5314,7 @@
 if test "$CC_SHARED_OPTS" = "unknown"; then
 	for model in $cf_list_models; do
 		if test "$model" = "shared"; then
-			{ { echo "$as_me:5218: error: Shared libraries are not supported in this version" >&5
+			{ { echo "$as_me:5317: error: Shared libraries are not supported in this version" >&5
 echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -5225,7 +5324,7 @@
 ###############################################################################
 
 ###	use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:5228: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:5327: checking if you wish to install ncurses overwriting curses" >&5
 echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
 
 # Check whether --enable-overwrite or --disable-overwrite was given.
@@ -5235,10 +5334,10 @@
 else
   if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
 fi;
-echo "$as_me:5238: result: $with_overwrite" >&5
+echo "$as_me:5337: result: $with_overwrite" >&5
 echo "${ECHO_T}$with_overwrite" >&6
 
-echo "$as_me:5241: checking if external terminfo-database is used" >&5
+echo "$as_me:5340: checking if external terminfo-database is used" >&5
 echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
 
 # Check whether --enable-database or --disable-database was given.
@@ -5248,7 +5347,7 @@
 else
   use_database=yes
 fi;
-echo "$as_me:5251: result: $use_database" >&5
+echo "$as_me:5350: result: $use_database" >&5
 echo "${ECHO_T}$use_database" >&6
 
 case $host_os in #(vi
@@ -5270,7 +5369,7 @@
 #define USE_DATABASE 1
 EOF
 
-	echo "$as_me:5273: checking which terminfo source-file will be installed" >&5
+	echo "$as_me:5372: checking which terminfo source-file will be installed" >&5
 echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
 
 # Check whether --enable-database or --disable-database was given.
@@ -5278,10 +5377,10 @@
   enableval="$enable_database"
   TERMINFO_SRC=$withval
 fi;
-	echo "$as_me:5281: result: $TERMINFO_SRC" >&5
+	echo "$as_me:5380: result: $TERMINFO_SRC" >&5
 echo "${ECHO_T}$TERMINFO_SRC" >&6
 
-	echo "$as_me:5284: checking whether to use hashed database instead of directory/tree" >&5
+	echo "$as_me:5383: checking whether to use hashed database instead of directory/tree" >&5
 echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
 
 # Check whether --with-hashed-db or --without-hashed-db was given.
@@ -5291,11 +5390,11 @@
 else
   with_hashed_db=no
 fi;
-	echo "$as_me:5294: result: $with_hashed_db" >&5
+	echo "$as_me:5393: result: $with_hashed_db" >&5
 echo "${ECHO_T}$with_hashed_db" >&6
 fi
 
-echo "$as_me:5298: checking for list of fallback descriptions" >&5
+echo "$as_me:5397: checking for list of fallback descriptions" >&5
 echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
 
 # Check whether --with-fallbacks or --without-fallbacks was given.
@@ -5305,11 +5404,11 @@
 else
   with_fallback=
 fi;
-echo "$as_me:5308: result: $with_fallback" >&5
+echo "$as_me:5407: result: $with_fallback" >&5
 echo "${ECHO_T}$with_fallback" >&6
 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
 
-echo "$as_me:5312: checking if you want modern xterm or antique" >&5
+echo "$as_me:5411: checking if you want modern xterm or antique" >&5
 echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
 
 # Check whether --with-xterm-new or --without-xterm-new was given.
@@ -5323,7 +5422,7 @@
 no)	with_xterm_new=xterm-old;;
 *)	with_xterm_new=xterm-new;;
 esac
-echo "$as_me:5326: result: $with_xterm_new" >&5
+echo "$as_me:5425: result: $with_xterm_new" >&5
 echo "${ECHO_T}$with_xterm_new" >&6
 WHICH_XTERM=$with_xterm_new
 
@@ -5333,7 +5432,7 @@
 	MAKE_TERMINFO="#"
 else
 
-echo "$as_me:5336: checking for list of terminfo directories" >&5
+echo "$as_me:5435: checking for list of terminfo directories" >&5
 echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
 
 # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
@@ -5373,7 +5472,7 @@
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5376: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:5475: error: expected a pathname, not \"$cf_src_path\"" >&5
 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -5386,13 +5485,13 @@
 
 eval 'TERMINFO_DIRS="$cf_dst_path"'
 
-echo "$as_me:5389: result: $TERMINFO_DIRS" >&5
+echo "$as_me:5488: result: $TERMINFO_DIRS" >&5
 echo "${ECHO_T}$TERMINFO_DIRS" >&6
 test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
 #define TERMINFO_DIRS "$TERMINFO_DIRS"
 EOF
 
-echo "$as_me:5395: checking for default terminfo directory" >&5
+echo "$as_me:5494: checking for default terminfo directory" >&5
 echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
 
 # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
@@ -5401,7 +5500,8 @@
 
 else
   withval="${TERMINFO-${datadir}/terminfo}"
-fi;
+fi; if test -n "${datadir}/terminfo" ; then
+
 if test "x$prefix" != xNONE; then
   cf_path_syntax="$prefix"
 else
@@ -5427,15 +5527,16 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5430: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:5530: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
 esac
 
+fi
 TERMINFO="$withval"
 
-echo "$as_me:5438: result: $TERMINFO" >&5
+echo "$as_me:5539: result: $TERMINFO" >&5
 echo "${ECHO_T}$TERMINFO" >&6
 cat >>confdefs.h <<EOF
 #define TERMINFO "$TERMINFO"
@@ -5445,7 +5546,7 @@
 
 ###	use option --disable-big-core to make tic run on small machines
 ###	We need 4Mb, check if we can allocate 50% more than that.
-echo "$as_me:5448: checking if big-core option selected" >&5
+echo "$as_me:5549: checking if big-core option selected" >&5
 echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
 
 # Check whether --enable-big-core or --disable-big-core was given.
@@ -5457,7 +5558,7 @@
   with_big_core=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5460 "configure"
+#line 5561 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -5471,15 +5572,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5474: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5575: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5477: \$? = $ac_status" >&5
+  echo "$as_me:5578: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:5479: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5580: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5482: \$? = $ac_status" >&5
+  echo "$as_me:5583: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   with_big_core=yes
 else
@@ -5491,14 +5592,32 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi;
-echo "$as_me:5494: result: $with_big_core" >&5
+echo "$as_me:5595: result: $with_big_core" >&5
 echo "${ECHO_T}$with_big_core" >&6
 test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_BIG_CORE 1
 EOF
 
+### ISO C only guarantees 512-char strings, we have tables which load faster
+### when constructed using "big" strings.
+echo "$as_me:5603: checking if big-strings option selected" >&5
+echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
+
+# Check whether --enable-big-strings or --disable-big-strings was given.
+if test "${enable_big_strings+set}" = set; then
+  enableval="$enable_big_strings"
+  with_big_strings=no
+else
+  with_big_strings=yes
+fi;
+echo "$as_me:5613: result: $with_big_strings" >&5
+echo "${ECHO_T}$with_big_strings" >&6
+
+USE_BIG_STRINGS=0
+test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
+
 ###	use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:5501: checking if you want termcap-fallback support" >&5
+echo "$as_me:5620: checking if you want termcap-fallback support" >&5
 echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
 
 # Check whether --enable-termcap or --disable-termcap was given.
@@ -5508,13 +5627,13 @@
 else
   with_termcap=no
 fi;
-echo "$as_me:5511: result: $with_termcap" >&5
+echo "$as_me:5630: result: $with_termcap" >&5
 echo "${ECHO_T}$with_termcap" >&6
 
 if test "$with_termcap" != "yes" ; then
 	if test "$use_database" = no ; then
 		if test -z "$with_fallback" ; then
-			{ { echo "$as_me:5517: error: You have disabled the database w/o specifying fallbacks" >&5
+			{ { echo "$as_me:5636: error: You have disabled the database w/o specifying fallbacks" >&5
 echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -5525,11 +5644,17 @@
 
 else
 
+if test "$with_ticlib" != no ; then
+	{ { echo "$as_me:5648: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
+echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
 cat >>confdefs.h <<\EOF
 #define USE_TERMCAP 1
 EOF
 
-echo "$as_me:5532: checking for list of termcap files" >&5
+echo "$as_me:5657: checking for list of termcap files" >&5
 echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
 
 # Check whether --with-termpath or --without-termpath was given.
@@ -5569,7 +5694,7 @@
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5572: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:5697: error: expected a pathname, not \"$cf_src_path\"" >&5
 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -5582,14 +5707,14 @@
 
 eval 'TERMPATH="$cf_dst_path"'
 
-echo "$as_me:5585: result: $TERMPATH" >&5
+echo "$as_me:5710: result: $TERMPATH" >&5
 echo "${ECHO_T}$TERMPATH" >&6
 test -n "$TERMPATH" && cat >>confdefs.h <<EOF
 #define TERMPATH "$TERMPATH"
 EOF
 
 ###	use option --enable-getcap to use a hacked getcap for reading termcaps
-echo "$as_me:5592: checking if fast termcap-loader is needed" >&5
+echo "$as_me:5717: checking if fast termcap-loader is needed" >&5
 echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
 
 # Check whether --enable-getcap or --disable-getcap was given.
@@ -5599,13 +5724,13 @@
 else
   with_getcap=no
 fi;
-echo "$as_me:5602: result: $with_getcap" >&5
+echo "$as_me:5727: result: $with_getcap" >&5
 echo "${ECHO_T}$with_getcap" >&6
 test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP 1
 EOF
 
-echo "$as_me:5608: checking if translated termcaps will be cached in ~/.terminfo" >&5
+echo "$as_me:5733: checking if translated termcaps will be cached in ~/.terminfo" >&5
 echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
 
 # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
@@ -5615,7 +5740,7 @@
 else
   with_getcap_cache=no
 fi;
-echo "$as_me:5618: result: $with_getcap_cache" >&5
+echo "$as_me:5743: result: $with_getcap_cache" >&5
 echo "${ECHO_T}$with_getcap_cache" >&6
 test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP_CACHE 1
@@ -5624,7 +5749,7 @@
 fi
 
 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:5627: checking if ~/.terminfo is wanted" >&5
+echo "$as_me:5752: checking if ~/.terminfo is wanted" >&5
 echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
 
 # Check whether --enable-home-terminfo or --disable-home-terminfo was given.
@@ -5634,13 +5759,13 @@
 else
   with_home_terminfo=yes
 fi;
-echo "$as_me:5637: result: $with_home_terminfo" >&5
+echo "$as_me:5762: result: $with_home_terminfo" >&5
 echo "${ECHO_T}$with_home_terminfo" >&6
 test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_HOME_TERMINFO 1
 EOF
 
-echo "$as_me:5643: checking if you want to use restricted environment when running as root" >&5
+echo "$as_me:5768: checking if you want to use restricted environment when running as root" >&5
 echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
 
 # Check whether --enable-root-environ or --disable-root-environ was given.
@@ -5650,7 +5775,7 @@
 else
   with_root_environ=yes
 fi;
-echo "$as_me:5653: result: $with_root_environ" >&5
+echo "$as_me:5778: result: $with_root_environ" >&5
 echo "${ECHO_T}$with_root_environ" >&6
 test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
 #define USE_ROOT_ENVIRON 1
@@ -5664,13 +5789,13 @@
 	unlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5667: checking for $ac_func" >&5
+echo "$as_me:5792: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5673 "configure"
+#line 5798 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5701,16 +5826,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5704: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5829: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5707: \$? = $ac_status" >&5
+  echo "$as_me:5832: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5710: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5835: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5713: \$? = $ac_status" >&5
+  echo "$as_me:5838: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5720,7 +5845,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5723: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5848: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -5737,13 +5862,13 @@
 		symlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5740: checking for $ac_func" >&5
+echo "$as_me:5865: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5746 "configure"
+#line 5871 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5774,16 +5899,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5777: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5902: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5780: \$? = $ac_status" >&5
+  echo "$as_me:5905: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5783: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5908: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5786: \$? = $ac_status" >&5
+  echo "$as_me:5911: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5793,7 +5918,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5796: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5921: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -5804,7 +5929,7 @@
 done
 
 else
-	echo "$as_me:5807: checking if link/symlink functions work" >&5
+	echo "$as_me:5932: checking if link/symlink functions work" >&5
 echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
 if test "${cf_cv_link_funcs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5817,7 +5942,7 @@
 			eval 'ac_cv_func_'$cf_func'=error'
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5820 "configure"
+#line 5945 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -5847,15 +5972,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5850: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5975: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5853: \$? = $ac_status" >&5
+  echo "$as_me:5978: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:5855: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5980: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5858: \$? = $ac_status" >&5
+  echo "$as_me:5983: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 			cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
@@ -5873,7 +5998,7 @@
 		test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
 
 fi
-echo "$as_me:5876: result: $cf_cv_link_funcs" >&5
+echo "$as_me:6001: result: $cf_cv_link_funcs" >&5
 echo "${ECHO_T}$cf_cv_link_funcs" >&6
 	test "$ac_cv_func_link"    = yes && cat >>confdefs.h <<\EOF
 #define HAVE_LINK 1
@@ -5891,7 +6016,7 @@
 # soft links (symbolic links) are useful for some systems where hard links do
 # not work, or to make it simpler to copy terminfo trees around.
 if test "$ac_cv_func_symlink" = yes ; then
-    echo "$as_me:5894: checking if tic should use symbolic links" >&5
+    echo "$as_me:6019: checking if tic should use symbolic links" >&5
 echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
 
 # Check whether --enable-symlinks or --disable-symlinks was given.
@@ -5901,21 +6026,21 @@
 else
   with_symlinks=no
 fi;
-    echo "$as_me:5904: result: $with_symlinks" >&5
+    echo "$as_me:6029: result: $with_symlinks" >&5
 echo "${ECHO_T}$with_symlinks" >&6
 fi
 
 # If we have hard links and did not choose to use soft links instead, there is
 # no reason to make this choice optional - use the hard links.
 if test "$with_symlinks" = no ; then
-    echo "$as_me:5911: checking if tic should use hard links" >&5
+    echo "$as_me:6036: checking if tic should use hard links" >&5
 echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
     if test "$ac_cv_func_link" = yes ; then
 	with_links=yes
     else
 	with_links=no
     fi
-    echo "$as_me:5918: result: $with_links" >&5
+    echo "$as_me:6043: result: $with_links" >&5
 echo "${ECHO_T}$with_links" >&6
 fi
 
@@ -5928,7 +6053,7 @@
 EOF
 
 ###   use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:5931: checking if you want broken-linker support code" >&5
+echo "$as_me:6056: checking if you want broken-linker support code" >&5
 echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
 
 # Check whether --enable-broken_linker or --disable-broken_linker was given.
@@ -5938,7 +6063,7 @@
 else
   with_broken_linker=${BROKEN_LINKER-no}
 fi;
-echo "$as_me:5941: result: $with_broken_linker" >&5
+echo "$as_me:6066: result: $with_broken_linker" >&5
 echo "${ECHO_T}$with_broken_linker" >&6
 
 BROKEN_LINKER=0
@@ -5958,12 +6083,14 @@
 		BROKEN_LINKER=1
 		test -n "$verbose" && echo "	cygwin linker is broken anyway" 1>&6
 
+echo "${as_me-configure}:6086: testing cygwin linker is broken anyway ..." 1>&5
+
 		;;
 	esac
 fi
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:5966: checking if tputs should process BSD-style prefix padding" >&5
+echo "$as_me:6093: checking if tputs should process BSD-style prefix padding" >&5
 echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
 
 # Check whether --enable-bsdpad or --disable-bsdpad was given.
@@ -5973,7 +6100,7 @@
 else
   with_bsdpad=no
 fi;
-echo "$as_me:5976: result: $with_bsdpad" >&5
+echo "$as_me:6103: result: $with_bsdpad" >&5
 echo "${ECHO_T}$with_bsdpad" >&6
 test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
 #define BSD_TPUTS 1
@@ -5990,7 +6117,7 @@
 
 # Check to define _XOPEN_SOURCE "automatically"
 
-echo "$as_me:5993: checking if $CC -U and -D options work together" >&5
+echo "$as_me:6120: checking if $CC -U and -D options work together" >&5
 echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
 if test "${cf_cv_cc_u_d_options+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5999,7 +6126,7 @@
 	cf_save_CPPFLAGS="$CPPFLAGS"
 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6002 "configure"
+#line 6129 "configure"
 #include "confdefs.h"
 
 int
@@ -6018,16 +6145,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6021: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6148: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6024: \$? = $ac_status" >&5
+  echo "$as_me:6151: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6027: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6154: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6030: \$? = $ac_status" >&5
+  echo "$as_me:6157: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	cf_cv_cc_u_d_options=yes
@@ -6041,7 +6168,7 @@
 	CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
-echo "$as_me:6044: result: $cf_cv_cc_u_d_options" >&5
+echo "$as_me:6171: result: $cf_cv_cc_u_d_options" >&5
 echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
 
 cf_XOPEN_SOURCE=500
@@ -6065,16 +6192,16 @@
 irix[56].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|k*bsd*-gnu) #(vi
 
-echo "$as_me:6070: checking if we must define _GNU_SOURCE" >&5
+echo "$as_me:6197: checking if we must define _GNU_SOURCE" >&5
 echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_gnu_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 6077 "configure"
+#line 6204 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6089,16 +6216,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6092: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6219: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6095: \$? = $ac_status" >&5
+  echo "$as_me:6222: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6098: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6225: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6101: \$? = $ac_status" >&5
+  echo "$as_me:6228: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_gnu_source=no
 else
@@ -6107,7 +6234,7 @@
 cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6110 "configure"
+#line 6237 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6122,16 +6249,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6125: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6252: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6128: \$? = $ac_status" >&5
+  echo "$as_me:6255: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6131: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6258: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6134: \$? = $ac_status" >&5
+  echo "$as_me:6261: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_gnu_source=no
 else
@@ -6146,7 +6273,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6149: result: $cf_cv_gnu_source" >&5
+echo "$as_me:6276: result: $cf_cv_gnu_source" >&5
 echo "${ECHO_T}$cf_cv_gnu_source" >&6
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 
@@ -6173,14 +6300,14 @@
 	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
 	;;
 *)
-	echo "$as_me:6176: checking if we should define _XOPEN_SOURCE" >&5
+	echo "$as_me:6303: checking if we should define _XOPEN_SOURCE" >&5
 echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_xopen_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6183 "configure"
+#line 6310 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6195,16 +6322,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6198: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6325: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6201: \$? = $ac_status" >&5
+  echo "$as_me:6328: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6204: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6331: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6207: \$? = $ac_status" >&5
+  echo "$as_me:6334: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_xopen_source=no
 else
@@ -6213,7 +6340,7 @@
 cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6216 "configure"
+#line 6343 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6228,16 +6355,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6231: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6358: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6234: \$? = $ac_status" >&5
+  echo "$as_me:6361: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6237: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6364: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6240: \$? = $ac_status" >&5
+  echo "$as_me:6367: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_xopen_source=no
 else
@@ -6252,7 +6379,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6255: result: $cf_cv_xopen_source" >&5
+echo "$as_me:6382: result: $cf_cv_xopen_source" >&5
 echo "${ECHO_T}$cf_cv_xopen_source" >&6
 	if test "$cf_cv_xopen_source" != no ; then
 
@@ -6286,16 +6413,16 @@
 	sed	-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
 		-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?$//g'`
 
-echo "$as_me:6289: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:6416: checking if we should define _POSIX_C_SOURCE" >&5
 echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_posix_c_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-echo "(line 6295) testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me-configure}:6422: testing if the symbol is already defined go no further ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6298 "configure"
+#line 6425 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6310,16 +6437,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6313: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6440: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6316: \$? = $ac_status" >&5
+  echo "$as_me:6443: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6319: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6446: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6322: \$? = $ac_status" >&5
+  echo "$as_me:6449: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_posix_c_source=no
 else
@@ -6340,7 +6467,7 @@
 	 esac
 	 if test "$cf_want_posix_source" = yes ; then
 		cat >conftest.$ac_ext <<_ACEOF
-#line 6343 "configure"
+#line 6470 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6355,16 +6482,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6358: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6485: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6361: \$? = $ac_status" >&5
+  echo "$as_me:6488: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6364: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6491: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6367: \$? = $ac_status" >&5
+  echo "$as_me:6494: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -6375,15 +6502,15 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 	 fi
 
-echo "(line 6378) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me-configure}:6505: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
 
 	 CFLAGS="$cf_trim_CFLAGS"
 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
 
-echo "(line 6383) testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me-configure}:6510: testing if the second compile does not leave our definition intact error ..." 1>&5
 
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6386 "configure"
+#line 6513 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6398,16 +6525,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6401: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6528: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6404: \$? = $ac_status" >&5
+  echo "$as_me:6531: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6407: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6534: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6410: \$? = $ac_status" >&5
+  echo "$as_me:6537: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -6423,7 +6550,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6426: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:6553: result: $cf_cv_posix_c_source" >&5
 echo "${ECHO_T}$cf_cv_posix_c_source" >&6
 
 if test "$cf_cv_posix_c_source" != no ; then
@@ -6442,14 +6569,14 @@
 
 # Work around breakage on OS X
 
-echo "$as_me:6445: checking if SIGWINCH is defined" >&5
+echo "$as_me:6572: checking if SIGWINCH is defined" >&5
 echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
 if test "${cf_cv_define_sigwinch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6452 "configure"
+#line 6579 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -6464,23 +6591,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6467: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6594: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6470: \$? = $ac_status" >&5
+  echo "$as_me:6597: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6473: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6600: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6476: \$? = $ac_status" >&5
+  echo "$as_me:6603: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_define_sigwinch=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 6483 "configure"
+#line 6610 "configure"
 #include "confdefs.h"
 
 #undef _XOPEN_SOURCE
@@ -6498,16 +6625,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6501: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6628: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6504: \$? = $ac_status" >&5
+  echo "$as_me:6631: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6507: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6634: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6510: \$? = $ac_status" >&5
+  echo "$as_me:6637: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_define_sigwinch=maybe
 else
@@ -6521,11 +6648,11 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6524: result: $cf_cv_define_sigwinch" >&5
+echo "$as_me:6651: result: $cf_cv_define_sigwinch" >&5
 echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
 
 if test "$cf_cv_define_sigwinch" = maybe ; then
-echo "$as_me:6528: checking for actual SIGWINCH definition" >&5
+echo "$as_me:6655: checking for actual SIGWINCH definition" >&5
 echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
 if test "${cf_cv_fixup_sigwinch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6536,7 +6663,7 @@
 while test $cf_sigwinch != 1
 do
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6539 "configure"
+#line 6666 "configure"
 #include "confdefs.h"
 
 #undef _XOPEN_SOURCE
@@ -6558,16 +6685,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6561: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6688: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6564: \$? = $ac_status" >&5
+  echo "$as_me:6691: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6567: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6694: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6570: \$? = $ac_status" >&5
+  echo "$as_me:6697: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_fixup_sigwinch=$cf_sigwinch
 	 break
@@ -6581,7 +6708,7 @@
 done
 
 fi
-echo "$as_me:6584: result: $cf_cv_fixup_sigwinch" >&5
+echo "$as_me:6711: result: $cf_cv_fixup_sigwinch" >&5
 echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
 
 	if test "$cf_cv_fixup_sigwinch" != unknown ; then
@@ -6591,13 +6718,13 @@
 
 # Checks for CODESET support.
 
-  echo "$as_me:6594: checking for nl_langinfo and CODESET" >&5
+  echo "$as_me:6721: checking for nl_langinfo and CODESET" >&5
 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
 if test "${am_cv_langinfo_codeset+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 6600 "configure"
+#line 6727 "configure"
 #include "confdefs.h"
 #include <langinfo.h>
 int
@@ -6609,16 +6736,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6612: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6739: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6615: \$? = $ac_status" >&5
+  echo "$as_me:6742: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6618: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6745: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6621: \$? = $ac_status" >&5
+  echo "$as_me:6748: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   am_cv_langinfo_codeset=yes
 else
@@ -6629,7 +6756,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:6632: result: $am_cv_langinfo_codeset" >&5
+echo "$as_me:6759: result: $am_cv_langinfo_codeset" >&5
 echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
   if test $am_cv_langinfo_codeset = yes; then
 
@@ -6643,7 +6770,7 @@
 NCURSES_OK_WCHAR_T=
 NCURSES_OK_WINT_T=
 
-echo "$as_me:6646: checking if you want wide-character code" >&5
+echo "$as_me:6773: checking if you want wide-character code" >&5
 echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
 
 # Check whether --enable-widec or --disable-widec was given.
@@ -6653,7 +6780,7 @@
 else
   with_widec=no
 fi;
-echo "$as_me:6656: result: $with_widec" >&5
+echo "$as_me:6783: result: $with_widec" >&5
 echo "${ECHO_T}$with_widec" >&6
 if test "$with_widec" = yes ; then
 	LIB_SUFFIX="w${LIB_SUFFIX}"
@@ -6661,10 +6788,10 @@
 #define USE_WIDEC_SUPPORT 1
 EOF
 
-echo "$as_me:6664: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+echo "$as_me:6791: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
 echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line 6667 "configure"
+#line 6794 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 
@@ -6680,16 +6807,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6683: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6810: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6686: \$? = $ac_status" >&5
+  echo "$as_me:6813: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6689: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6816: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6692: \$? = $ac_status" >&5
+  echo "$as_me:6819: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_result=no
 else
@@ -6698,16 +6825,16 @@
 cf_result=yes
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6701: result: $cf_result" >&5
+echo "$as_me:6828: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 
 if test "$cf_result" = yes ; then
 	CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
 elif test "x" != "x" ; then
-	echo "$as_me:6707: checking checking for compatible value versus " >&5
+	echo "$as_me:6834: checking checking for compatible value versus " >&5
 echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6710 "configure"
+#line 6837 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 
@@ -6723,16 +6850,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6726: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6853: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6729: \$? = $ac_status" >&5
+  echo "$as_me:6856: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6732: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6859: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6735: \$? = $ac_status" >&5
+  echo "$as_me:6862: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_result=yes
 else
@@ -6741,7 +6868,7 @@
 cf_result=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-	echo "$as_me:6744: result: $cf_result" >&5
+	echo "$as_me:6871: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 	if test "$cf_result" = no ; then
 		# perhaps we can override it - try...
@@ -6755,13 +6882,13 @@
 for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:6758: checking for $ac_func" >&5
+echo "$as_me:6885: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 6764 "configure"
+#line 6891 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -6792,16 +6919,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6795: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6922: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6798: \$? = $ac_status" >&5
+  echo "$as_me:6925: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6801: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6928: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6804: \$? = $ac_status" >&5
+  echo "$as_me:6931: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -6811,7 +6938,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:6814: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:6941: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -6823,7 +6950,7 @@
 
 	if test "$ac_cv_func_putwc" != yes ; then
 
-echo "$as_me:6826: checking for putwc in libutf8" >&5
+echo "$as_me:6953: checking for putwc in libutf8" >&5
 echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
 if test "${cf_cv_libutf8+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6832,7 +6959,7 @@
 	cf_save_LIBS="$LIBS"
 	LIBS="-lutf8 $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 6835 "configure"
+#line 6962 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -6845,16 +6972,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6848: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6975: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6851: \$? = $ac_status" >&5
+  echo "$as_me:6978: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6854: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6981: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6857: \$? = $ac_status" >&5
+  echo "$as_me:6984: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_libutf8=yes
 else
@@ -6866,7 +6993,7 @@
 	LIBS="$cf_save_LIBS"
 
 fi
-echo "$as_me:6869: result: $cf_cv_libutf8" >&5
+echo "$as_me:6996: result: $cf_cv_libutf8" >&5
 echo "${ECHO_T}$cf_cv_libutf8" >&6
 
 if test "$cf_cv_libutf8" = yes ; then
@@ -6883,14 +7010,14 @@
 	fi
 
 # This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:6886: checking if we must include wchar.h to declare mbstate_t" >&5
+echo "$as_me:7013: checking if we must include wchar.h to declare mbstate_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
 if test "${cf_cv_mbstate_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 6893 "configure"
+#line 7020 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -6908,23 +7035,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6911: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7038: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6914: \$? = $ac_status" >&5
+  echo "$as_me:7041: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6917: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7044: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6920: \$? = $ac_status" >&5
+  echo "$as_me:7047: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_mbstate_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 6927 "configure"
+#line 7054 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -6943,16 +7070,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6946: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7073: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6949: \$? = $ac_status" >&5
+  echo "$as_me:7076: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6952: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7079: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6955: \$? = $ac_status" >&5
+  echo "$as_me:7082: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_mbstate_t=yes
 else
@@ -6964,7 +7091,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:6967: result: $cf_cv_mbstate_t" >&5
+echo "$as_me:7094: result: $cf_cv_mbstate_t" >&5
 echo "${ECHO_T}$cf_cv_mbstate_t" >&6
 
 if test "$cf_cv_mbstate_t" = yes ; then
@@ -6981,14 +7108,14 @@
 fi
 
 # This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:6984: checking if we must include wchar.h to declare wchar_t" >&5
+echo "$as_me:7111: checking if we must include wchar.h to declare wchar_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
 if test "${cf_cv_wchar_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 6991 "configure"
+#line 7118 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7006,23 +7133,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7009: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7136: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7012: \$? = $ac_status" >&5
+  echo "$as_me:7139: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7015: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7142: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7018: \$? = $ac_status" >&5
+  echo "$as_me:7145: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wchar_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 7025 "configure"
+#line 7152 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7041,16 +7168,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7044: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7171: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7047: \$? = $ac_status" >&5
+  echo "$as_me:7174: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7050: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7177: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7053: \$? = $ac_status" >&5
+  echo "$as_me:7180: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wchar_t=yes
 else
@@ -7062,7 +7189,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7065: result: $cf_cv_wchar_t" >&5
+echo "$as_me:7192: result: $cf_cv_wchar_t" >&5
 echo "${ECHO_T}$cf_cv_wchar_t" >&6
 
 if test "$cf_cv_wchar_t" = yes ; then
@@ -7084,14 +7211,14 @@
 fi
 
 # This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:7087: checking if we must include wchar.h to declare wint_t" >&5
+echo "$as_me:7214: checking if we must include wchar.h to declare wint_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
 if test "${cf_cv_wint_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7094 "configure"
+#line 7221 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7109,23 +7236,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7112: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7239: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7115: \$? = $ac_status" >&5
+  echo "$as_me:7242: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7118: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7245: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7121: \$? = $ac_status" >&5
+  echo "$as_me:7248: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wint_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 7128 "configure"
+#line 7255 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7144,16 +7271,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7147: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7274: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7150: \$? = $ac_status" >&5
+  echo "$as_me:7277: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7153: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7280: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7156: \$? = $ac_status" >&5
+  echo "$as_me:7283: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wint_t=yes
 else
@@ -7165,7 +7292,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7168: result: $cf_cv_wint_t" >&5
+echo "$as_me:7295: result: $cf_cv_wint_t" >&5
 echo "${ECHO_T}$cf_cv_wint_t" >&6
 
 if test "$cf_cv_wint_t" = yes ; then
@@ -7204,7 +7331,7 @@
 	;;
 esac
 
-echo "$as_me:7207: checking whether to enable _LP64 definition in curses.h" >&5
+echo "$as_me:7334: checking whether to enable _LP64 definition in curses.h" >&5
 echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
 
 # Check whether --enable-lp64 or --disable-lp64 was given.
@@ -7214,7 +7341,7 @@
 else
   with_lp64=$default_with_lp64
 fi;
-echo "$as_me:7217: result: $with_lp64" >&5
+echo "$as_me:7344: result: $with_lp64" >&5
 echo "${ECHO_T}$with_lp64" >&6
 
 if test "$with_lp64" = yes ; then
@@ -7230,7 +7357,7 @@
 fi;
 if test "$enable_largefile" != no; then
 
-  echo "$as_me:7233: checking for special C compiler options needed for large files" >&5
+  echo "$as_me:7360: checking for special C compiler options needed for large files" >&5
 echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_largefile_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7242,7 +7369,7 @@
      	 # IRIX 6.2 and later do not support large files by default,
      	 # so use the C compiler's -n32 option if that helps.
          cat >conftest.$ac_ext <<_ACEOF
-#line 7245 "configure"
+#line 7372 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7262,16 +7389,16 @@
 }
 _ACEOF
      	 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7265: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7392: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7268: \$? = $ac_status" >&5
+  echo "$as_me:7395: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7271: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7398: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7274: \$? = $ac_status" >&5
+  echo "$as_me:7401: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7281,16 +7408,16 @@
 rm -f conftest.$ac_objext
      	 CC="$CC -n32"
      	 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7284: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7411: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7287: \$? = $ac_status" >&5
+  echo "$as_me:7414: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7290: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7417: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7293: \$? = $ac_status" >&5
+  echo "$as_me:7420: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_largefile_CC=' -n32'; break
 else
@@ -7304,13 +7431,13 @@
        rm -f conftest.$ac_ext
     fi
 fi
-echo "$as_me:7307: result: $ac_cv_sys_largefile_CC" >&5
+echo "$as_me:7434: result: $ac_cv_sys_largefile_CC" >&5
 echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  echo "$as_me:7313: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+  echo "$as_me:7440: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_file_offset_bits+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7318,7 +7445,7 @@
   while :; do
   ac_cv_sys_file_offset_bits=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 7321 "configure"
+#line 7448 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7338,16 +7465,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7341: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7468: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7344: \$? = $ac_status" >&5
+  echo "$as_me:7471: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7347: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7474: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7350: \$? = $ac_status" >&5
+  echo "$as_me:7477: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7356,7 +7483,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 7359 "configure"
+#line 7486 "configure"
 #include "confdefs.h"
 #define _FILE_OFFSET_BITS 64
 #include <sys/types.h>
@@ -7377,16 +7504,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7380: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7507: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7383: \$? = $ac_status" >&5
+  echo "$as_me:7510: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7386: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7513: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7389: \$? = $ac_status" >&5
+  echo "$as_me:7516: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_file_offset_bits=64; break
 else
@@ -7397,7 +7524,7 @@
   break
 done
 fi
-echo "$as_me:7400: result: $ac_cv_sys_file_offset_bits" >&5
+echo "$as_me:7527: result: $ac_cv_sys_file_offset_bits" >&5
 echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
 if test "$ac_cv_sys_file_offset_bits" != no; then
 
@@ -7407,7 +7534,7 @@
 
 fi
 rm -f conftest*
-  echo "$as_me:7410: checking for _LARGE_FILES value needed for large files" >&5
+  echo "$as_me:7537: checking for _LARGE_FILES value needed for large files" >&5
 echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_large_files+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7415,7 +7542,7 @@
   while :; do
   ac_cv_sys_large_files=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 7418 "configure"
+#line 7545 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7435,16 +7562,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7438: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7565: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7441: \$? = $ac_status" >&5
+  echo "$as_me:7568: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7444: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7571: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7447: \$? = $ac_status" >&5
+  echo "$as_me:7574: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7453,7 +7580,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 7456 "configure"
+#line 7583 "configure"
 #include "confdefs.h"
 #define _LARGE_FILES 1
 #include <sys/types.h>
@@ -7474,16 +7601,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7477: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7604: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7480: \$? = $ac_status" >&5
+  echo "$as_me:7607: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7483: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7610: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7486: \$? = $ac_status" >&5
+  echo "$as_me:7613: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_large_files=1; break
 else
@@ -7494,7 +7621,7 @@
   break
 done
 fi
-echo "$as_me:7497: result: $ac_cv_sys_large_files" >&5
+echo "$as_me:7624: result: $ac_cv_sys_large_files" >&5
 echo "${ECHO_T}$ac_cv_sys_large_files" >&6
 if test "$ac_cv_sys_large_files" != no; then
 
@@ -7507,7 +7634,7 @@
 fi
 
     if test "$enable_largefile" != no ; then
-	echo "$as_me:7510: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+	echo "$as_me:7637: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_largefile_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7515,7 +7642,7 @@
   while :; do
   ac_cv_sys_largefile_source=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 7518 "configure"
+#line 7645 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -7527,16 +7654,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7530: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7657: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7533: \$? = $ac_status" >&5
+  echo "$as_me:7660: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7536: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7663: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7539: \$? = $ac_status" >&5
+  echo "$as_me:7666: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7545,7 +7672,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 7548 "configure"
+#line 7675 "configure"
 #include "confdefs.h"
 #define _LARGEFILE_SOURCE 1
 #include <stdio.h>
@@ -7558,16 +7685,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7561: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7688: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7564: \$? = $ac_status" >&5
+  echo "$as_me:7691: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7567: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7694: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7570: \$? = $ac_status" >&5
+  echo "$as_me:7697: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_largefile_source=1; break
 else
@@ -7578,7 +7705,7 @@
   break
 done
 fi
-echo "$as_me:7581: result: $ac_cv_sys_largefile_source" >&5
+echo "$as_me:7708: result: $ac_cv_sys_largefile_source" >&5
 echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
 if test "$ac_cv_sys_largefile_source" != no; then
 
@@ -7592,13 +7719,13 @@
 # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
 # in glibc 2.1.3, but that breaks too many other things.
 # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-echo "$as_me:7595: checking for fseeko" >&5
+echo "$as_me:7722: checking for fseeko" >&5
 echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
 if test "${ac_cv_func_fseeko+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 7601 "configure"
+#line 7728 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -7610,16 +7737,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7613: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7740: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7616: \$? = $ac_status" >&5
+  echo "$as_me:7743: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7619: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7746: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7622: \$? = $ac_status" >&5
+  echo "$as_me:7749: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_fseeko=yes
 else
@@ -7629,7 +7756,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:7632: result: $ac_cv_func_fseeko" >&5
+echo "$as_me:7759: result: $ac_cv_func_fseeko" >&5
 echo "${ECHO_T}$ac_cv_func_fseeko" >&6
 if test $ac_cv_func_fseeko = yes; then
 
@@ -7648,15 +7775,16 @@
 	# the config.h
 	test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
 
-	echo "$as_me:7652: checking whether to use struct dirent64" >&5
+	echo "$as_me:7780: checking whether to use struct dirent64" >&5
 echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
 if test "${cf_cv_struct_dirent64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 		cat >conftest.$ac_ext <<_ACEOF
-#line 7659 "configure"
+#line 7787 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -7677,16 +7805,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7680: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7808: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7683: \$? = $ac_status" >&5
+  echo "$as_me:7811: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7686: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7814: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7689: \$? = $ac_status" >&5
+  echo "$as_me:7817: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_struct_dirent64=yes
 else
@@ -7697,7 +7825,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:7700: result: $cf_cv_struct_dirent64" >&5
+echo "$as_me:7828: result: $cf_cv_struct_dirent64" >&5
 echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
 	test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_STRUCT_DIRENT64 1
@@ -7706,7 +7834,7 @@
     fi
 
 ###   use option --disable-tparm-varargs to make tparm() conform to X/Open
-echo "$as_me:7709: checking if you want tparm not to use X/Open fixed-parameter list" >&5
+echo "$as_me:7837: checking if you want tparm not to use X/Open fixed-parameter list" >&5
 echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
 
 # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
@@ -7716,13 +7844,13 @@
 else
   with_tparm_varargs=yes
 fi;
-echo "$as_me:7719: result: $with_tparm_varargs" >&5
+echo "$as_me:7847: result: $with_tparm_varargs" >&5
 echo "${ECHO_T}$with_tparm_varargs" >&6
 NCURSES_TPARM_VARARGS=0
 test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
 
 ###   use option --with-bool to override bool's type
-echo "$as_me:7725: checking for type of bool" >&5
+echo "$as_me:7853: checking for type of bool" >&5
 echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
 
 # Check whether --with-bool or --without-bool was given.
@@ -7732,10 +7860,10 @@
 else
   NCURSES_BOOL=auto
 fi;
-echo "$as_me:7735: result: $NCURSES_BOOL" >&5
+echo "$as_me:7863: result: $NCURSES_BOOL" >&5
 echo "${ECHO_T}$NCURSES_BOOL" >&6
 
-echo "$as_me:7738: checking for alternate terminal capabilities file" >&5
+echo "$as_me:7866: checking for alternate terminal capabilities file" >&5
 echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
 
 # Check whether --with-caps or --without-caps was given.
@@ -7746,11 +7874,11 @@
   TERMINFO_CAPS=Caps
 fi;
 test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
-echo "$as_me:7749: result: $TERMINFO_CAPS" >&5
+echo "$as_me:7877: result: $TERMINFO_CAPS" >&5
 echo "${ECHO_T}$TERMINFO_CAPS" >&6
 
 ###   use option --with-chtype to override chtype's type
-echo "$as_me:7753: checking for type of chtype" >&5
+echo "$as_me:7881: checking for type of chtype" >&5
 echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
 
 # Check whether --with-chtype or --without-chtype was given.
@@ -7760,11 +7888,11 @@
 else
   NCURSES_CHTYPE=auto
 fi;
-echo "$as_me:7763: result: $NCURSES_CHTYPE" >&5
+echo "$as_me:7891: result: $NCURSES_CHTYPE" >&5
 echo "${ECHO_T}$NCURSES_CHTYPE" >&6
 
 ###   use option --with-ospeed to override ospeed's type
-echo "$as_me:7767: checking for type of ospeed" >&5
+echo "$as_me:7895: checking for type of ospeed" >&5
 echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
 
 # Check whether --with-ospeed or --without-ospeed was given.
@@ -7774,11 +7902,11 @@
 else
   NCURSES_OSPEED=short
 fi;
-echo "$as_me:7777: result: $NCURSES_OSPEED" >&5
+echo "$as_me:7905: result: $NCURSES_OSPEED" >&5
 echo "${ECHO_T}$NCURSES_OSPEED" >&6
 
 ###   use option --with-mmask-t to override mmask_t's type
-echo "$as_me:7781: checking for type of mmask_t" >&5
+echo "$as_me:7909: checking for type of mmask_t" >&5
 echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
 
 # Check whether --with-mmask-t or --without-mmask-t was given.
@@ -7788,11 +7916,11 @@
 else
   NCURSES_MMASK_T=auto
 fi;
-echo "$as_me:7791: result: $NCURSES_MMASK_T" >&5
+echo "$as_me:7919: result: $NCURSES_MMASK_T" >&5
 echo "${ECHO_T}$NCURSES_MMASK_T" >&6
 
 ### Enable compiling-in rcs id's
-echo "$as_me:7795: checking if RCS identifiers should be compiled-in" >&5
+echo "$as_me:7923: checking if RCS identifiers should be compiled-in" >&5
 echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
 
 # Check whether --with-rcs-ids or --without-rcs-ids was given.
@@ -7802,7 +7930,7 @@
 else
   with_rcs_ids=no
 fi;
-echo "$as_me:7805: result: $with_rcs_ids" >&5
+echo "$as_me:7933: result: $with_rcs_ids" >&5
 echo "${ECHO_T}$with_rcs_ids" >&6
 test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
 #define USE_RCS_IDS 1
@@ -7810,7 +7938,7 @@
 
 ###############################################################################
 
-echo "$as_me:7813: checking format of man-pages" >&5
+echo "$as_me:7941: checking format of man-pages" >&5
 echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
 
 # Check whether --with-manpage-format or --without-manpage-format was given.
@@ -7899,14 +8027,14 @@
   ;;
 esac
 
-echo "$as_me:7902: result: $MANPAGE_FORMAT" >&5
+echo "$as_me:8030: result: $MANPAGE_FORMAT" >&5
 echo "${ECHO_T}$MANPAGE_FORMAT" >&6
 if test -n "$cf_unknown" ; then
-  { echo "$as_me:7905: WARNING: Unexpected manpage-format $cf_unknown" >&5
+  { echo "$as_me:8033: WARNING: Unexpected manpage-format $cf_unknown" >&5
 echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
 fi
 
-echo "$as_me:7909: checking for manpage renaming" >&5
+echo "$as_me:8037: checking for manpage renaming" >&5
 echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
 
 # Check whether --with-manpage-renames or --without-manpage-renames was given.
@@ -7934,7 +8062,7 @@
   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
   elif test ! -f $MANPAGE_RENAMES ; then
-    { { echo "$as_me:7937: error: not a filename: $MANPAGE_RENAMES" >&5
+    { { echo "$as_me:8065: error: not a filename: $MANPAGE_RENAMES" >&5
 echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
    { (exit 1); exit 1; }; }
   fi
@@ -7948,10 +8076,10 @@
   fi
 fi
 
-echo "$as_me:7951: result: $MANPAGE_RENAMES" >&5
+echo "$as_me:8079: result: $MANPAGE_RENAMES" >&5
 echo "${ECHO_T}$MANPAGE_RENAMES" >&6
 
-echo "$as_me:7954: checking if manpage aliases will be installed" >&5
+echo "$as_me:8082: checking if manpage aliases will be installed" >&5
 echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
 
 # Check whether --with-manpage-aliases or --without-manpage-aliases was given.
@@ -7962,7 +8090,7 @@
   MANPAGE_ALIASES=yes
 fi;
 
-echo "$as_me:7965: result: $MANPAGE_ALIASES" >&5
+echo "$as_me:8093: result: $MANPAGE_ALIASES" >&5
 echo "${ECHO_T}$MANPAGE_ALIASES" >&6
 
 if test "$LN_S" = "ln -s"; then
@@ -7973,7 +8101,7 @@
 
 MANPAGE_SYMLINKS=no
 if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:7976: checking if manpage symlinks should be used" >&5
+echo "$as_me:8104: checking if manpage symlinks should be used" >&5
 echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
 
 # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
@@ -7986,17 +8114,17 @@
 
 if test "$$cf_use_symlinks" = no; then
 if test "$MANPAGE_SYMLINKS" = yes ; then
-	{ echo "$as_me:7989: WARNING: cannot make symlinks" >&5
+	{ echo "$as_me:8117: WARNING: cannot make symlinks" >&5
 echo "$as_me: WARNING: cannot make symlinks" >&2;}
 	MANPAGE_SYMLINKS=no
 fi
 fi
 
-echo "$as_me:7995: result: $MANPAGE_SYMLINKS" >&5
+echo "$as_me:8123: result: $MANPAGE_SYMLINKS" >&5
 echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
 fi
 
-echo "$as_me:7999: checking for manpage tbl" >&5
+echo "$as_me:8127: checking for manpage tbl" >&5
 echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
 
 # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
@@ -8007,7 +8135,7 @@
   MANPAGE_TBL=no
 fi;
 
-echo "$as_me:8010: result: $MANPAGE_TBL" >&5
+echo "$as_me:8138: result: $MANPAGE_TBL" >&5
 echo "${ECHO_T}$MANPAGE_TBL" >&6
 
   if test "$prefix" = "NONE" ; then
@@ -8047,6 +8175,7 @@
 esac
 
 cf_edit_man=./edit_man.sh
+cf_man_alias=`pwd`/man_alias.sed
 
 cat >$cf_edit_man <<CF_EOF
 #! /bin/sh
@@ -8062,7 +8191,7 @@
 NCURSES_OSPEED="$NCURSES_OSPEED"
 TERMINFO="$TERMINFO"
 
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
 
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
@@ -8110,6 +8239,32 @@
 		\$MKDIRS \$cf_subdir\$section
 	fi
 	fi
+
+	# replace variables in man page
+	if test ! -f $cf_man_alias ; then
+cat >>$cf_man_alias <<-CF_EOF2
+		s,@DATADIR@,\$datadir,g
+		s,@TERMINFO@,\$TERMINFO,g
+		s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
+		s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
+		s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
+		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
+CF_EOF
+
+	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+	do
+		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+		cf_name=`echo $cf_name|sed "$program_transform_name"`
+cat >>$cf_edit_man <<-CF_EOF
+		s,@$cf_NAME@,$cf_name,
+CF_EOF
+	done
+
+cat >>$cf_edit_man <<CF_EOF
+CF_EOF2
+		echo "...made $cf_man_alias"
+	fi
+
 	aliases=
 	cf_source=\`basename \$i\`
 	inalias=\$cf_source
@@ -8122,7 +8277,7 @@
 
 if test "$MANPAGE_ALIASES" != no ; then
 cat >>$cf_edit_man <<CF_EOF
-	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
+	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
 CF_EOF
 fi
 
@@ -8143,34 +8298,13 @@
 		cf_target="\$cf_source"
 	fi
 	cf_target="\$cf_subdir\${section}/\${cf_target}"
-CF_EOF
-fi
-
-	# replace variables in man page
-
-	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
-	do
-cat >>$cf_edit_man <<CF_EOF
-	prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
-CF_EOF
-	done
 
-cat >>$cf_edit_man <<CF_EOF
-	sed	-e "s,@DATADIR@,\$datadir," \\
-		-e "s,@TERMINFO@,\$TERMINFO," \\
-		-e "s,@NCURSES_MAJOR@,\$NCURSES_MAJOR," \\
-		-e "s,@NCURSES_MINOR@,\$NCURSES_MINOR," \\
-		-e "s,@NCURSES_PATCH@,\$NCURSES_PATCH," \\
-		-e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
 CF_EOF
+fi
 
-	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
-	do
-		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 cat >>$cf_edit_man <<CF_EOF
-		-e "s,@$cf_NAME@,\$prog_$cf_name," \\
+	sed	-f $cf_man_alias \\
 CF_EOF
-	done
 
 if test -f $MANPAGE_RENAMES ; then
 cat >>$cf_edit_man <<CF_EOF
@@ -8231,6 +8365,7 @@
 	if test \$verb = installing ; then
 		echo \$verb \$cf_target
 		\$INSTALL_DATA \$TMP \$cf_target
+		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
 				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
@@ -8272,8 +8407,11 @@
 			)
 		)
 	elif test \$verb = removing ; then
-		echo \$verb \$cf_target
-		rm -f \$cf_target
+		test -f \$cf_target && (
+			echo \$verb \$cf_target
+			rm -f \$cf_target
+		)
+		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
 				for cf_alias in \$aliases
@@ -8308,7 +8446,7 @@
 ###############################################################################
 
 ### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:8311: checking if you want to build with function extensions" >&5
+echo "$as_me:8449: checking if you want to build with function extensions" >&5
 echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
 
 # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
@@ -8318,7 +8456,7 @@
 else
   with_ext_funcs=yes
 fi;
-echo "$as_me:8321: result: $with_ext_funcs" >&5
+echo "$as_me:8459: result: $with_ext_funcs" >&5
 echo "${ECHO_T}$with_ext_funcs" >&6
 if test "$with_ext_funcs" = yes ; then
 	NCURSES_EXT_FUNCS=1
@@ -8355,7 +8493,7 @@
 fi
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:8358: checking for extended use of const keyword" >&5
+echo "$as_me:8496: checking for extended use of const keyword" >&5
 echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
 
 # Check whether --enable-const or --disable-const was given.
@@ -8365,14 +8503,85 @@
 else
   with_ext_const=no
 fi;
-echo "$as_me:8368: result: $with_ext_const" >&5
+echo "$as_me:8506: result: $with_ext_const" >&5
 echo "${ECHO_T}$with_ext_const" >&6
 NCURSES_CONST='/*nothing*/'
 if test "$with_ext_const" = yes ; then
 	NCURSES_CONST=const
 fi
 
-echo "$as_me:8375: checking if you want \$NCURSES_NO_PADDING code" >&5
+###   use option --enable-ext-colors to turn on use of colors beyond 16.
+echo "$as_me:8514: checking if you want to use extended colors" >&5
+echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
+
+# Check whether --enable-ext-colors or --disable-ext-colors was given.
+if test "${enable_ext_colors+set}" = set; then
+  enableval="$enable_ext_colors"
+  with_ext_colors=$enableval
+else
+  with_ext_colors=no
+fi;
+echo "$as_me:8524: result: $with_ext_colors" >&5
+echo "${ECHO_T}$with_ext_colors" >&6
+NCURSES_EXT_COLORS=0
+if test "$with_ext_colors" = yes ; then
+	if test "$with_widec" != yes ; then
+		{ { echo "$as_me:8529: error: This option applies only to wide-character library" >&5
+echo "$as_me: error: This option applies only to wide-character library" >&2;}
+   { (exit 1); exit 1; }; }
+	else
+		# cannot be ABI 5 since it changes sizeof(cchar_t)
+
+if test "${with_abi_version+set}" != set; then
+	case $cf_cv_rel_version in
+	5.*)
+		cf_cv_rel_version=6.0
+		cf_cv_abi_version=6
+		{ echo "$as_me:8540: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+		;;
+	esac
+fi
+
+	fi
+	NCURSES_EXT_COLORS=1
+	cat >>confdefs.h <<\EOF
+#define NCURSES_EXT_COLORS 1
+EOF
+
+fi
+
+###   use option --enable-ext-mouse to modify coding to support 5-button mice
+echo "$as_me:8555: checking if you want to use extended mouse encoding" >&5
+echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
+
+# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+if test "${enable_ext_mouse+set}" = set; then
+  enableval="$enable_ext_mouse"
+  with_ext_mouse=$enableval
+else
+  with_ext_mouse=no
+fi;
+echo "$as_me:8565: result: $with_ext_mouse" >&5
+echo "${ECHO_T}$with_ext_mouse" >&6
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+	NCURSES_MOUSE_VERSION=2
+
+if test "${with_abi_version+set}" != set; then
+	case $cf_cv_rel_version in
+	5.*)
+		cf_cv_rel_version=6.0
+		cf_cv_abi_version=6
+		{ echo "$as_me:8576: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+		;;
+	esac
+fi
+
+fi
+
+echo "$as_me:8584: checking if you want \$NCURSES_NO_PADDING code" >&5
 echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
 
 # Check whether --enable-no-padding or --disable-no-padding was given.
@@ -8382,19 +8591,19 @@
 else
   with_no_padding=$with_ext_funcs
 fi;
-echo "$as_me:8385: result: $with_no_padding" >&5
+echo "$as_me:8594: result: $with_no_padding" >&5
 echo "${ECHO_T}$with_no_padding" >&6
 test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
 #define NCURSES_NO_PADDING 1
 EOF
 
-echo "$as_me:8391: checking for ANSI C header files" >&5
+echo "$as_me:8600: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8397 "configure"
+#line 8606 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -8402,13 +8611,13 @@
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:8405: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:8614: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:8411: \$? = $ac_status" >&5
+  echo "$as_me:8620: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -8430,7 +8639,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 8433 "configure"
+#line 8642 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -8448,7 +8657,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 8451 "configure"
+#line 8660 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -8469,7 +8678,7 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8472 "configure"
+#line 8681 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -8495,15 +8704,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8498: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8707: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8501: \$? = $ac_status" >&5
+  echo "$as_me:8710: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8503: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8712: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8506: \$? = $ac_status" >&5
+  echo "$as_me:8715: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -8516,7 +8725,7 @@
 fi
 fi
 fi
-echo "$as_me:8519: result: $ac_cv_header_stdc" >&5
+echo "$as_me:8728: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -8532,28 +8741,28 @@
                   inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8535: checking for $ac_header" >&5
+echo "$as_me:8744: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8541 "configure"
+#line 8750 "configure"
 #include "confdefs.h"
 $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8547: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8756: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8550: \$? = $ac_status" >&5
+  echo "$as_me:8759: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8553: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8762: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8556: \$? = $ac_status" >&5
+  echo "$as_me:8765: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -8563,7 +8772,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8566: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:8775: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -8573,13 +8782,13 @@
 fi
 done
 
-echo "$as_me:8576: checking for signed char" >&5
+echo "$as_me:8785: checking for signed char" >&5
 echo $ECHO_N "checking for signed char... $ECHO_C" >&6
 if test "${ac_cv_type_signed_char+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8582 "configure"
+#line 8791 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8594,16 +8803,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8806: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8600: \$? = $ac_status" >&5
+  echo "$as_me:8809: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8603: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8812: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8606: \$? = $ac_status" >&5
+  echo "$as_me:8815: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_signed_char=yes
 else
@@ -8613,10 +8822,10 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:8616: result: $ac_cv_type_signed_char" >&5
+echo "$as_me:8825: result: $ac_cv_type_signed_char" >&5
 echo "${ECHO_T}$ac_cv_type_signed_char" >&6
 
-echo "$as_me:8619: checking size of signed char" >&5
+echo "$as_me:8828: checking size of signed char" >&5
 echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
 if test "${ac_cv_sizeof_signed_char+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8625,7 +8834,7 @@
   if test "$cross_compiling" = yes; then
   # Depending upon the size, compute the lo and hi bounds.
 cat >conftest.$ac_ext <<_ACEOF
-#line 8628 "configure"
+#line 8837 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8637,21 +8846,21 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8640: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8849: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8643: \$? = $ac_status" >&5
+  echo "$as_me:8852: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8646: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8855: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8649: \$? = $ac_status" >&5
+  echo "$as_me:8858: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=0 ac_mid=0
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 8654 "configure"
+#line 8863 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8663,16 +8872,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8666: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8875: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8669: \$? = $ac_status" >&5
+  echo "$as_me:8878: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8672: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8881: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8675: \$? = $ac_status" >&5
+  echo "$as_me:8884: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid; break
 else
@@ -8688,7 +8897,7 @@
 ac_hi=-1 ac_mid=-1
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 8691 "configure"
+#line 8900 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8700,16 +8909,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8703: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8912: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8706: \$? = $ac_status" >&5
+  echo "$as_me:8915: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8709: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8918: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8712: \$? = $ac_status" >&5
+  echo "$as_me:8921: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=$ac_mid; break
 else
@@ -8725,7 +8934,7 @@
 while test "x$ac_lo" != "x$ac_hi"; do
   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
   cat >conftest.$ac_ext <<_ACEOF
-#line 8728 "configure"
+#line 8937 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8737,16 +8946,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8740: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8949: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8743: \$? = $ac_status" >&5
+  echo "$as_me:8952: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8746: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8955: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8749: \$? = $ac_status" >&5
+  echo "$as_me:8958: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid
 else
@@ -8759,12 +8968,12 @@
 ac_cv_sizeof_signed_char=$ac_lo
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:8762: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:8971: error: cannot run test program while cross compiling" >&5
 echo "$as_me: error: cannot run test program while cross compiling" >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8767 "configure"
+#line 8976 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -8780,15 +8989,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8992: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8786: \$? = $ac_status" >&5
+  echo "$as_me:8995: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:8788: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8997: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8791: \$? = $ac_status" >&5
+  echo "$as_me:9000: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sizeof_signed_char=`cat conftest.val`
 else
@@ -8804,7 +9013,7 @@
   ac_cv_sizeof_signed_char=0
 fi
 fi
-echo "$as_me:8807: result: $ac_cv_sizeof_signed_char" >&5
+echo "$as_me:9016: result: $ac_cv_sizeof_signed_char" >&5
 echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
 cat >>confdefs.h <<EOF
 #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
@@ -8815,7 +9024,7 @@
 else
 	NCURSES_SBOOL="char"
 fi
-echo "$as_me:8818: checking if you want to use signed Boolean array in term.h" >&5
+echo "$as_me:9027: checking if you want to use signed Boolean array in term.h" >&5
 echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
 
 # Check whether --enable-signed-char or --disable-signed-char was given.
@@ -8825,12 +9034,12 @@
 else
   with_signed_char=no
 fi;
-echo "$as_me:8828: result: $with_signed_char" >&5
+echo "$as_me:9037: result: $with_signed_char" >&5
 echo "${ECHO_T}$with_signed_char" >&6
 test "$with_signed_char" != yes && NCURSES_SBOOL="char"
 
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:8833: checking if you want SIGWINCH handler" >&5
+echo "$as_me:9042: checking if you want SIGWINCH handler" >&5
 echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
 
 # Check whether --enable-sigwinch or --disable-sigwinch was given.
@@ -8840,14 +9049,14 @@
 else
   with_sigwinch=$with_ext_funcs
 fi;
-echo "$as_me:8843: result: $with_sigwinch" >&5
+echo "$as_me:9052: result: $with_sigwinch" >&5
 echo "${ECHO_T}$with_sigwinch" >&6
 test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
 #define USE_SIGWINCH 1
 EOF
 
 ###   use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:8850: checking if you want user-definable terminal capabilities like termcap" >&5
+echo "$as_me:9059: checking if you want user-definable terminal capabilities like termcap" >&5
 echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
 
 # Check whether --enable-tcap-names or --disable-tcap-names was given.
@@ -8857,7 +9066,7 @@
 else
   with_tcap_names=$with_ext_funcs
 fi;
-echo "$as_me:8860: result: $with_tcap_names" >&5
+echo "$as_me:9069: result: $with_tcap_names" >&5
 echo "${ECHO_T}$with_tcap_names" >&6
 NCURSES_XNAMES=0
 test "$with_tcap_names" = yes && NCURSES_XNAMES=1
@@ -8865,7 +9074,7 @@
 ###############################################################################
 # These options are relatively safe to experiment with.
 
-echo "$as_me:8868: checking if you want all development code" >&5
+echo "$as_me:9077: checking if you want all development code" >&5
 echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
 
 # Check whether --with-develop or --without-develop was given.
@@ -8875,11 +9084,11 @@
 else
   with_develop=no
 fi;
-echo "$as_me:8878: result: $with_develop" >&5
+echo "$as_me:9087: result: $with_develop" >&5
 echo "${ECHO_T}$with_develop" >&6
 
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo "$as_me:8882: checking if you want hard-tabs code" >&5
+echo "$as_me:9091: checking if you want hard-tabs code" >&5
 echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
 
 # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
@@ -8889,14 +9098,14 @@
 else
   enable_hard_tabs=$with_develop
 fi;
-echo "$as_me:8892: result: $enable_hard_tabs" >&5
+echo "$as_me:9101: result: $enable_hard_tabs" >&5
 echo "${ECHO_T}$enable_hard_tabs" >&6
 test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
 #define USE_HARD_TABS 1
 EOF
 
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:8899: checking if you want limited support for xmc" >&5
+echo "$as_me:9108: checking if you want limited support for xmc" >&5
 echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
 
 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
@@ -8906,7 +9115,7 @@
 else
   enable_xmc_glitch=$with_develop
 fi;
-echo "$as_me:8909: result: $enable_xmc_glitch" >&5
+echo "$as_me:9118: result: $enable_xmc_glitch" >&5
 echo "${ECHO_T}$enable_xmc_glitch" >&6
 test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
 #define USE_XMC_SUPPORT 1
@@ -8915,7 +9124,7 @@
 ###############################################################################
 # These are just experimental, probably should not be in a package:
 
-echo "$as_me:8918: checking if you do not want to assume colors are white-on-black" >&5
+echo "$as_me:9127: checking if you do not want to assume colors are white-on-black" >&5
 echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
 
 # Check whether --enable-assumed-color or --disable-assumed-color was given.
@@ -8925,14 +9134,14 @@
 else
   with_assumed_color=yes
 fi;
-echo "$as_me:8928: result: $with_assumed_color" >&5
+echo "$as_me:9137: result: $with_assumed_color" >&5
 echo "${ECHO_T}$with_assumed_color" >&6
 test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
 #define USE_ASSUMED_COLOR 1
 EOF
 
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:8935: checking if you want hashmap scrolling-optimization code" >&5
+echo "$as_me:9144: checking if you want hashmap scrolling-optimization code" >&5
 echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
 
 # Check whether --enable-hashmap or --disable-hashmap was given.
@@ -8942,14 +9151,14 @@
 else
   with_hashmap=yes
 fi;
-echo "$as_me:8945: result: $with_hashmap" >&5
+echo "$as_me:9154: result: $with_hashmap" >&5
 echo "${ECHO_T}$with_hashmap" >&6
 test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
 #define USE_HASHMAP 1
 EOF
 
 ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:8952: checking if you want colorfgbg code" >&5
+echo "$as_me:9161: checking if you want colorfgbg code" >&5
 echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
 
 # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
@@ -8959,83 +9168,195 @@
 else
   with_colorfgbg=no
 fi;
-echo "$as_me:8962: result: $with_colorfgbg" >&5
+echo "$as_me:9171: result: $with_colorfgbg" >&5
 echo "${ECHO_T}$with_colorfgbg" >&6
 test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
 #define USE_COLORFGBG 1
 EOF
 
-###   use option --enable-ext-colors to turn on use of colors beyond 16.
-echo "$as_me:8969: checking if you want to use experimental extended colors" >&5
-echo $ECHO_N "checking if you want to use experimental extended colors... $ECHO_C" >&6
+# This is still experimental (20080329), but should ultimately be moved to
+# the script-block --with-normal, etc.
 
-# Check whether --enable-ext-colors or --disable-ext-colors was given.
-if test "${enable_ext_colors+set}" = set; then
-  enableval="$enable_ext_colors"
-  with_ext_colors=$enableval
-else
-  with_ext_colors=no
-fi;
-echo "$as_me:8979: result: $with_ext_colors" >&5
-echo "${ECHO_T}$with_ext_colors" >&6
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
-	if test "$with_widec" != yes ; then
-		{ echo "$as_me:8984: WARNING: This option applies only to wide-character library" >&5
-echo "$as_me: WARNING: This option applies only to wide-character library" >&2;}
-	else
-		# cannot be ABI 5 since it changes sizeof(cchar_t)
+echo "$as_me:9180: checking if you want to link with the pthread library" >&5
+echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
 
-if test "${with_abi_version+set}" != set; then
-	case $cf_cv_rel_version in
-	5.*)
-		cf_cv_rel_version=6.0
-		cf_cv_abi_version=6
-		{ echo "$as_me:8994: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
-		;;
-	esac
+# Check whether --with-pthread or --without-pthread was given.
+if test "${with_pthread+set}" = set; then
+  withval="$with_pthread"
+  with_pthread=$withval
+else
+  with_pthread=no
+fi;
+echo "$as_me:9190: result: $with_pthread" >&5
+echo "${ECHO_T}$with_pthread" >&6
+
+if test "$with_pthread" != no ; then
+    echo "$as_me:9194: checking for pthread.h" >&5
+echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
+if test "${ac_cv_header_pthread_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 9200 "configure"
+#include "confdefs.h"
+#include <pthread.h>
+_ACEOF
+if { (eval echo "$as_me:9204: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:9210: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_cv_header_pthread_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_header_pthread_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
 fi
+echo "$as_me:9229: result: $ac_cv_header_pthread_h" >&5
+echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
+if test $ac_cv_header_pthread_h = yes; then
 
-	fi
-	NCURSES_EXT_COLORS=1
-	cat >>confdefs.h <<\EOF
-#define NCURSES_EXT_COLORS 1
+        cat >>confdefs.h <<\EOF
+#define HAVE_PTHREADS_H 1
 EOF
 
+        echo "$as_me:9237: checking for pthread_create in -lpthread" >&5
+echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
+if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 9245 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pthread_create ();
+int
+main ()
+{
+pthread_create ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:9264: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:9267: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:9270: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:9273: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pthread_pthread_create=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pthread_pthread_create=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:9284: result: $ac_cv_lib_pthread_pthread_create" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6
+if test $ac_cv_lib_pthread_pthread_create = yes; then
 
-###   use option --enable-ext-mouse to modify coding to support 5-button mice
-echo "$as_me:9009: checking if you want to use experimental extended mouse encoding" >&5
-echo $ECHO_N "checking if you want to use experimental extended mouse encoding... $ECHO_C" >&6
+            LIBS="-lpthread $LIBS"
+            cat >>confdefs.h <<\EOF
+#define HAVE_LIBPTHREADS 1
+EOF
+
+            with_pthread=yes
 
-# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
-if test "${enable_ext_mouse+set}" = set; then
-  enableval="$enable_ext_mouse"
-  with_ext_mouse=$enableval
 else
-  with_ext_mouse=no
-fi;
-echo "$as_me:9019: result: $with_ext_mouse" >&5
-echo "${ECHO_T}$with_ext_mouse" >&6
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
-	NCURSES_MOUSE_VERSION=2
+
+            { { echo "$as_me:9297: error: Cannot link with pthread library" >&5
+echo "$as_me: error: Cannot link with pthread library" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+
+fi
+
+fi
+
+if test "$with_pthread" = "yes" ; then
+    cat >>confdefs.h <<\EOF
+#define USE_PTHREADS 1
+EOF
+
+    enable_reentrant=yes
+fi
+
+# Reentrant code has to be opaque; there's little advantage to making ncurses
+# opaque outside of that, so there is no --enable-opaque option.  We can use
+# this option without --with-pthreads, but this will be always set for
+# pthreads.
+echo "$as_me:9319: checking if you want experimental reentrant code" >&5
+echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
+
+# Check whether --enable-reentrant or --disable-reentrant was given.
+if test "${enable_reentrant+set}" = set; then
+  enableval="$enable_reentrant"
+  with_reentrant=$enableval
+else
+  with_reentrant=no
+fi;
+echo "$as_me:9329: result: $with_reentrant" >&5
+echo "${ECHO_T}$with_reentrant" >&6
+if test "$with_reentrant" = yes ; then
+	cf_cv_enable_reentrant=1
+	cf_cv_enable_opaque="NCURSES_INTERNALS"
+	NCURSES_OPAQUE=1
+	NCURSES_SIZE_T=int
+	LIB_SUFFIX="t${LIB_SUFFIX}"
+	cat >>confdefs.h <<\EOF
+#define USE_REENTRANT 1
+EOF
 
 if test "${with_abi_version+set}" != set; then
 	case $cf_cv_rel_version in
 	5.*)
 		cf_cv_rel_version=6.0
 		cf_cv_abi_version=6
-		{ echo "$as_me:9030: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+		{ echo "$as_me:9346: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
 		;;
 	esac
 fi
 
+else
+	cf_cv_enable_reentrant=0
+	cf_cv_enable_opaque="NCURSES_OPAQUE"
+	NCURSES_OPAQUE=0
+	NCURSES_SIZE_T=short
 fi
 
-echo "$as_me:9038: checking if you want experimental safe-sprintf code" >&5
+echo "$as_me:9359: checking if you want experimental safe-sprintf code" >&5
 echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
 
 # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
@@ -9045,7 +9366,7 @@
 else
   with_safe_sprintf=no
 fi;
-echo "$as_me:9048: result: $with_safe_sprintf" >&5
+echo "$as_me:9369: result: $with_safe_sprintf" >&5
 echo "${ECHO_T}$with_safe_sprintf" >&6
 test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
 #define USE_SAFE_SPRINTF 1
@@ -9054,7 +9375,7 @@
 ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
 # when hashmap is used scroll hints are useless
 if test "$with_hashmap" = no ; then
-echo "$as_me:9057: checking if you want to experiment without scrolling-hints code" >&5
+echo "$as_me:9378: checking if you want to experiment without scrolling-hints code" >&5
 echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
 
 # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
@@ -9064,7 +9385,7 @@
 else
   with_scroll_hints=yes
 fi;
-echo "$as_me:9067: result: $with_scroll_hints" >&5
+echo "$as_me:9388: result: $with_scroll_hints" >&5
 echo "${ECHO_T}$with_scroll_hints" >&6
 test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
 #define USE_SCROLL_HINTS 1
@@ -9072,7 +9393,7 @@
 
 fi
 
-echo "$as_me:9075: checking if you want experimental wgetch-events code" >&5
+echo "$as_me:9396: checking if you want experimental wgetch-events code" >&5
 echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
 
 # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
@@ -9082,7 +9403,7 @@
 else
   with_wgetch_events=no
 fi;
-echo "$as_me:9085: result: $with_wgetch_events" >&5
+echo "$as_me:9406: result: $with_wgetch_events" >&5
 echo "${ECHO_T}$with_wgetch_events" >&6
 test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
 #define NCURSES_WGETCH_EVENTS 1
@@ -9091,7 +9412,7 @@
 ###############################################################################
 
 ###	use option --disable-echo to suppress full display compiling commands
-echo "$as_me:9094: checking if you want to display full commands during build" >&5
+echo "$as_me:9415: checking if you want to display full commands during build" >&5
 echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
 
 # Check whether --enable-echo or --disable-echo was given.
@@ -9106,12 +9427,13 @@
 else
 	ECHO_LINK='@ echo linking $@ ... ;'
 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
 fi
-echo "$as_me:9110: result: $with_echo" >&5
+echo "$as_me:9432: result: $with_echo" >&5
 echo "${ECHO_T}$with_echo" >&6
 
 ###	use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:9114: checking if you want to see compiler warnings" >&5
+echo "$as_me:9436: checking if you want to see compiler warnings" >&5
 echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
 
 # Check whether --enable-warnings or --disable-warnings was given.
@@ -9119,10 +9441,10 @@
   enableval="$enable_warnings"
   with_warnings=$enableval
 fi;
-echo "$as_me:9122: result: $with_warnings" >&5
+echo "$as_me:9444: result: $with_warnings" >&5
 echo "${ECHO_T}$with_warnings" >&6
 
-if test -n "$with_warnings"; then
+if test "x$with_warnings" = "xyes"; then
  	ADAFLAGS="$ADAFLAGS -gnatg"
 
 INTEL_COMPILER=no
@@ -9130,12 +9452,12 @@
 if test "$GCC" = yes ; then
 	case $host_os in
 	linux*|gnu*)
-		echo "$as_me:9133: checking if this is really Intel C compiler" >&5
+		echo "$as_me:9455: checking if this is really Intel C compiler" >&5
 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
 		cf_save_CFLAGS="$CFLAGS"
 		CFLAGS="$CFLAGS -no-gcc"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 9138 "configure"
+#line 9460 "configure"
 #include "confdefs.h"
 
 int
@@ -9152,16 +9474,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9155: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9477: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9158: \$? = $ac_status" >&5
+  echo "$as_me:9480: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9161: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9483: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9164: \$? = $ac_status" >&5
+  echo "$as_me:9486: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   INTEL_COMPILER=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
@@ -9172,14 +9494,14 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		CFLAGS="$cf_save_CFLAGS"
-		echo "$as_me:9175: result: $INTEL_COMPILER" >&5
+		echo "$as_me:9497: result: $INTEL_COMPILER" >&5
 echo "${ECHO_T}$INTEL_COMPILER" >&6
 		;;
 	esac
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 9182 "configure"
+#line 9504 "${as_me-configure}"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -9197,11 +9519,11 @@
 # remark #981: operands are evaluated in unspecified order
 # warning #269: invalid format string conversion
 
-	{ echo "$as_me:9200: checking for $CC warning options..." >&5
+	{ echo "$as_me:9522: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
-	for cf_opt in  \
+	for cf_opt in \
 		wd1419 \
 		wd1682 \
 		wd1683 \
@@ -9214,12 +9536,12 @@
 		wd981
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo "$as_me:9217: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:9539: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9220: \$? = $ac_status" >&5
+  echo "$as_me:9542: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:9222: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:9544: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
 		fi
@@ -9228,7 +9550,7 @@
 
 elif test "$GCC" = yes
 then
-	{ echo "$as_me:9231: checking for $CC warning options..." >&5
+	{ echo "$as_me:9553: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-W -Wall"
@@ -9245,15 +9567,15 @@
 		Wpointer-arith \
 		Wshadow \
 		Wstrict-prototypes \
-		Wundef $cf_warn_CONST
+		Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo "$as_me:9251: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:9573: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9254: \$? = $ac_status" >&5
+  echo "$as_me:9576: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:9256: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:9578: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			case $cf_opt in #(vi
 			Wcast-qual) #(vi
@@ -9264,6 +9586,8 @@
 				3.3*)
 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
 
+echo "${as_me-configure}:9589: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+
 					continue;;
 				esac
 				;;
@@ -9282,12 +9606,12 @@
 if test "$GCC" = yes ; then
 	case $host_os in
 	linux*|gnu*)
-		echo "$as_me:9285: checking if this is really Intel C++ compiler" >&5
+		echo "$as_me:9609: checking if this is really Intel C++ compiler" >&5
 echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
 		cf_save_CFLAGS="$CXXFLAGS"
 		CXXFLAGS="$CXXFLAGS -no-gcc"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 9290 "configure"
+#line 9614 "configure"
 #include "confdefs.h"
 
 int
@@ -9304,16 +9628,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9307: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9631: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9310: \$? = $ac_status" >&5
+  echo "$as_me:9634: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9313: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9637: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9316: \$? = $ac_status" >&5
+  echo "$as_me:9640: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   INTEL_CPLUSPLUS=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
@@ -9324,7 +9648,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		CXXFLAGS="$cf_save_CFLAGS"
-		echo "$as_me:9327: result: $INTEL_CPLUSPLUS" >&5
+		echo "$as_me:9651: result: $INTEL_CPLUSPLUS" >&5
 echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
 		;;
 	esac
@@ -9338,7 +9662,7 @@
 ac_main_return=return
 
 cat > conftest.$ac_ext <<EOF
-#line 9341 "configure"
+#line 9665 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -9356,7 +9680,7 @@
 # remark #981: operands are evaluated in unspecified order
 # warning #269: invalid format string conversion
 
-	{ echo "$as_me:9359: checking for $CC warning options..." >&5
+	{ echo "$as_me:9683: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CXXFLAGS="$CXXFLAGS"
 	EXTRA_CXXFLAGS="-Wall"
@@ -9373,12 +9697,12 @@
 		wd981
 	do
 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
-		if { (eval echo "$as_me:9376: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:9700: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9379: \$? = $ac_status" >&5
+  echo "$as_me:9703: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:9381: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:9705: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
 		fi
@@ -9387,7 +9711,7 @@
 
 elif test "$GXX" = yes
 then
-	{ echo "$as_me:9390: checking for $CXX warning options..." >&5
+	{ echo "$as_me:9714: checking for $CXX warning options..." >&5
 echo "$as_me: checking for $CXX warning options..." >&6;}
 	cf_save_CXXFLAGS="$CXXFLAGS"
 	EXTRA_CXXFLAGS="-W -Wall"
@@ -9416,16 +9740,16 @@
 		Wundef $cf_gxx_extra_warnings Wno-unused
 	do
 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
-		if { (eval echo "$as_me:9419: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:9743: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9422: \$? = $ac_status" >&5
+  echo "$as_me:9746: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:9424: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:9748: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
 		else
-			test -n "$verbose" && echo "$as_me:9428: result: ... no -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:9752: result: ... no -$cf_opt" >&5
 echo "${ECHO_T}... no -$cf_opt" >&6
 		fi
 	done
@@ -9461,10 +9785,10 @@
 EOF
 if test "$GCC" = yes
 then
-	{ echo "$as_me:9464: checking for $CC __attribute__ directives..." >&5
+	{ echo "$as_me:9788: checking for $CC __attribute__ directives..." >&5
 echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
 cat > conftest.$ac_ext <<EOF
-#line 9467 "configure"
+#line 9791 "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -9502,12 +9826,12 @@
 EOF
 			;;
 		esac
-		if { (eval echo "$as_me:9505: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:9829: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9508: \$? = $ac_status" >&5
+  echo "$as_me:9832: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:9510: result: ... $cf_attribute" >&5
+			test -n "$verbose" && echo "$as_me:9834: result: ... $cf_attribute" >&5
 echo "${ECHO_T}... $cf_attribute" >&6
 			cat conftest.h >>confdefs.h
 		fi
@@ -9519,7 +9843,7 @@
 fi
 
 ###	use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:9522: checking if you want to enable runtime assertions" >&5
+echo "$as_me:9846: checking if you want to enable runtime assertions" >&5
 echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
 
 # Check whether --enable-assertions or --disable-assertions was given.
@@ -9529,7 +9853,7 @@
 else
   with_assertions=no
 fi;
-echo "$as_me:9532: result: $with_assertions" >&5
+echo "$as_me:9856: result: $with_assertions" >&5
 echo "${ECHO_T}$with_assertions" >&6
 if test -n "$GCC"
 then
@@ -9547,7 +9871,7 @@
 
 ###	use option --disable-leaks to suppress "permanent" leaks, for testing
 
-echo "$as_me:9550: checking if you want to use dmalloc for testing" >&5
+echo "$as_me:9874: checking if you want to use dmalloc for testing" >&5
 echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dmalloc or --without-dmalloc was given.
@@ -9563,7 +9887,7 @@
 else
   with_dmalloc=
 fi;
-echo "$as_me:9566: result: ${with_dmalloc:-no}" >&5
+echo "$as_me:9890: result: ${with_dmalloc:-no}" >&5
 echo "${ECHO_T}${with_dmalloc:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -9647,23 +9971,23 @@
 esac
 
 if test "$with_dmalloc" = yes ; then
-	echo "$as_me:9650: checking for dmalloc.h" >&5
+	echo "$as_me:9974: checking for dmalloc.h" >&5
 echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
 if test "${ac_cv_header_dmalloc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9656 "configure"
+#line 9980 "configure"
 #include "confdefs.h"
 #include <dmalloc.h>
 _ACEOF
-if { (eval echo "$as_me:9660: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9984: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9666: \$? = $ac_status" >&5
+  echo "$as_me:9990: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9682,11 +10006,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:9685: result: $ac_cv_header_dmalloc_h" >&5
+echo "$as_me:10009: result: $ac_cv_header_dmalloc_h" >&5
 echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
 if test $ac_cv_header_dmalloc_h = yes; then
 
-echo "$as_me:9689: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:10013: checking for dmalloc_debug in -ldmalloc" >&5
 echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
 if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9694,7 +10018,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 9697 "configure"
+#line 10021 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -9713,16 +10037,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9716: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10040: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9719: \$? = $ac_status" >&5
+  echo "$as_me:10043: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9722: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10046: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9725: \$? = $ac_status" >&5
+  echo "$as_me:10049: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dmalloc_dmalloc_debug=yes
 else
@@ -9733,7 +10057,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:9736: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:10060: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
 echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
 if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
   cat >>confdefs.h <<EOF
@@ -9748,7 +10072,7 @@
 
 fi
 
-echo "$as_me:9751: checking if you want to use dbmalloc for testing" >&5
+echo "$as_me:10075: checking if you want to use dbmalloc for testing" >&5
 echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dbmalloc or --without-dbmalloc was given.
@@ -9764,7 +10088,7 @@
 else
   with_dbmalloc=
 fi;
-echo "$as_me:9767: result: ${with_dbmalloc:-no}" >&5
+echo "$as_me:10091: result: ${with_dbmalloc:-no}" >&5
 echo "${ECHO_T}${with_dbmalloc:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -9848,23 +10172,23 @@
 esac
 
 if test "$with_dbmalloc" = yes ; then
-	echo "$as_me:9851: checking for dbmalloc.h" >&5
+	echo "$as_me:10175: checking for dbmalloc.h" >&5
 echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
 if test "${ac_cv_header_dbmalloc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9857 "configure"
+#line 10181 "configure"
 #include "confdefs.h"
 #include <dbmalloc.h>
 _ACEOF
-if { (eval echo "$as_me:9861: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10185: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9867: \$? = $ac_status" >&5
+  echo "$as_me:10191: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9883,11 +10207,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:9886: result: $ac_cv_header_dbmalloc_h" >&5
+echo "$as_me:10210: result: $ac_cv_header_dbmalloc_h" >&5
 echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
 if test $ac_cv_header_dbmalloc_h = yes; then
 
-echo "$as_me:9890: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:10214: checking for debug_malloc in -ldbmalloc" >&5
 echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
 if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9895,7 +10219,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldbmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 9898 "configure"
+#line 10222 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -9914,16 +10238,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9917: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10241: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9920: \$? = $ac_status" >&5
+  echo "$as_me:10244: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9923: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10247: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9926: \$? = $ac_status" >&5
+  echo "$as_me:10250: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dbmalloc_debug_malloc=yes
 else
@@ -9934,7 +10258,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:9937: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:10261: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
 echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
 if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
   cat >>confdefs.h <<EOF
@@ -9949,7 +10273,7 @@
 
 fi
 
-echo "$as_me:9952: checking if you want to use valgrind for testing" >&5
+echo "$as_me:10276: checking if you want to use valgrind for testing" >&5
 echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
 
 # Check whether --with-valgrind or --without-valgrind was given.
@@ -9965,7 +10289,7 @@
 else
   with_valgrind=
 fi;
-echo "$as_me:9968: result: ${with_valgrind:-no}" >&5
+echo "$as_me:10292: result: ${with_valgrind:-no}" >&5
 echo "${ECHO_T}${with_valgrind:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -10048,7 +10372,7 @@
 	;;
 esac
 
-echo "$as_me:10051: checking if you want to perform memory-leak testing" >&5
+echo "$as_me:10375: checking if you want to perform memory-leak testing" >&5
 echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
 
 # Check whether --enable-leaks or --disable-leaks was given.
@@ -10058,7 +10382,7 @@
 else
   : ${with_no_leaks:=no}
 fi;
-echo "$as_me:10061: result: $with_no_leaks" >&5
+echo "$as_me:10385: result: $with_no_leaks" >&5
 echo "${ECHO_T}$with_no_leaks" >&6
 
 if test "$with_no_leaks" = yes ; then
@@ -10103,7 +10427,7 @@
 	;;
 esac
 
-echo "$as_me:10106: checking whether to add trace feature to all models" >&5
+echo "$as_me:10430: checking whether to add trace feature to all models" >&5
 echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
 
 # Check whether --with-trace or --without-trace was given.
@@ -10113,7 +10437,7 @@
 else
   cf_with_trace=$cf_all_traces
 fi;
-echo "$as_me:10116: result: $cf_with_trace" >&5
+echo "$as_me:10440: result: $cf_with_trace" >&5
 echo "${ECHO_T}$cf_with_trace" >&6
 
 if test "$cf_with_trace" = yes ; then
@@ -10194,13 +10518,13 @@
 fi
 
 ###	Checks for libraries.
-echo "$as_me:10197: checking for gettimeofday" >&5
+echo "$as_me:10521: checking for gettimeofday" >&5
 echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
 if test "${ac_cv_func_gettimeofday+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10203 "configure"
+#line 10527 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gettimeofday (); below.  */
@@ -10231,16 +10555,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10234: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10558: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10237: \$? = $ac_status" >&5
+  echo "$as_me:10561: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10240: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10564: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10243: \$? = $ac_status" >&5
+  echo "$as_me:10567: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_gettimeofday=yes
 else
@@ -10250,7 +10574,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:10253: result: $ac_cv_func_gettimeofday" >&5
+echo "$as_me:10577: result: $ac_cv_func_gettimeofday" >&5
 echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
 if test $ac_cv_func_gettimeofday = yes; then
   cat >>confdefs.h <<\EOF
@@ -10259,7 +10583,7 @@
 
 else
 
-echo "$as_me:10262: checking for gettimeofday in -lbsd" >&5
+echo "$as_me:10586: checking for gettimeofday in -lbsd" >&5
 echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
 if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10267,7 +10591,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbsd  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10270 "configure"
+#line 10594 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -10286,16 +10610,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10289: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10613: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10292: \$? = $ac_status" >&5
+  echo "$as_me:10616: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10295: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10619: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10298: \$? = $ac_status" >&5
+  echo "$as_me:10622: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_bsd_gettimeofday=yes
 else
@@ -10306,7 +10630,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10309: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "$as_me:10633: result: $ac_cv_lib_bsd_gettimeofday" >&5
 echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
 if test $ac_cv_lib_bsd_gettimeofday = yes; then
   cat >>confdefs.h <<\EOF
@@ -10318,14 +10642,14 @@
 
 fi
 
-echo "$as_me:10321: checking if -lm needed for math functions" >&5
+echo "$as_me:10645: checking if -lm needed for math functions" >&5
 echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
 if test "${cf_cv_need_libm+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 10328 "configure"
+#line 10652 "configure"
 #include "confdefs.h"
 
 	#include <stdio.h>
@@ -10340,16 +10664,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10343: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10667: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10346: \$? = $ac_status" >&5
+  echo "$as_me:10670: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10349: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10673: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10352: \$? = $ac_status" >&5
+  echo "$as_me:10676: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_need_libm=no
 else
@@ -10359,7 +10683,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:10362: result: $cf_cv_need_libm" >&5
+echo "$as_me:10686: result: $cf_cv_need_libm" >&5
 echo "${ECHO_T}$cf_cv_need_libm" >&6
 if test "$cf_cv_need_libm" = yes
 then
@@ -10367,13 +10691,13 @@
 fi
 
 ###	Checks for header files.
-echo "$as_me:10370: checking for ANSI C header files" >&5
+echo "$as_me:10694: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10376 "configure"
+#line 10700 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -10381,13 +10705,13 @@
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:10384: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10708: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10390: \$? = $ac_status" >&5
+  echo "$as_me:10714: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -10409,7 +10733,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 10412 "configure"
+#line 10736 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -10427,7 +10751,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 10430 "configure"
+#line 10754 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -10448,7 +10772,7 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10451 "configure"
+#line 10775 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -10474,15 +10798,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10477: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10801: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10480: \$? = $ac_status" >&5
+  echo "$as_me:10804: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:10482: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10806: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10485: \$? = $ac_status" >&5
+  echo "$as_me:10809: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -10495,7 +10819,7 @@
 fi
 fi
 fi
-echo "$as_me:10498: result: $ac_cv_header_stdc" >&5
+echo "$as_me:10822: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -10508,13 +10832,13 @@
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:10511: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:10835: checking for $ac_hdr that defines DIR" >&5
 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10517 "configure"
+#line 10841 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -10529,16 +10853,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10532: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10856: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10535: \$? = $ac_status" >&5
+  echo "$as_me:10859: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10538: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10862: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10541: \$? = $ac_status" >&5
+  echo "$as_me:10865: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -10548,7 +10872,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:10551: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:10875: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -10561,7 +10885,7 @@
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-  echo "$as_me:10564: checking for opendir in -ldir" >&5
+  echo "$as_me:10888: checking for opendir in -ldir" >&5
 echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
 if test "${ac_cv_lib_dir_opendir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10569,7 +10893,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldir  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10572 "configure"
+#line 10896 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -10588,16 +10912,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10591: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10915: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10594: \$? = $ac_status" >&5
+  echo "$as_me:10918: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10597: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10921: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10600: \$? = $ac_status" >&5
+  echo "$as_me:10924: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dir_opendir=yes
 else
@@ -10608,14 +10932,14 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10611: result: $ac_cv_lib_dir_opendir" >&5
+echo "$as_me:10935: result: $ac_cv_lib_dir_opendir" >&5
 echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
 if test $ac_cv_lib_dir_opendir = yes; then
   LIBS="$LIBS -ldir"
 fi
 
 else
-  echo "$as_me:10618: checking for opendir in -lx" >&5
+  echo "$as_me:10942: checking for opendir in -lx" >&5
 echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
 if test "${ac_cv_lib_x_opendir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10623,7 +10947,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lx  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10626 "configure"
+#line 10950 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -10642,16 +10966,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10645: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10969: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10648: \$? = $ac_status" >&5
+  echo "$as_me:10972: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10651: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10975: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10654: \$? = $ac_status" >&5
+  echo "$as_me:10978: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_x_opendir=yes
 else
@@ -10662,7 +10986,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10665: result: $ac_cv_lib_x_opendir" >&5
+echo "$as_me:10989: result: $ac_cv_lib_x_opendir" >&5
 echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
 if test $ac_cv_lib_x_opendir = yes; then
   LIBS="$LIBS -lx"
@@ -10670,13 +10994,13 @@
 
 fi
 
-echo "$as_me:10673: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:10997: checking whether time.h and sys/time.h may both be included" >&5
 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
 if test "${ac_cv_header_time+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10679 "configure"
+#line 11003 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -10692,16 +11016,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10695: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11019: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10698: \$? = $ac_status" >&5
+  echo "$as_me:11022: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10701: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11025: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10704: \$? = $ac_status" >&5
+  echo "$as_me:11028: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_header_time=yes
 else
@@ -10711,7 +11035,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:10714: result: $ac_cv_header_time" >&5
+echo "$as_me:11038: result: $ac_cv_header_time" >&5
 echo "${ECHO_T}$ac_cv_header_time" >&6
 if test $ac_cv_header_time = yes; then
 
@@ -10721,14 +11045,14 @@
 
 fi
 
-echo "$as_me:10724: checking for regular-expression headers" >&5
+echo "$as_me:11048: checking for regular-expression headers" >&5
 echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
 if test "${cf_cv_regex+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 10731 "configure"
+#line 11055 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -10746,16 +11070,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10749: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11073: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10752: \$? = $ac_status" >&5
+  echo "$as_me:11076: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10755: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11079: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10758: \$? = $ac_status" >&5
+  echo "$as_me:11082: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regex.h"
 else
@@ -10763,7 +11087,7 @@
 cat conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 10766 "configure"
+#line 11090 "configure"
 #include "confdefs.h"
 #include <regexp.h>
 int
@@ -10778,16 +11102,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10781: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11105: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10784: \$? = $ac_status" >&5
+  echo "$as_me:11108: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10787: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11111: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10790: \$? = $ac_status" >&5
+  echo "$as_me:11114: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexp.h"
 else
@@ -10797,7 +11121,7 @@
 		cf_save_LIBS="$LIBS"
 		LIBS="-lgen $LIBS"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 10800 "configure"
+#line 11124 "configure"
 #include "confdefs.h"
 #include <regexpr.h>
 int
@@ -10812,16 +11136,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10815: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11139: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10818: \$? = $ac_status" >&5
+  echo "$as_me:11142: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10821: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11145: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10824: \$? = $ac_status" >&5
+  echo "$as_me:11148: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexpr.h"
 else
@@ -10837,7 +11161,7 @@
 
 fi
 
-echo "$as_me:10840: result: $cf_cv_regex" >&5
+echo "$as_me:11164: result: $cf_cv_regex" >&5
 echo "${ECHO_T}$cf_cv_regex" >&6
 case $cf_cv_regex in
 	regex.h)   cat >>confdefs.h <<\EOF
@@ -10873,23 +11197,23 @@
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:10876: checking for $ac_header" >&5
+echo "$as_me:11200: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10882 "configure"
+#line 11206 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:10886: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:11210: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10892: \$? = $ac_status" >&5
+  echo "$as_me:11216: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -10908,7 +11232,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:10911: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:11235: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -10922,7 +11246,7 @@
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 if test "$ISC" = yes ; then
 
-echo "$as_me:10925: checking for main in -lcposix" >&5
+echo "$as_me:11249: checking for main in -lcposix" >&5
 echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
 if test "${ac_cv_lib_cposix_main+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10930,7 +11254,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcposix  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10933 "configure"
+#line 11257 "configure"
 #include "confdefs.h"
 
 int
@@ -10942,16 +11266,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10945: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11269: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10948: \$? = $ac_status" >&5
+  echo "$as_me:11272: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10951: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11275: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10954: \$? = $ac_status" >&5
+  echo "$as_me:11278: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_cposix_main=yes
 else
@@ -10962,7 +11286,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10965: result: $ac_cv_lib_cposix_main" >&5
+echo "$as_me:11289: result: $ac_cv_lib_cposix_main" >&5
 echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
 if test $ac_cv_lib_cposix_main = yes; then
   cat >>confdefs.h <<EOF
@@ -10973,7 +11297,7 @@
 
 fi
 
-	echo "$as_me:10976: checking for bzero in -linet" >&5
+	echo "$as_me:11300: checking for bzero in -linet" >&5
 echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
 if test "${ac_cv_lib_inet_bzero+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10981,7 +11305,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-linet  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10984 "configure"
+#line 11308 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -11000,16 +11324,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11003: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11327: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11006: \$? = $ac_status" >&5
+  echo "$as_me:11330: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11009: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11333: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11012: \$? = $ac_status" >&5
+  echo "$as_me:11336: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_inet_bzero=yes
 else
@@ -11020,21 +11344,21 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11023: result: $ac_cv_lib_inet_bzero" >&5
+echo "$as_me:11347: result: $ac_cv_lib_inet_bzero" >&5
 echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
 if test $ac_cv_lib_inet_bzero = yes; then
   LIBS="$LIBS -linet"
 fi
 fi
 
-echo "$as_me:11030: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:11354: checking if sys/time.h works with sys/select.h" >&5
 echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
 if test "${cf_cv_sys_time_select+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 11037 "configure"
+#line 11361 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11054,16 +11378,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11057: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11381: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11060: \$? = $ac_status" >&5
+  echo "$as_me:11384: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11063: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11387: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11066: \$? = $ac_status" >&5
+  echo "$as_me:11390: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sys_time_select=yes
 else
@@ -11075,7 +11399,7 @@
 
 fi
 
-echo "$as_me:11078: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:11402: result: $cf_cv_sys_time_select" >&5
 echo "${ECHO_T}$cf_cv_sys_time_select" >&6
 test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_SYS_TIME_SELECT 1
@@ -11089,7 +11413,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ac_main_return=return
 
-echo "$as_me:11092: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:11416: checking for $CC option to accept ANSI C" >&5
 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11097,7 +11421,7 @@
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line 11100 "configure"
+#line 11424 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -11146,16 +11470,16 @@
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11149: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11473: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11152: \$? = $ac_status" >&5
+  echo "$as_me:11476: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11155: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11479: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11158: \$? = $ac_status" >&5
+  echo "$as_me:11482: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_stdc=$ac_arg
 break
@@ -11172,21 +11496,21 @@
 
 case "x$ac_cv_prog_cc_stdc" in
   x|xno)
-    echo "$as_me:11175: result: none needed" >&5
+    echo "$as_me:11499: result: none needed" >&5
 echo "${ECHO_T}none needed" >&6 ;;
   *)
-    echo "$as_me:11178: result: $ac_cv_prog_cc_stdc" >&5
+    echo "$as_me:11502: result: $ac_cv_prog_cc_stdc" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
     CC="$CC $ac_cv_prog_cc_stdc" ;;
 esac
 
-echo "$as_me:11183: checking for an ANSI C-conforming const" >&5
+echo "$as_me:11507: checking for an ANSI C-conforming const" >&5
 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
 if test "${ac_cv_c_const+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11189 "configure"
+#line 11513 "configure"
 #include "confdefs.h"
 
 int
@@ -11244,16 +11568,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11247: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11571: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11250: \$? = $ac_status" >&5
+  echo "$as_me:11574: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11253: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11577: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11256: \$? = $ac_status" >&5
+  echo "$as_me:11580: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
@@ -11263,7 +11587,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:11266: result: $ac_cv_c_const" >&5
+echo "$as_me:11590: result: $ac_cv_c_const" >&5
 echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
 
@@ -11273,7 +11597,7 @@
 
 fi
 
-echo "$as_me:11276: checking for inline" >&5
+echo "$as_me:11600: checking for inline" >&5
 echo $ECHO_N "checking for inline... $ECHO_C" >&6
 if test "${ac_cv_c_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11281,7 +11605,7 @@
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat >conftest.$ac_ext <<_ACEOF
-#line 11284 "configure"
+#line 11608 "configure"
 #include "confdefs.h"
 #ifndef __cplusplus
 static $ac_kw int static_foo () {return 0; }
@@ -11290,16 +11614,16 @@
 
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11293: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11617: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11296: \$? = $ac_status" >&5
+  echo "$as_me:11620: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11299: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11623: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11302: \$? = $ac_status" >&5
+  echo "$as_me:11626: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_inline=$ac_kw; break
 else
@@ -11310,7 +11634,7 @@
 done
 
 fi
-echo "$as_me:11313: result: $ac_cv_c_inline" >&5
+echo "$as_me:11637: result: $ac_cv_c_inline" >&5
 echo "${ECHO_T}$ac_cv_c_inline" >&6
 case $ac_cv_c_inline in
   inline | yes) ;;
@@ -11327,69 +11651,250 @@
 
 NCURSES_INLINE=
 if test "$ac_cv_c_inline" != no ; then
-	cat >>confdefs.h <<\EOF
-#define CC_HAS_INLINE_FUNCS 1
-EOF
-
-	NCURSES_INLINE=inline
-fi
-
-if test $NCURSES_CHTYPE = auto ; then
-
-echo "$as_me:11339: checking for type of chtype" >&5
-echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
-if test "${cf_cv_typeof_chtype+set}" = set; then
+  NCURSES_INLINE=inline
+  if test "$INTEL_COMPILER" = yes
+  then
+    :
+  elif test "$GCC" = yes
+  then
+    echo "$as_me:11660: checking if gcc supports options to tune inlining" >&5
+echo $ECHO_N "checking if gcc supports options to tune inlining... $ECHO_C" >&6
+if test "${cf_cv_gcc_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-		if test "$cross_compiling" = yes; then
-  cf_cv_typeof_chtype=long
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line 11349 "configure"
+      cf_save_CFLAGS=$CFLAGS
+      CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
+      cat >conftest.$ac_ext <<_ACEOF
+#line 11669 "configure"
 #include "confdefs.h"
-
-#define WANT_BITS 31
-#include <stdio.h>
-int main()
+inline int foo(void) { return 1; }
+int
+main ()
 {
-	FILE *fp = fopen("cf_test.out", "w");
-	if (fp != 0) {
-		char *result = "long";
-		if (sizeof(unsigned long) > sizeof(unsigned int)) {
-			int n;
-			unsigned int x, y;
-			for (n = 0; n < WANT_BITS; n++) {
-				x = (1 << n);
-				y = (x >> n);
-				if (y != 1 || x == 0) {
-					x = 0;
-					break;
-				}
-			}
-			/*
-			 * If x is nonzero, an int is big enough for the bits
-			 * that we want.
-			 */
-			result = (x != 0) ? "int" : "long";
-		}
-		fputs(result, fp);
-		fclose(fp);
-	}
-	${cf_cv_main_return:-return}(0);
+${cf_cv_main_return:-return} foo()
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:11681: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:11684: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:11687: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:11690: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_gcc_inline=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_gcc_inline=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+      CFLAGS=$cf_save_CFLAGS
+
+fi
+echo "$as_me:11702: result: $cf_cv_gcc_inline" >&5
+echo "${ECHO_T}$cf_cv_gcc_inline" >&6
+    if test "$cf_cv_gcc_inline" = yes ; then
+
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in --param max-inline-insns-single=1200
+do
+case $cf_fix_cppflags in
+no)
+	case $cf_add_cflags in #(vi
+	-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+		case $cf_add_cflags in
+		-D*)
+			cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+			&& test -z "${cf_tst_cflags}" \
+			&& cf_fix_cppflags=yes
+
+			if test $cf_fix_cppflags = yes ; then
+				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+				continue
+			elif test "${cf_tst_cflags}" = "\"'" ; then
+				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+				continue
+			fi
+			;;
+		esac
+		case "$CPPFLAGS" in
+		*$cf_add_cflags) #(vi
+			;;
+		*) #(vi
+			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+			;;
+		esac
+		;;
+	*)
+		cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+		;;
+	esac
+	;;
+yes)
+	cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+	&& test -z "${cf_tst_cflags}" \
+	&& cf_fix_cppflags=no
+	;;
+esac
+done
+
+if test -n "$cf_new_cflags" ; then
+
+	CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+
+	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+    fi
+  fi
+fi
+
+echo "$as_me:11778: checking for signal global datatype" >&5
+echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
+if test "${cf_cv_sig_atomic_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	for cf_type in \
+		"volatile sig_atomic_t" \
+		"sig_atomic_t" \
+		"int"
+	do
+	cat >conftest.$ac_ext <<_ACEOF
+#line 11790 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+
+extern $cf_type x;
+$cf_type x;
+static void handler(int sig)
+{
+	x = 5;
+}
+int
+main ()
+{
+signal(SIGINT, handler);
+		 x = 1
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:11813: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:11816: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:11819: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:11822: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  cf_cv_sig_atomic_t=$cf_type
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_sig_atomic_t=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+		test "$cf_cv_sig_atomic_t" != no && break
+	done
+
+fi
+
+echo "$as_me:11836: result: $cf_cv_sig_atomic_t" >&5
+echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
+test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
+#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+EOF
+
+if test $NCURSES_CHTYPE = auto ; then
+
+echo "$as_me:11844: checking for type of chtype" >&5
+echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+if test "${cf_cv_typeof_chtype+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+		if test "$cross_compiling" = yes; then
+  cf_cv_typeof_chtype=long
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 11854 "configure"
+#include "confdefs.h"
+
+#define WANT_BITS 31
+#include <stdio.h>
+int main()
+{
+	FILE *fp = fopen("cf_test.out", "w");
+	if (fp != 0) {
+		char *result = "long";
+		if (sizeof(unsigned long) > sizeof(unsigned int)) {
+			int n;
+			unsigned int x, y;
+			for (n = 0; n < WANT_BITS; n++) {
+				x = (1 << n);
+				y = (x >> n);
+				if (y != 1 || x == 0) {
+					x = 0;
+					break;
+				}
+			}
+			/*
+			 * If x is nonzero, an int is big enough for the bits
+			 * that we want.
+			 */
+			result = (x != 0) ? "int" : "long";
+		}
+		fputs(result, fp);
+		fclose(fp);
+	}
+	${cf_cv_main_return:-return}(0);
 }
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11384: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11889: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11387: \$? = $ac_status" >&5
+  echo "$as_me:11892: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11389: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11894: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11392: \$? = $ac_status" >&5
+  echo "$as_me:11897: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_typeof_chtype=`cat cf_test.out`
 else
@@ -11404,7 +11909,7 @@
 
 fi
 
-echo "$as_me:11407: result: $cf_cv_typeof_chtype" >&5
+echo "$as_me:11912: result: $cf_cv_typeof_chtype" >&5
 echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
 
 cat >>confdefs.h <<EOF
@@ -11414,15 +11919,16 @@
 else
 	cf_cv_typeof_chtype=$NCURSES_CHTYPE
 fi
+test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
 
-echo "$as_me:11418: checking if unsigned literals are legal" >&5
+echo "$as_me:11924: checking if unsigned literals are legal" >&5
 echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
 if test "${cf_cv_unsigned_literals+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 11425 "configure"
+#line 11931 "configure"
 #include "confdefs.h"
 
 int
@@ -11434,16 +11940,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11437: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11943: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11440: \$? = $ac_status" >&5
+  echo "$as_me:11946: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11443: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11949: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11446: \$? = $ac_status" >&5
+  echo "$as_me:11952: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_unsigned_literals=yes
 else
@@ -11455,29 +11961,30 @@
 
 fi
 
-echo "$as_me:11458: result: $cf_cv_unsigned_literals" >&5
+echo "$as_me:11964: result: $cf_cv_unsigned_literals" >&5
 echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
 
 cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
+test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
+test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
 
 if test $NCURSES_MMASK_T = auto ; then
 	cf_cv_typeof_mmask_t=long
 else
 	cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
 fi
+test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
 
 ###	Checks for external-data
 
-echo "$as_me:11473: checking if external errno is declared" >&5
+echo "$as_me:11980: checking if external errno is declared" >&5
 echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
 if test "${cf_cv_dcl_errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
-#line 11480 "configure"
+#line 11987 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -11495,16 +12002,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11498: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12005: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11501: \$? = $ac_status" >&5
+  echo "$as_me:12008: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11504: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12011: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11507: \$? = $ac_status" >&5
+  echo "$as_me:12014: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_dcl_errno=yes
 else
@@ -11515,7 +12022,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:11518: result: $cf_cv_dcl_errno" >&5
+echo "$as_me:12025: result: $cf_cv_dcl_errno" >&5
 echo "${ECHO_T}$cf_cv_dcl_errno" >&6
 
 if test "$cf_cv_dcl_errno" = no ; then
@@ -11530,14 +12037,14 @@
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
-echo "$as_me:11533: checking if external errno exists" >&5
+echo "$as_me:12040: checking if external errno exists" >&5
 echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
 if test "${cf_cv_have_errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
-#line 11540 "configure"
+#line 12047 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -11552,16 +12059,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11555: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12062: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11558: \$? = $ac_status" >&5
+  echo "$as_me:12065: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11561: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12068: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11564: \$? = $ac_status" >&5
+  echo "$as_me:12071: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_errno=yes
 else
@@ -11572,7 +12079,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:11575: result: $cf_cv_have_errno" >&5
+echo "$as_me:12082: result: $cf_cv_have_errno" >&5
 echo "${ECHO_T}$cf_cv_have_errno" >&6
 
 if test "$cf_cv_have_errno" = yes ; then
@@ -11585,7 +12092,7 @@
 
 fi
 
-echo "$as_me:11588: checking if data-only library module links" >&5
+echo "$as_me:12095: checking if data-only library module links" >&5
 echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
 if test "${cf_cv_link_dataonly+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11593,20 +12100,20 @@
 
 	rm -f conftest.a
 	cat >conftest.$ac_ext <<EOF
-#line 11596 "configure"
+#line 12103 "configure"
 int	testdata[3] = { 123, 456, 789 };
 EOF
-	if { (eval echo "$as_me:11599: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:12106: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11602: \$? = $ac_status" >&5
+  echo "$as_me:12109: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
 		mv conftest.o data.o && \
 		( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
 	fi
 	rm -f conftest.$ac_ext data.o
 	cat >conftest.$ac_ext <<EOF
-#line 11609 "configure"
+#line 12116 "configure"
 int	testfunc()
 {
 #if defined(NeXT)
@@ -11619,10 +12126,10 @@
 #endif
 }
 EOF
-	if { (eval echo "$as_me:11622: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:12129: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11625: \$? = $ac_status" >&5
+  echo "$as_me:12132: \$? = $ac_status" >&5
   (exit $ac_status); }; then
 		mv conftest.o func.o && \
 		( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
@@ -11635,7 +12142,7 @@
   cf_cv_link_dataonly=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11638 "configure"
+#line 12145 "configure"
 #include "confdefs.h"
 
 	int main()
@@ -11646,15 +12153,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11649: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12156: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11652: \$? = $ac_status" >&5
+  echo "$as_me:12159: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11654: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12161: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11657: \$? = $ac_status" >&5
+  echo "$as_me:12164: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_link_dataonly=yes
 else
@@ -11669,7 +12176,7 @@
 
 fi
 
-echo "$as_me:11672: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:12179: result: $cf_cv_link_dataonly" >&5
 echo "${ECHO_T}$cf_cv_link_dataonly" >&6
 
 if test "$cf_cv_link_dataonly" = no ; then
@@ -11704,13 +12211,13 @@
 
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:11707: checking for $ac_func" >&5
+echo "$as_me:12214: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11713 "configure"
+#line 12220 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -11741,16 +12248,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11744: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12251: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11747: \$? = $ac_status" >&5
+  echo "$as_me:12254: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11750: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12257: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11753: \$? = $ac_status" >&5
+  echo "$as_me:12260: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -11760,7 +12267,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:11763: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:12270: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -11772,14 +12279,14 @@
 
 if test "$with_getcap" = "yes" ; then
 
-echo "$as_me:11775: checking for terminal-capability database functions" >&5
+echo "$as_me:12282: checking for terminal-capability database functions" >&5
 echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
 if test "${cf_cv_cgetent+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 11782 "configure"
+#line 12289 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -11799,16 +12306,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11802: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12309: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11805: \$? = $ac_status" >&5
+  echo "$as_me:12312: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11808: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12315: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11811: \$? = $ac_status" >&5
+  echo "$as_me:12318: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cgetent=yes
 else
@@ -11820,7 +12327,7 @@
 
 fi
 
-echo "$as_me:11823: result: $cf_cv_cgetent" >&5
+echo "$as_me:12330: result: $cf_cv_cgetent" >&5
 echo "${ECHO_T}$cf_cv_cgetent" >&6
 test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_BSD_CGETENT 1
@@ -11828,14 +12335,14 @@
 
 fi
 
-echo "$as_me:11831: checking for isascii" >&5
+echo "$as_me:12338: checking for isascii" >&5
 echo $ECHO_N "checking for isascii... $ECHO_C" >&6
 if test "${cf_cv_have_isascii+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 11838 "configure"
+#line 12345 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 int
@@ -11847,16 +12354,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11850: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12357: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11853: \$? = $ac_status" >&5
+  echo "$as_me:12360: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11856: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12363: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11859: \$? = $ac_status" >&5
+  echo "$as_me:12366: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_isascii=yes
 else
@@ -11867,17 +12374,17 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:11870: result: $cf_cv_have_isascii" >&5
+echo "$as_me:12377: result: $cf_cv_have_isascii" >&5
 echo "${ECHO_T}$cf_cv_have_isascii" >&6
 test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_ISASCII 1
 EOF
 
 if test "$ac_cv_func_sigaction" = yes; then
-echo "$as_me:11877: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo "$as_me:12384: checking whether sigaction needs _POSIX_SOURCE" >&5
 echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line 11880 "configure"
+#line 12387 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11891,16 +12398,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11894: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12401: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11897: \$? = $ac_status" >&5
+  echo "$as_me:12404: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11900: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12407: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11903: \$? = $ac_status" >&5
+  echo "$as_me:12410: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=no
 else
@@ -11908,7 +12415,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 11911 "configure"
+#line 12418 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -11923,16 +12430,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11926: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12433: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11929: \$? = $ac_status" >&5
+  echo "$as_me:12436: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11932: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12439: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11935: \$? = $ac_status" >&5
+  echo "$as_me:12442: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=yes
 	 cat >>confdefs.h <<\EOF
@@ -11947,11 +12454,11 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:11950: result: $sigact_bad" >&5
+echo "$as_me:12457: result: $sigact_bad" >&5
 echo "${ECHO_T}$sigact_bad" >&6
 fi
 
-echo "$as_me:11954: checking if nanosleep really works" >&5
+echo "$as_me:12461: checking if nanosleep really works" >&5
 echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
 if test "${cf_cv_func_nanosleep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11961,7 +12468,7 @@
   cf_cv_func_nanosleep=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11964 "configure"
+#line 12471 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -11986,15 +12493,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11989: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12496: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11992: \$? = $ac_status" >&5
+  echo "$as_me:12499: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11994: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12501: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11997: \$? = $ac_status" >&5
+  echo "$as_me:12504: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_nanosleep=yes
 else
@@ -12006,7 +12513,7 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:12009: result: $cf_cv_func_nanosleep" >&5
+echo "$as_me:12516: result: $cf_cv_func_nanosleep" >&5
 echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
 
 test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
@@ -12020,23 +12527,23 @@
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:12023: checking for $ac_header" >&5
+echo "$as_me:12530: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12029 "configure"
+#line 12536 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:12033: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12540: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:12039: \$? = $ac_status" >&5
+  echo "$as_me:12546: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -12055,7 +12562,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:12058: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:12565: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -12070,23 +12577,23 @@
 for ac_header in sys/termio.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:12073: checking for $ac_header" >&5
+echo "$as_me:12580: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12079 "configure"
+#line 12586 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:12083: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12590: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:12089: \$? = $ac_status" >&5
+  echo "$as_me:12596: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -12105,7 +12612,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:12108: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:12615: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -12123,10 +12630,10 @@
 	*)	termios_bad=maybe ;;
 	esac
 	if test "$termios_bad" = maybe ; then
-	echo "$as_me:12126: checking whether termios.h needs _POSIX_SOURCE" >&5
+	echo "$as_me:12633: checking whether termios.h needs _POSIX_SOURCE" >&5
 echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 12129 "configure"
+#line 12636 "configure"
 #include "confdefs.h"
 #include <termios.h>
 int
@@ -12138,16 +12645,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12141: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12648: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12144: \$? = $ac_status" >&5
+  echo "$as_me:12651: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12147: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12654: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12150: \$? = $ac_status" >&5
+  echo "$as_me:12657: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=no
 else
@@ -12155,7 +12662,7 @@
 cat conftest.$ac_ext >&5
 
 		cat >conftest.$ac_ext <<_ACEOF
-#line 12158 "configure"
+#line 12665 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -12169,16 +12676,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12172: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12679: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12175: \$? = $ac_status" >&5
+  echo "$as_me:12682: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12178: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12685: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12181: \$? = $ac_status" >&5
+  echo "$as_me:12688: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=unknown
 else
@@ -12193,19 +12700,19 @@
 
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-	echo "$as_me:12196: result: $termios_bad" >&5
+	echo "$as_me:12703: result: $termios_bad" >&5
 echo "${ECHO_T}$termios_bad" >&6
 	fi
 fi
 
-echo "$as_me:12201: checking for tcgetattr" >&5
+echo "$as_me:12708: checking for tcgetattr" >&5
 echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
 if test "${cf_cv_have_tcgetattr+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12208 "configure"
+#line 12715 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12233,16 +12740,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12236: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12743: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12239: \$? = $ac_status" >&5
+  echo "$as_me:12746: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12242: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12749: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12245: \$? = $ac_status" >&5
+  echo "$as_me:12752: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_tcgetattr=yes
 else
@@ -12252,20 +12759,20 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12255: result: $cf_cv_have_tcgetattr" >&5
+echo "$as_me:12762: result: $cf_cv_have_tcgetattr" >&5
 echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
 test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TCGETATTR 1
 EOF
 
-echo "$as_me:12261: checking for vsscanf function or workaround" >&5
+echo "$as_me:12768: checking for vsscanf function or workaround" >&5
 echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
 if test "${cf_cv_func_vsscanf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12268 "configure"
+#line 12775 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -12281,16 +12788,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12284: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12791: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12287: \$? = $ac_status" >&5
+  echo "$as_me:12794: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12290: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12797: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12293: \$? = $ac_status" >&5
+  echo "$as_me:12800: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vsscanf
 else
@@ -12298,7 +12805,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12301 "configure"
+#line 12808 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -12320,16 +12827,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12323: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12830: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12326: \$? = $ac_status" >&5
+  echo "$as_me:12833: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12329: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12836: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12332: \$? = $ac_status" >&5
+  echo "$as_me:12839: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vfscanf
 else
@@ -12337,7 +12844,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12340 "configure"
+#line 12847 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -12359,16 +12866,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12362: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12869: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12365: \$? = $ac_status" >&5
+  echo "$as_me:12872: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12368: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12875: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12371: \$? = $ac_status" >&5
+  echo "$as_me:12878: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=_doscan
 else
@@ -12383,7 +12890,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12386: result: $cf_cv_func_vsscanf" >&5
+echo "$as_me:12893: result: $cf_cv_func_vsscanf" >&5
 echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
 
 case $cf_cv_func_vsscanf in #(vi
@@ -12401,7 +12908,7 @@
 ;;
 esac
 
-echo "$as_me:12404: checking for working mkstemp" >&5
+echo "$as_me:12911: checking for working mkstemp" >&5
 echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
 if test "${cf_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12409,13 +12916,13 @@
 
 rm -f conftest*
 if test "$cross_compiling" = yes; then
-  echo "$as_me:12412: checking for mkstemp" >&5
+  echo "$as_me:12919: checking for mkstemp" >&5
 echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
 if test "${ac_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12418 "configure"
+#line 12925 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char mkstemp (); below.  */
@@ -12446,16 +12953,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12449: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12956: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12452: \$? = $ac_status" >&5
+  echo "$as_me:12959: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12455: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12962: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12458: \$? = $ac_status" >&5
+  echo "$as_me:12965: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_mkstemp=yes
 else
@@ -12465,12 +12972,12 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12468: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:12975: result: $ac_cv_func_mkstemp" >&5
 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
 
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12473 "configure"
+#line 12980 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12508,15 +13015,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12511: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13018: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12514: \$? = $ac_status" >&5
+  echo "$as_me:13021: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:12516: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13023: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12519: \$? = $ac_status" >&5
+  echo "$as_me:13026: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_mkstemp=yes
 
@@ -12531,7 +13038,7 @@
 fi
 
 fi
-echo "$as_me:12534: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:13041: result: $cf_cv_func_mkstemp" >&5
 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
 if test "$cf_cv_func_mkstemp" = yes ; then
 	cat >>confdefs.h <<\EOF
@@ -12549,21 +13056,21 @@
 fi
 
 if test "$cross_compiling" = yes ; then
-	{ echo "$as_me:12552: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+	{ echo "$as_me:13059: WARNING: cross compiling: assume setvbuf params not reversed" >&5
 echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
 else
-	echo "$as_me:12555: checking whether setvbuf arguments are reversed" >&5
+	echo "$as_me:13062: checking whether setvbuf arguments are reversed" >&5
 echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
 if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:12561: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:13068: error: cannot run test program while cross compiling" >&5
 echo "$as_me: error: cannot run test program while cross compiling" >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12566 "configure"
+#line 13073 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 /* If setvbuf has the reversed format, exit 0. */
@@ -12580,15 +13087,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12583: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13090: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12586: \$? = $ac_status" >&5
+  echo "$as_me:13093: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:12588: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13095: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12591: \$? = $ac_status" >&5
+  echo "$as_me:13098: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_setvbuf_reversed=yes
 else
@@ -12601,7 +13108,7 @@
 fi
 rm -f core core.* *.core
 fi
-echo "$as_me:12604: result: $ac_cv_func_setvbuf_reversed" >&5
+echo "$as_me:13111: result: $ac_cv_func_setvbuf_reversed" >&5
 echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
 if test $ac_cv_func_setvbuf_reversed = yes; then
 
@@ -12612,13 +13119,13 @@
 fi
 
 fi
-echo "$as_me:12615: checking return type of signal handlers" >&5
+echo "$as_me:13122: checking return type of signal handlers" >&5
 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
 if test "${ac_cv_type_signal+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12621 "configure"
+#line 13128 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -12640,16 +13147,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12643: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13150: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12646: \$? = $ac_status" >&5
+  echo "$as_me:13153: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12649: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13156: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12652: \$? = $ac_status" >&5
+  echo "$as_me:13159: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_signal=void
 else
@@ -12659,21 +13166,21 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:12662: result: $ac_cv_type_signal" >&5
+echo "$as_me:13169: result: $ac_cv_type_signal" >&5
 echo "${ECHO_T}$ac_cv_type_signal" >&6
 
 cat >>confdefs.h <<EOF
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
-echo "$as_me:12669: checking for type sigaction_t" >&5
+echo "$as_me:13176: checking for type sigaction_t" >&5
 echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
 if test "${cf_cv_type_sigaction+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 12676 "configure"
+#line 13183 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -12686,16 +13193,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12689: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13196: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12692: \$? = $ac_status" >&5
+  echo "$as_me:13199: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12695: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13202: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12698: \$? = $ac_status" >&5
+  echo "$as_me:13205: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_sigaction=yes
 else
@@ -12706,13 +13213,13 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$as_me:12709: result: $cf_cv_type_sigaction" >&5
+echo "$as_me:13216: result: $cf_cv_type_sigaction" >&5
 echo "${ECHO_T}$cf_cv_type_sigaction" >&6
 test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TYPE_SIGACTION 1
 EOF
 
-echo "$as_me:12715: checking declaration of size-change" >&5
+echo "$as_me:13222: checking declaration of size-change" >&5
 echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
 if test "${cf_cv_sizechange+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12727,7 +13234,7 @@
     CPPFLAGS="$cf_save_CPPFLAGS"
     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
     cat >conftest.$ac_ext <<_ACEOF
-#line 12730 "configure"
+#line 13237 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
@@ -12771,16 +13278,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12774: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13281: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12777: \$? = $ac_status" >&5
+  echo "$as_me:13284: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12780: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13287: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12783: \$? = $ac_status" >&5
+  echo "$as_me:13290: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sizechange=yes
 else
@@ -12799,7 +13306,7 @@
 done
 
 fi
-echo "$as_me:12802: result: $cf_cv_sizechange" >&5
+echo "$as_me:13309: result: $cf_cv_sizechange" >&5
 echo "${ECHO_T}$cf_cv_sizechange" >&6
 if test "$cf_cv_sizechange" != no ; then
 	cat >>confdefs.h <<\EOF
@@ -12816,13 +13323,13 @@
 	esac
 fi
 
-echo "$as_me:12819: checking for memmove" >&5
+echo "$as_me:13326: checking for memmove" >&5
 echo $ECHO_N "checking for memmove... $ECHO_C" >&6
 if test "${ac_cv_func_memmove+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12825 "configure"
+#line 13332 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove (); below.  */
@@ -12853,16 +13360,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12856: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13363: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12859: \$? = $ac_status" >&5
+  echo "$as_me:13366: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12862: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13369: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12865: \$? = $ac_status" >&5
+  echo "$as_me:13372: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_memmove=yes
 else
@@ -12872,19 +13379,19 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12875: result: $ac_cv_func_memmove" >&5
+echo "$as_me:13382: result: $ac_cv_func_memmove" >&5
 echo "${ECHO_T}$ac_cv_func_memmove" >&6
 if test $ac_cv_func_memmove = yes; then
   :
 else
 
-echo "$as_me:12881: checking for bcopy" >&5
+echo "$as_me:13388: checking for bcopy" >&5
 echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
 if test "${ac_cv_func_bcopy+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12887 "configure"
+#line 13394 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy (); below.  */
@@ -12915,16 +13422,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12918: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13425: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12921: \$? = $ac_status" >&5
+  echo "$as_me:13428: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12924: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13431: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12927: \$? = $ac_status" >&5
+  echo "$as_me:13434: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_bcopy=yes
 else
@@ -12934,11 +13441,11 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12937: result: $ac_cv_func_bcopy" >&5
+echo "$as_me:13444: result: $ac_cv_func_bcopy" >&5
 echo "${ECHO_T}$ac_cv_func_bcopy" >&6
 if test $ac_cv_func_bcopy = yes; then
 
-	echo "$as_me:12941: checking if bcopy does overlapping moves" >&5
+	echo "$as_me:13448: checking if bcopy does overlapping moves" >&5
 echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
 if test "${cf_cv_good_bcopy+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12948,7 +13455,7 @@
   cf_cv_good_bcopy=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12951 "configure"
+#line 13458 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -12962,15 +13469,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12965: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13472: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12968: \$? = $ac_status" >&5
+  echo "$as_me:13475: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:12970: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13477: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12973: \$? = $ac_status" >&5
+  echo "$as_me:13480: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_good_bcopy=yes
 else
@@ -12983,7 +13490,7 @@
 fi
 
 fi
-echo "$as_me:12986: result: $cf_cv_good_bcopy" >&5
+echo "$as_me:13493: result: $cf_cv_good_bcopy" >&5
 echo "${ECHO_T}$cf_cv_good_bcopy" >&6
 
 else
@@ -13004,7 +13511,7 @@
 
 fi
 
-echo "$as_me:13007: checking if poll really works" >&5
+echo "$as_me:13514: checking if poll really works" >&5
 echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
 if test "${cf_cv_working_poll+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13014,7 +13521,7 @@
   cf_cv_working_poll=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13017 "configure"
+#line 13524 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -13035,15 +13542,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13038: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13545: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13041: \$? = $ac_status" >&5
+  echo "$as_me:13548: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:13043: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13550: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13046: \$? = $ac_status" >&5
+  echo "$as_me:13553: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_working_poll=yes
 else
@@ -13055,34 +13562,276 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:13058: result: $cf_cv_working_poll" >&5
+echo "$as_me:13565: result: $cf_cv_working_poll" >&5
 echo "${ECHO_T}$cf_cv_working_poll" >&6
 test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_WORKING_POLL 1
 EOF
 
+# special check for test/ditto.c
+
+echo "$as_me:13573: checking for openpty in -lutil" >&5
+echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
+if test "${ac_cv_lib_util_openpty+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lutil  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 13581 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char openpty ();
+int
+main ()
+{
+openpty ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:13600: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:13603: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:13606: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:13609: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_util_openpty=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_util_openpty=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:13620: result: $ac_cv_lib_util_openpty" >&5
+echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
+if test $ac_cv_lib_util_openpty = yes; then
+  cf_cv_lib_util=yes
+else
+  cf_cv_lib_util=no
+fi
+
+echo "$as_me:13628: checking for openpty header" >&5
+echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
+if test "${cf_cv_func_openpty+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    cf_save_LIBS="$LIBS"
+    test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
+    for cf_header in pty.h libutil.h util.h
+    do
+    cat >conftest.$ac_ext <<_ACEOF
+#line 13639 "configure"
+#include "confdefs.h"
+
+#include <$cf_header>
+
+int
+main ()
+{
+
+    int x = openpty((int *)0, (int *)0, (char *)0,
+                   (struct termios *)0, (struct winsize *)0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:13656: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:13659: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:13662: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:13665: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+        cf_cv_func_openpty=$cf_header
+        break
+
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+        cf_cv_func_openpty=no
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+    done
+    LIBS="$cf_save_LIBS"
+
+fi
+echo "$as_me:13683: result: $cf_cv_func_openpty" >&5
+echo "${ECHO_T}$cf_cv_func_openpty" >&6
+
+if test "$cf_cv_func_openpty" != no ; then
+    cat >>confdefs.h <<EOF
+#define USE_OPENPTY_HEADER <$cf_cv_func_openpty>
+EOF
+
+    cat >>confdefs.h <<\EOF
+#define USE_XTERM_PTY 1
+EOF
+
+    if test "$cf_cv_lib_util" = yes ; then
+        TEST_LIBS="-lutil $TEST_LIBS"
+    fi
+fi
+
 if test "$with_hashed_db" != no ; then
 	cat >>confdefs.h <<\EOF
 #define USE_HASHED_DB 1
 EOF
 
-echo "$as_me:13069: checking for db.h" >&5
+case $with_hashed_db in #(vi
+yes|*able*) #(vi
+    ;;
+*)
+    if test -d "$with_hashed_db" ; then
+
+if test -n "$with_hashed_db/include" ; then
+  for cf_add_incdir in $with_hashed_db/include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat >conftest.$ac_ext <<_ACEOF
+#line 13735 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int
+main ()
+{
+printf("Hello")
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:13747: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:13750: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:13753: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:13756: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_have_incdir=yes
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:13773: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+if test -n "$with_hashed_db/lib" ; then
+  for cf_add_libdir in $with_hashed_db/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:13807: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+    fi
+esac
+
+echo "$as_me:13818: checking for db.h" >&5
 echo $ECHO_N "checking for db.h... $ECHO_C" >&6
 if test "${ac_cv_header_db_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13075 "configure"
+#line 13824 "configure"
 #include "confdefs.h"
 #include <db.h>
 _ACEOF
-if { (eval echo "$as_me:13079: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:13828: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13085: \$? = $ac_status" >&5
+  echo "$as_me:13834: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -13101,11 +13850,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:13104: result: $ac_cv_header_db_h" >&5
+echo "$as_me:13853: result: $ac_cv_header_db_h" >&5
 echo "${ECHO_T}$ac_cv_header_db_h" >&6
 if test $ac_cv_header_db_h = yes; then
 
-echo "$as_me:13108: checking for version of db" >&5
+echo "$as_me:13857: checking for version of db" >&5
 echo $ECHO_N "checking for version of db... $ECHO_C" >&6
 if test "${cf_cv_hashed_db_version+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13113,13 +13862,13 @@
 
 cf_cv_hashed_db_version=unknown
 
-for cf_db_version in 1 2 3 4
+for cf_db_version in 1 2 3 4 5
 do
 
-echo "(line 13119) testing checking for db version $cf_db_version ..." 1>&5
+echo "${as_me-configure}:13868: testing checking for db version $cf_db_version ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13122 "configure"
+#line 13871 "configure"
 #include "confdefs.h"
 
 $ac_includes_default
@@ -13149,16 +13898,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13152: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13901: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13155: \$? = $ac_status" >&5
+  echo "$as_me:13904: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13158: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13907: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13161: \$? = $ac_status" >&5
+  echo "$as_me:13910: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	cf_cv_hashed_db_version=$cf_db_version
@@ -13172,33 +13921,33 @@
 done
 
 fi
-echo "$as_me:13175: result: $cf_cv_hashed_db_version" >&5
+echo "$as_me:13924: result: $cf_cv_hashed_db_version" >&5
 echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
 
 if test "$cf_cv_hashed_db_version" = unknown ; then
-	{ { echo "$as_me:13179: error: Cannot determine version of db" >&5
+	{ { echo "$as_me:13928: error: Cannot determine version of db" >&5
 echo "$as_me: error: Cannot determine version of db" >&2;}
    { (exit 1); exit 1; }; }
 else
 
-echo "$as_me:13184: checking for db libraries" >&5
+echo "$as_me:13933: checking for db libraries" >&5
 echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
 if test "${cf_cv_hashed_db_libs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cf_cv_hashed_db_libs=unknown
-for cf_db_libs in db$cf_cv_hashed_db_version db ''
+for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
 do
 	cf_save_libs="$LIBS"
 	if test -n "$cf_db_libs"; then
 		LIBS="-l$cf_db_libs $LIBS"
 	fi
 
-echo "(line 13198) testing checking for library "$cf_db_libs" ..." 1>&5
+echo "${as_me-configure}:13947: testing checking for library "$cf_db_libs" ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13201 "configure"
+#line 13950 "configure"
 #include "confdefs.h"
 
 $ac_includes_default
@@ -13253,16 +14002,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13256: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14005: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13259: \$? = $ac_status" >&5
+  echo "$as_me:14008: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13262: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14011: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13265: \$? = $ac_status" >&5
+  echo "$as_me:14014: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	if test -n "$cf_db_libs" ; then
@@ -13282,11 +14031,11 @@
 done
 
 fi
-echo "$as_me:13285: result: $cf_cv_hashed_db_libs" >&5
+echo "$as_me:14034: result: $cf_cv_hashed_db_libs" >&5
 echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
 
 	if test "$cf_cv_hashed_db_libs" = unknown ; then
-		{ { echo "$as_me:13289: error: Cannot determine library for db" >&5
+		{ { echo "$as_me:14038: error: Cannot determine library for db" >&5
 echo "$as_me: error: Cannot determine library for db" >&2;}
    { (exit 1); exit 1; }; }
 	elif test "$cf_cv_hashed_db_libs" != default ; then
@@ -13296,7 +14045,7 @@
 
 else
 
-	{ { echo "$as_me:13299: error: Cannot find db.h" >&5
+	{ { echo "$as_me:14048: error: Cannot find db.h" >&5
 echo "$as_me: error: Cannot find db.h" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -13311,7 +14060,7 @@
 
 # Just in case, check if the C compiler has a bool type.
 
-echo "$as_me:13314: checking if we should include stdbool.h" >&5
+echo "$as_me:14063: checking if we should include stdbool.h" >&5
 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
 
 if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -13319,7 +14068,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13322 "configure"
+#line 14071 "configure"
 #include "confdefs.h"
 
 int
@@ -13331,23 +14080,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13334: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14083: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13337: \$? = $ac_status" >&5
+  echo "$as_me:14086: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13340: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14089: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13343: \$? = $ac_status" >&5
+  echo "$as_me:14092: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=0
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 13350 "configure"
+#line 14099 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -13363,16 +14112,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13366: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14115: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13369: \$? = $ac_status" >&5
+  echo "$as_me:14118: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13372: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14121: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13375: \$? = $ac_status" >&5
+  echo "$as_me:14124: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -13386,13 +14135,13 @@
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then	echo "$as_me:13389: result: yes" >&5
+then	echo "$as_me:14138: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:13391: result: no" >&5
+else	echo "$as_me:14140: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:13395: checking for builtin bool type" >&5
+echo "$as_me:14144: checking for builtin bool type" >&5
 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
 
 if test "${cf_cv_cc_bool_type+set}" = set; then
@@ -13400,7 +14149,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13403 "configure"
+#line 14152 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -13415,16 +14164,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13418: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14167: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13421: \$? = $ac_status" >&5
+  echo "$as_me:14170: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13424: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14173: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13427: \$? = $ac_status" >&5
+  echo "$as_me:14176: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cc_bool_type=1
 else
@@ -13437,9 +14186,9 @@
 fi
 
 if test "$cf_cv_cc_bool_type" = 1
-then	echo "$as_me:13440: result: yes" >&5
+then	echo "$as_me:14189: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:13442: result: no" >&5
+else	echo "$as_me:14191: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -13461,7 +14210,7 @@
 	cf_stdcpp_libname=stdc++
 	;;
 esac
-echo "$as_me:13464: checking for library $cf_stdcpp_libname" >&5
+echo "$as_me:14213: checking for library $cf_stdcpp_libname" >&5
 echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
 if test "${cf_cv_libstdcpp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13470,7 +14219,7 @@
 	cf_save="$LIBS"
 	LIBS="$LIBS -l$cf_stdcpp_libname"
 cat >conftest.$ac_ext <<_ACEOF
-#line 13473 "configure"
+#line 14222 "configure"
 #include "confdefs.h"
 
 #include <strstream.h>
@@ -13486,16 +14235,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13489: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14238: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13492: \$? = $ac_status" >&5
+  echo "$as_me:14241: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13495: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14244: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13498: \$? = $ac_status" >&5
+  echo "$as_me:14247: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_libstdcpp=yes
 else
@@ -13507,12 +14256,12 @@
 	LIBS="$cf_save"
 
 fi
-echo "$as_me:13510: result: $cf_cv_libstdcpp" >&5
+echo "$as_me:14259: result: $cf_cv_libstdcpp" >&5
 echo "${ECHO_T}$cf_cv_libstdcpp" >&6
 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
 fi
 
-	echo "$as_me:13515: checking whether $CXX understands -c and -o together" >&5
+	echo "$as_me:14264: checking whether $CXX understands -c and -o together" >&5
 echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
 if test "${cf_cv_prog_CXX_c_o+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13528,15 +14277,15 @@
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:13531: \"$ac_try\"") >&5
+if { (eval echo "$as_me:14280: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13534: \$? = $ac_status" >&5
+  echo "$as_me:14283: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-  test -f conftest2.$ac_objext && { (eval echo "$as_me:13536: \"$ac_try\"") >&5
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:14285: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13539: \$? = $ac_status" >&5
+  echo "$as_me:14288: \$? = $ac_status" >&5
   (exit $ac_status); };
 then
   eval cf_cv_prog_CXX_c_o=yes
@@ -13547,10 +14296,10 @@
 
 fi
 if test $cf_cv_prog_CXX_c_o = yes; then
-  echo "$as_me:13550: result: yes" >&5
+  echo "$as_me:14299: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:13553: result: no" >&5
+  echo "$as_me:14302: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -13570,12 +14319,12 @@
 	;;
 esac
 if test "$GXX" = yes; then
-	echo "$as_me:13573: checking for lib$cf_gpp_libname" >&5
+	echo "$as_me:14322: checking for lib$cf_gpp_libname" >&5
 echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
 	cf_save="$LIBS"
 	LIBS="$LIBS -l$cf_gpp_libname"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13578 "configure"
+#line 14327 "configure"
 #include "confdefs.h"
 
 #include <$cf_gpp_libname/builtin.h>
@@ -13589,16 +14338,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13592: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14341: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13595: \$? = $ac_status" >&5
+  echo "$as_me:14344: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13598: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14347: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13601: \$? = $ac_status" >&5
+  echo "$as_me:14350: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -13617,7 +14366,7 @@
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 13620 "configure"
+#line 14369 "configure"
 #include "confdefs.h"
 
 #include <builtin.h>
@@ -13631,16 +14380,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13634: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14383: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13637: \$? = $ac_status" >&5
+  echo "$as_me:14386: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13640: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14389: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13643: \$? = $ac_status" >&5
+  echo "$as_me:14392: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -13657,7 +14406,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 	LIBS="$cf_save"
-	echo "$as_me:13660: result: $cf_cxx_library" >&5
+	echo "$as_me:14409: result: $cf_cxx_library" >&5
 echo "${ECHO_T}$cf_cxx_library" >&6
 fi
 
@@ -13673,7 +14422,7 @@
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 ac_main_return=return
-echo "$as_me:13676: checking how to run the C++ preprocessor" >&5
+echo "$as_me:14425: checking how to run the C++ preprocessor" >&5
 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
 if test -z "$CXXCPP"; then
   if test "${ac_cv_prog_CXXCPP+set}" = set; then
@@ -13690,18 +14439,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 13693 "configure"
+#line 14442 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:13698: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14447: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13704: \$? = $ac_status" >&5
+  echo "$as_me:14453: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -13724,17 +14473,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 13727 "configure"
+#line 14476 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:13731: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14480: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13737: \$? = $ac_status" >&5
+  echo "$as_me:14486: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -13771,7 +14520,7 @@
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-echo "$as_me:13774: result: $CXXCPP" >&5
+echo "$as_me:14523: result: $CXXCPP" >&5
 echo "${ECHO_T}$CXXCPP" >&6
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
@@ -13781,18 +14530,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 13784 "configure"
+#line 14533 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:13789: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14538: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13795: \$? = $ac_status" >&5
+  echo "$as_me:14544: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -13815,17 +14564,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 13818 "configure"
+#line 14567 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:13822: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14571: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13828: \$? = $ac_status" >&5
+  echo "$as_me:14577: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -13853,7 +14602,7 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:13856: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+  { { echo "$as_me:14605: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -13865,26 +14614,26 @@
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 ac_main_return=return
 
-for ac_header in typeinfo
+for ac_header in iostream typeinfo
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:13871: checking for $ac_header" >&5
+echo "$as_me:14620: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13877 "configure"
+#line 14626 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:13881: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14630: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13887: \$? = $ac_status" >&5
+  echo "$as_me:14636: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -13903,7 +14652,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:13906: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:14655: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -13913,7 +14662,7 @@
 fi
 done
 
-echo "$as_me:13916: checking if we should include stdbool.h" >&5
+echo "$as_me:14665: checking if we should include stdbool.h" >&5
 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
 
 if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -13921,7 +14670,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13924 "configure"
+#line 14673 "configure"
 #include "confdefs.h"
 
 int
@@ -13933,23 +14682,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13936: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14685: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13939: \$? = $ac_status" >&5
+  echo "$as_me:14688: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13942: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14691: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13945: \$? = $ac_status" >&5
+  echo "$as_me:14694: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=0
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 13952 "configure"
+#line 14701 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -13965,16 +14714,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13968: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14717: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13971: \$? = $ac_status" >&5
+  echo "$as_me:14720: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13974: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14723: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13977: \$? = $ac_status" >&5
+  echo "$as_me:14726: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -13988,13 +14737,13 @@
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then	echo "$as_me:13991: result: yes" >&5
+then	echo "$as_me:14740: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:13993: result: no" >&5
+else	echo "$as_me:14742: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:13997: checking for builtin bool type" >&5
+echo "$as_me:14746: checking for builtin bool type" >&5
 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
 
 if test "${cf_cv_builtin_bool+set}" = set; then
@@ -14002,7 +14751,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14005 "configure"
+#line 14754 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -14017,16 +14766,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14020: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14769: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14023: \$? = $ac_status" >&5
+  echo "$as_me:14772: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14026: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14775: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14029: \$? = $ac_status" >&5
+  echo "$as_me:14778: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_builtin_bool=1
 else
@@ -14039,13 +14788,13 @@
 fi
 
 if test "$cf_cv_builtin_bool" = 1
-then	echo "$as_me:14042: result: yes" >&5
+then	echo "$as_me:14791: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:14044: result: no" >&5
+else	echo "$as_me:14793: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:14048: checking for size of bool" >&5
+echo "$as_me:14797: checking for size of bool" >&5
 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
 if test "${cf_cv_type_of_bool+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14056,7 +14805,7 @@
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14059 "configure"
+#line 14808 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14098,15 +14847,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14101: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14850: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14104: \$? = $ac_status" >&5
+  echo "$as_me:14853: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:14106: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14855: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14109: \$? = $ac_status" >&5
+  echo "$as_me:14858: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_of_bool=`cat cf_test.out`
 		 if test -z "$cf_cv_type_of_bool"; then
@@ -14124,18 +14873,18 @@
 fi
 
 	rm -f cf_test.out
-echo "$as_me:14127: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:14876: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 if test "$cf_cv_type_of_bool" = unknown ; then
 	case .$NCURSES_BOOL in #(vi
 	.auto|.) NCURSES_BOOL=unsigned;;
 	esac
-	{ echo "$as_me:14133: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+	{ echo "$as_me:14882: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
 	cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 
-echo "$as_me:14138: checking for special defines needed for etip.h" >&5
+echo "$as_me:14887: checking for special defines needed for etip.h" >&5
 echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
 cf_save_CXXFLAGS="$CXXFLAGS"
 cf_result="none"
@@ -14147,7 +14896,7 @@
 	test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
 	test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
 cat >conftest.$ac_ext <<_ACEOF
-#line 14150 "configure"
+#line 14899 "configure"
 #include "confdefs.h"
 
 #include <etip.h.in>
@@ -14161,16 +14910,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14164: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14913: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14167: \$? = $ac_status" >&5
+  echo "$as_me:14916: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14170: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14919: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14173: \$? = $ac_status" >&5
+  echo "$as_me:14922: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	test -n "$cf_math" && cat >>confdefs.h <<EOF
@@ -14191,12 +14940,12 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
 done
-echo "$as_me:14194: result: $cf_result" >&5
+echo "$as_me:14943: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 CXXFLAGS="$cf_save_CXXFLAGS"
 
 if test -n "$CXX"; then
-echo "$as_me:14199: checking if $CXX accepts parameter initialization" >&5
+echo "$as_me:14948: checking if $CXX accepts parameter initialization" >&5
 echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
 if test "${cf_cv_cpp_param_init+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14213,7 +14962,7 @@
   cf_cv_cpp_param_init=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14216 "configure"
+#line 14965 "configure"
 #include "confdefs.h"
 
 class TEST {
@@ -14232,15 +14981,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14235: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14984: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14238: \$? = $ac_status" >&5
+  echo "$as_me:14987: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:14240: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14989: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14243: \$? = $ac_status" >&5
+  echo "$as_me:14992: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_param_init=yes
 else
@@ -14259,7 +15008,7 @@
 ac_main_return=return
 
 fi
-echo "$as_me:14262: result: $cf_cv_cpp_param_init" >&5
+echo "$as_me:15011: result: $cf_cv_cpp_param_init" >&5
 echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
 fi
 test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
@@ -14268,7 +15017,7 @@
 
 if test -n "$CXX"; then
 
-echo "$as_me:14271: checking if $CXX accepts static_cast" >&5
+echo "$as_me:15020: checking if $CXX accepts static_cast" >&5
 echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
 if test "${cf_cv_cpp_static_cast+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14282,7 +15031,7 @@
 ac_main_return=return
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14285 "configure"
+#line 15034 "configure"
 #include "confdefs.h"
 
 class NCursesPanel
@@ -14326,16 +15075,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14329: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15078: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14332: \$? = $ac_status" >&5
+  echo "$as_me:15081: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14335: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15084: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14338: \$? = $ac_status" >&5
+  echo "$as_me:15087: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_static_cast=yes
 else
@@ -14353,7 +15102,7 @@
 ac_main_return=return
 
 fi
-echo "$as_me:14356: result: $cf_cv_cpp_static_cast" >&5
+echo "$as_me:15105: result: $cf_cv_cpp_static_cast" >&5
 echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
 
 fi
@@ -14362,189 +15111,6 @@
 #define CPP_HAS_STATIC_CAST 1
 EOF
 
-if test -n "$CXX"; then
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-
-for ac_header in strstream.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:14377: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line 14383 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:14387: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:14393: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:14412: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:14422: checking if $CXX supports vscan function" >&5
-echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6
-if test "${cf_cv_cpp_vscan_func+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-	for cf_vscan_func in strstream strstream_cast stdio
-	do
-	case $cf_vscan_func in #(vi
-	stdio)		cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
-	strstream)	cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
-	strstream_cast)	cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
-	esac
-	cat >conftest.$ac_ext <<_ACEOF
-#line 14436 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#define $cf_vscan_defs 1
-#if defined(USE_STDIO_VSCAN)
-#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
-#include <strstream.h>
-#endif
-
-int scanw(const char* fmt, ...)
-{
-    int result = -1;
-    char buf[BUFSIZ];
-
-    va_list args;
-    va_start(args, fmt);
-#if defined(USE_STDIO_VSCAN)
-    if (::vsscanf(buf, fmt, args) != -1)
-	result = 0;
-#elif defined(USE_STRSTREAM_VSCAN)
-    strstreambuf ss(buf, sizeof(buf));
-    if (ss.vscan(fmt, args) != -1)
-	result = 0;
-#elif defined(USE_STRSTREAM_VSCAN_CAST)
-    strstreambuf ss(buf, sizeof(buf));
-    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
-	result = 0;
-#else
-#error case $cf_vscan_func failed
-#endif
-    va_end(args);
-    return result;
-}
-
-int
-main ()
-{
-int tmp, foo = scanw("%d", &tmp)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14481: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:14484: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14487: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:14490: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cf_cv_cpp_vscan_func=$cf_vscan_func; break
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_cpp_vscan_func=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-	test "$cf_cv_cpp_vscan_func" != no && break
-	done
-
-fi
-echo "$as_me:14503: result: $cf_cv_cpp_vscan_func" >&5
-echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-
-fi
-
-case $cf_cv_cpp_vscan_func in #(vi
-stdio) #(vi
-	cat >>confdefs.h <<\EOF
-#define CPP_HAS_VSCAN_FUNC 1
-EOF
-
-	cat >>confdefs.h <<\EOF
-#define USE_STDIO_VSCAN 1
-EOF
-
-	;;
-strstream)
-	cat >>confdefs.h <<\EOF
-#define CPP_HAS_VSCAN_FUNC 1
-EOF
-
-	cat >>confdefs.h <<\EOF
-#define USE_STRSTREAM_VSCAN 1
-EOF
-
-	;;
-strstream_cast)
-	cat >>confdefs.h <<\EOF
-#define CPP_HAS_VSCAN_FUNC 1
-EOF
-
-	cat >>confdefs.h <<\EOF
-#define USE_STRSTREAM_VSCAN_CAST 1
-EOF
-
-	;;
-esac
-
 	CXX_AR='$(AR)'
 	CXX_AR_OPTS='$(AR_OPTS)'
 	case $cf_cv_system_name in #(vi
@@ -14584,7 +15150,7 @@
 	else
 		if test "$cf_cv_header_stdbool_h" = 1 ; then
 
-echo "$as_me:14587: checking for size of bool" >&5
+echo "$as_me:15153: checking for size of bool" >&5
 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
 if test "${cf_cv_type_of_bool+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14595,7 +15161,7 @@
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14598 "configure"
+#line 15164 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14637,15 +15203,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14640: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15206: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14643: \$? = $ac_status" >&5
+  echo "$as_me:15209: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:14645: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15211: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14648: \$? = $ac_status" >&5
+  echo "$as_me:15214: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_of_bool=`cat cf_test.out`
 		 if test -z "$cf_cv_type_of_bool"; then
@@ -14663,25 +15229,25 @@
 fi
 
 	rm -f cf_test.out
-echo "$as_me:14666: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:15232: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 if test "$cf_cv_type_of_bool" = unknown ; then
 	case .$NCURSES_BOOL in #(vi
 	.auto|.) NCURSES_BOOL=unsigned;;
 	esac
-	{ echo "$as_me:14672: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+	{ echo "$as_me:15238: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
 	cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 
 		else
-			echo "$as_me:14678: checking for fallback type of bool" >&5
+			echo "$as_me:15244: checking for fallback type of bool" >&5
 echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
 			case "$host_cpu" in #(vi
 			i?86)	cf_cv_type_of_bool=char	;; #(vi
 			*)	cf_cv_type_of_bool=int	;;
 			esac
-			echo "$as_me:14684: result: $cf_cv_type_of_bool" >&5
+			echo "$as_me:15250: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 		fi
 	fi
@@ -14707,11 +15273,20 @@
 fi
 
 if test -f "${srcdir}/Ada95/Makefile.in" ; then
+
+if test "$cf_with_ada" != "no" ; then
+    if test "$with_libtool" != "no"; then
+	{ echo "$as_me:15279: WARNING: libtool does not support Ada - disabling feature" >&5
+echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
+	cf_with_ada=no
+    fi
+fi
+
 if test "$cf_with_ada" != "no" ; then
 cf_ada_make=gnatmake
 # Extract the first word of "$cf_ada_make", so it can be a program name with args.
 set dummy $cf_ada_make; ac_word=$2
-echo "$as_me:14714: checking for $ac_word" >&5
+echo "$as_me:15289: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_gnat_exists+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14726,7 +15301,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_gnat_exists="yes"
-echo "$as_me:14729: found $ac_dir/$ac_word" >&5
+echo "$as_me:15304: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -14735,10 +15310,10 @@
 fi
 gnat_exists=$ac_cv_prog_gnat_exists
 if test -n "$gnat_exists"; then
-  echo "$as_me:14738: result: $gnat_exists" >&5
+  echo "$as_me:15313: result: $gnat_exists" >&5
 echo "${ECHO_T}$gnat_exists" >&6
 else
-  echo "$as_me:14741: result: no" >&5
+  echo "$as_me:15316: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -14746,11 +15321,11 @@
    cf_ada_make=
 else
 
-echo "$as_me:14749: checking for gnat version" >&5
+echo "$as_me:15324: checking for gnat version" >&5
 echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
   sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
-echo "$as_me:14753: result: $cf_gnat_version" >&5
+echo "$as_me:15328: result: $cf_gnat_version" >&5
 echo "${ECHO_T}$cf_gnat_version" >&6
 
 case $cf_gnat_version in
@@ -14773,7 +15348,7 @@
 
    # Extract the first word of "m4", so it can be a program name with args.
 set dummy m4; ac_word=$2
-echo "$as_me:14776: checking for $ac_word" >&5
+echo "$as_me:15351: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_M4_exists+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14788,7 +15363,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_M4_exists="yes"
-echo "$as_me:14791: found $ac_dir/$ac_word" >&5
+echo "$as_me:15366: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -14797,10 +15372,10 @@
 fi
 M4_exists=$ac_cv_prog_M4_exists
 if test -n "$M4_exists"; then
-  echo "$as_me:14800: result: $M4_exists" >&5
+  echo "$as_me:15375: result: $M4_exists" >&5
 echo "${ECHO_T}$M4_exists" >&6
 else
-  echo "$as_me:14803: result: no" >&5
+  echo "$as_me:15378: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -14809,7 +15384,7 @@
       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
    fi
    if test "$cf_cv_prog_gnat_correct" = yes; then
-      echo "$as_me:14812: checking if GNAT works" >&5
+      echo "$as_me:15387: checking if GNAT works" >&5
 echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
 
 rm -f conftest*
@@ -14837,14 +15412,14 @@
 fi
 rm -f conftest*
 
-      echo "$as_me:14840: result: $cf_cv_prog_gnat_correct" >&5
+      echo "$as_me:15415: result: $cf_cv_prog_gnat_correct" >&5
 echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
    fi
 fi
 if test	"$cf_cv_prog_gnat_correct" = yes; then
    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
 
-   echo "$as_me:14847: checking if GNAT pragma Unreferenced works" >&5
+   echo "$as_me:15422: checking if GNAT pragma Unreferenced works" >&5
 echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
 
 rm -f conftest*
@@ -14871,7 +15446,7 @@
 fi
 rm -f conftest*
 
-   echo "$as_me:14874: result: $cf_cv_pragma_unreferenced" >&5
+   echo "$as_me:15449: result: $cf_cv_pragma_unreferenced" >&5
 echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
 
    # if the pragma is supported, use it (needed in the Trace code).
@@ -14897,7 +15472,8 @@
 
 else
   withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
-fi;
+fi; if test -n "$prefix/lib/ada/adainclude" ; then
+
 if test "x$prefix" != xNONE; then
   cf_path_syntax="$prefix"
 else
@@ -14923,12 +15499,13 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:14926: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:15502: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
 esac
 
+fi
 ADA_INCLUDE="$withval"
 
 # Check whether --with-ada-objects or --without-ada-objects was given.
@@ -14937,7 +15514,8 @@
 
 else
   withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}"
-fi;
+fi; if test -n "$prefix/lib/ada/adalib" ; then
+
 if test "x$prefix" != xNONE; then
   cf_path_syntax="$prefix"
 else
@@ -14963,34 +15541,57 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:14966: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:15544: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
 esac
 
+fi
 ADA_OBJECTS="$withval"
 
 fi
 fi
+else
+   cf_with_ada=no
 fi
 
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
-echo "$as_me:14980: checking for library subsets" >&5
+### Construct the ncurses library-subsets, if any, from this set of keywords:
+###	none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
+###
+### ticlib modules may be a separate library, otherwise contained in termlib.
+### termlib modules may be a separate library, otherwise contained in ncurses.
+###
+### The of "+" or " " between the tokens controls the way the script
+### chooses to split module lists into libraries.
+###
+### (see CF_LIB_RULES).
+echo "$as_me:15569: checking for library subsets" >&5
 echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
+LIB_SUBSETS=
+
+if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
+	LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+	if test "$with_ticlib" != no ; then
+		LIB_SUBSETS="${LIB_SUBSETS} "
+	else
+		LIB_SUBSETS="${LIB_SUBSETS}+"
+	fi
+fi
+
+LIB_SUBSETS="${LIB_SUBSETS}termlib"
+test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 if test "$with_termlib" != no ; then
-	LIB_SUBSETS="termlib"
-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 	LIB_SUBSETS="${LIB_SUBSETS} "
 else
-	LIB_SUBSETS="termlib+"
-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
+	LIB_SUBSETS="${LIB_SUBSETS}+"
 fi
+
 LIB_SUBSETS="${LIB_SUBSETS}base"
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$as_me:14993: result: $LIB_SUBSETS" >&5
+
+echo "$as_me:15594: result: $LIB_SUBSETS" >&5
 echo "${ECHO_T}$LIB_SUBSETS" >&6
 
 ### Construct the list of include-directories to be generated
@@ -15028,7 +15629,7 @@
 fi
 
 ### Build up pieces for makefile rules
-echo "$as_me:15031: checking default library suffix" >&5
+echo "$as_me:15632: checking default library suffix" >&5
 echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
 
 	case $DFT_LWR_MODEL in
@@ -15039,10 +15640,10 @@
 	shared)  DFT_ARG_SUFFIX=''   ;;
 	esac
 	test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:15042: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:15643: result: $DFT_ARG_SUFFIX" >&5
 echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
 
-echo "$as_me:15045: checking default library-dependency suffix" >&5
+echo "$as_me:15646: checking default library-dependency suffix" >&5
 echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
 
 	case $DFT_LWR_MODEL in
@@ -15064,17 +15665,19 @@
 		esac
 	esac
 	test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
+DFT_LIB_SUFFIX=$DFT_DEP_SUFFIX
 if test $DFT_LWR_MODEL = shared ; then
 	case $cf_cv_system_name in #(vi
 	cygwin*)
 		DFT_DEP_SUFFIX=".dll.a"
+		DFT_LIB_SUFFIX=".dll"
 		;;
 	esac
 fi
-echo "$as_me:15074: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:15677: result: $DFT_DEP_SUFFIX" >&5
 echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
 
-echo "$as_me:15077: checking default object directory" >&5
+echo "$as_me:15680: checking default object directory" >&5
 echo $ECHO_N "checking default object directory... $ECHO_C" >&6
 
 	case $DFT_LWR_MODEL in
@@ -15090,12 +15693,12 @@
 			DFT_OBJ_SUBDIR='obj_s' ;;
 		esac
 	esac
-echo "$as_me:15093: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:15696: result: $DFT_OBJ_SUBDIR" >&5
 echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
 if test "$cf_with_cxx" = yes ; then
-echo "$as_me:15098: checking c++ library-dependency suffix" >&5
+echo "$as_me:15701: checking c++ library-dependency suffix" >&5
 echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
 if test "$with_libtool" != "no"; then
 	CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
@@ -15121,21 +15724,60 @@
 	esac
 	test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
 fi
-echo "$as_me:15124: result: $CXX_LIB_SUFFIX" >&5
+echo "$as_me:15727: result: $CXX_LIB_SUFFIX" >&5
 echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
 
 fi
 
+# do not want -ldl in build except as needed for -lncurses dependency
+if test "$with_dlsym" = yes ; then
+if test $DFT_LWR_MODEL = shared || \
+   test $DFT_LWR_MODEL = libtool ; then
+
+# remove dl library from $LIBS
+LIBS=`echo "$LIBS" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
+
+fi
+fi
 ### Set up low-level terminfo dependencies for makefiles.
-TINFO_LIST="$SHLIB_LIST"
+
+# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+# do not need libdl
+TICS_LIST=
+if test "$with_dlsym" = yes ; then
+
+# remove dl library from $SHLIB_LIST
+TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
+
+fi
+
+if test "$with_ticlib" != no ; then
+
+	if test "$with_ticlib" != yes ; then
+		TICS_NAME=$with_ticlib
+		TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+		TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+		TICS_LIB_SUFFIX="${with_ticlib}"
+	else
+		TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
+		TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
+		TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+	fi
+	TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
+else
+	TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+fi
+
 if test "$with_termlib" != no ; then
 
 	if test "$with_termlib" != yes ; then
 		TINFO_NAME=$with_termlib
+		TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_LIB_SUFFIX="${with_termlib}"
 	else
+		TINFO_SUFFIX=${DFT_LIB_SUFFIX}
 		TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
 		TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
 		TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
@@ -15150,22 +15792,85 @@
 	else
 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+		TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
 		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
 	fi
 else
+	# the next lines are needed for linking libtic over libncurses
+	TINFO_NAME=${LIB_NAME}
+	TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+	TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+	TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+
 	TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 fi
 
+if test "$DFT_LWR_MODEL" = shared ; then
+	case $cf_cv_system_name in #(vi
+	cygwin*)
+		# "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
+		TINFO_SUFFIX=.dll
+		;;
+	esac
+fi
+
+if test "$with_dlsym" = yes ; then
+
+# remove dl library from $TICS_LIST
+TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
+
+fi
+
+if test "$DFT_LWR_MODEL" = "libtool"; then
+    OBJEXT=lo
+fi
+
 # needed for Ada95
 TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
 
-echo "$as_me:15163: checking where we will install curses.h" >&5
+case $DFT_LWR_MODEL in
+normal|debug|profile)
+
+if test "$GCC" = yes ; then
+	LDFLAGS_STATIC=-static
+	LDFLAGS_SHARED=-dynamic
+else
+	case $cf_cv_system_name in #(
+	aix[45]*) 	#( from ld manpage
+		LDFLAGS_STATIC=-bstatic
+		LDFLAGS_SHARED=-bdynamic
+		;;
+	hpux*)		#( from ld manpage for hpux10.20, hpux11.11
+		# We could also use just "archive" and "shared".
+		LDFLAGS_STATIC=-Wl,-a,archive_shared
+		LDFLAGS_SHARED=-Wl,-a,shared_archive
+		;;
+	irix*)		#( from ld manpage IRIX64
+		LDFLAGS_STATIC=-Bstatic
+		LDFLAGS_SHARED=-Bdynamic
+		;;
+	osf[45]*)	#( from ld manpage osf4.0d, osf5.1
+		# alternative "-oldstyle_liblookup" (not in cc manpage)
+		LDFLAGS_STATIC=-noso
+		LDFLAGS_SHARED=-so_archive
+		;;
+	solaris2*)
+		LDFLAGS_STATIC=-Bstatic
+		LDFLAGS_SHARED=-Bdynamic
+		;;
+	esac
+fi
+
+	;;
+esac
+
+echo "$as_me:15868: checking where we will install curses.h" >&5
 echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
 test "$with_overwrite" = no && \
 test "x$includedir" = 'x${prefix}/include' && \
 	includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
-echo "$as_me:15168: result: $includedir" >&5
+echo "$as_me:15873: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 
 ### Resolve a conflict between normal and wide-curses by forcing applications
@@ -15173,11 +15878,14 @@
 if test "$with_overwrite" != no ; then
 if test "$NCURSES_LIBUTF8" = 1 ; then
 	NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
-	{ echo "$as_me:15176: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+	{ echo "$as_me:15881: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
 echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
 fi
 fi
 
+# used to separate tack out of the tree
+NCURSES_TREE=
+
 ### predefined stuff for the test programs
 cat >>confdefs.h <<\EOF
 #define HAVE_SLK_COLOR 1
@@ -15186,7 +15894,7 @@
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
-echo "$as_me:15189: checking for src modules" >&5
+echo "$as_me:15897: checking for src modules" >&5
 echo $ECHO_N "checking for src modules... $ECHO_C" >&6
 
 # dependencies and linker-arguments for test-programs
@@ -15249,7 +15957,7 @@
 		fi
 	fi
 done
-echo "$as_me:15252: result: $cf_cv_src_modules" >&5
+echo "$as_me:15960: result: $cf_cv_src_modules" >&5
 echo "${ECHO_T}$cf_cv_src_modules" >&6
 
 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
@@ -15284,6 +15992,10 @@
 
 fi
 
+if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
+   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
+fi
+
 DIRS_TO_MAKE="lib"
 for cf_item in $cf_list_models
 do
@@ -15391,6 +16103,79 @@
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
+### If we're building with rpath, try to link non-standard libs that way too.
+if test "$DFT_LWR_MODEL" = "shared"; then
+
+echo "$as_me:16109: checking for updated LDFLAGS" >&5
+echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
+if test -n "$LDFLAGS" ; then
+echo "$as_me:16112: result: maybe" >&5
+echo "${ECHO_T}maybe" >&6
+test -n "$verbose" && echo "	...checking LDFLAGS $LDFLAGS" 1>&6
+
+echo "${as_me-configure}:16116: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
+
+test -n "$verbose" && echo "	...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
+
+echo "${as_me-configure}:16120: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+
+case "$EXTRA_LDFLAGS" in #(vi
+-Wl,-rpath,*) #(vi
+    cf_rpath_hack="-Wl,-rpath,"
+    ;;
+-R\ *)
+    cf_rpath_hack="-R "
+    ;;
+-R*)
+    cf_rpath_hack="-R"
+    ;;
+*)
+    cf_rpath_hack=
+    ;;
+esac
+if test -n "$cf_rpath_hack" ; then
+    cf_rpath_dst=
+    for cf_rpath_src in $LDFLAGS
+    do
+        test -n "$verbose" && echo "	Filtering $cf_rpath_src" 1>&6
+
+echo "${as_me-configure}:16142: testing Filtering $cf_rpath_src ..." 1>&5
+
+        case $cf_rpath_src in #(vi
+        -L*) #(vi
+            if test "$cf_rpath_hack" = "-R " ; then
+                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
+            else
+                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
+            fi
+            test -n "$verbose" && echo "	...Filter $cf_rpath_tmp" 1>&6
+
+echo "${as_me-configure}:16153: testing ...Filter $cf_rpath_tmp ..." 1>&5
+
+            EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
+            ;;
+        *)
+            cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
+            ;;
+        esac
+    done
+    LDFLAGS=$cf_rpath_dst
+    test -n "$verbose" && echo "	...checked LDFLAGS $LDFLAGS" 1>&6
+
+echo "${as_me-configure}:16165: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
+
+    test -n "$verbose" && echo "	...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
+
+echo "${as_me-configure}:16169: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+
+fi
+else
+echo "$as_me:16173: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+
 ### Define substitutions for header files to avoid name-pollution
 
 if test "$cf_cv_have_tcgetattr" = yes ; then
@@ -15495,7 +16280,7 @@
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:15498: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:16283: creating $CONFIG_STATUS" >&5
 echo "$as_me: creating $CONFIG_STATUS" >&6;}
 cat >$CONFIG_STATUS <<_ACEOF
 #! $SHELL
@@ -15627,7 +16412,7 @@
 cat >>$CONFIG_STATUS <<EOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.52.20061216,
+configured by $0, generated by GNU Autoconf 2.52.20080325,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -15671,7 +16456,7 @@
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
     # Conflict between --help and --header
-    { { echo "$as_me:15674: error: ambiguous option: $1
+    { { echo "$as_me:16459: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -15690,7 +16475,7 @@
     ac_need_defaults=false;;
 
   # This is an error.
-  -*) { { echo "$as_me:15693: error: unrecognized option: $1
+  -*) { { echo "$as_me:16478: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -15709,7 +16494,7 @@
 ## Running config.status.  ##
 ## ----------------------- ##
 
-This file was extended by $as_me 2.52.20061216, executed with
+This file was extended by $as_me 2.52.20080325, executed with
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
   CONFIG_LINKS    = $CONFIG_LINKS
@@ -15747,13 +16532,19 @@
 TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
 TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
+TINFO_SUFFIX="$TINFO_SUFFIX"
+TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
+TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
+TICS_NAME="$TICS_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 cf_LIST_MODELS="$cf_list_models"
 cf_cv_abi_version="$cf_cv_abi_version"
+cf_cv_do_relink="$cf_cv_do_relink"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_enable_opaque="$cf_cv_enable_opaque"
 cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
 cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
 cf_cv_rel_version="$cf_cv_rel_version"
@@ -15780,7 +16571,7 @@
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
   "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
-  *) { { echo "$as_me:15783: error: invalid argument: $ac_config_target" >&5
+  *) { { echo "$as_me:16574: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
@@ -15928,6 +16719,7 @@
 s,@cf_list_models@,$cf_list_models,;t t
 s,@LIBTOOL@,$LIBTOOL,;t t
 s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
+s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
 s,@LIB_CREATE@,$LIB_CREATE,;t t
 s,@LIB_OBJECT@,$LIB_OBJECT,;t t
 s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
@@ -15939,6 +16731,7 @@
 s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t
 s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
 s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
+s,@TICS_NAME@,$TICS_NAME,;t t
 s,@TINFO_NAME@,$TINFO_NAME,;t t
 s,@LIB_NAME@,$LIB_NAME,;t t
 s,@LIB_PREFIX@,$LIB_PREFIX,;t t
@@ -15961,6 +16754,7 @@
 s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
 s,@TERMINFO@,$TERMINFO,;t t
 s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
+s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t
 s,@TERMPATH@,$TERMPATH,;t t
 s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
 s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
@@ -15979,10 +16773,14 @@
 s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
 s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
 s,@NCURSES_CONST@,$NCURSES_CONST,;t t
-s,@NCURSES_SBOOL@,$NCURSES_SBOOL,;t t
-s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
 s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
 s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
+s,@NCURSES_SBOOL@,$NCURSES_SBOOL,;t t
+s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
+s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
+s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t
+s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
+s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
 s,@ECHO_LINK@,$ECHO_LINK,;t t
 s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
 s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
@@ -15993,6 +16791,7 @@
 s,@cf_cv_1UL@,$cf_cv_1UL,;t t
 s,@cf_cv_typeof_mmask_t@,$cf_cv_typeof_mmask_t,;t t
 s,@HAVE_VSSCANF@,$HAVE_VSSCANF,;t t
+s,@TEST_LIBS@,$TEST_LIBS,;t t
 s,@CXXCPP@,$CXXCPP,;t t
 s,@CXXLDFLAGS@,$CXXLDFLAGS,;t t
 s,@CXX_AR@,$CXX_AR,;t t
@@ -16015,14 +16814,22 @@
 s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
 s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t
 s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t
+s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t
+s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t
+s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t
+s,@TICS_ARGS@,$TICS_ARGS,;t t
 s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
 s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
 s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
 s,@TINFO_ARGS@,$TINFO_ARGS,;t t
 s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
+s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t
+s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t
 s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
+s,@TICS_LIST@,$TICS_LIST,;t t
 s,@TINFO_LIST@,$TINFO_LIST,;t t
 s,@SHLIB_LIST@,$SHLIB_LIST,;t t
+s,@NCURSES_TREE@,$NCURSES_TREE,;t t
 s,@TEST_ARGS@,$TEST_ARGS,;t t
 s,@TEST_DEPS@,$TEST_DEPS,;t t
 s,@TEST_ARG2@,$TEST_ARG2,;t t
@@ -16146,7 +16953,7 @@
   esac
 
   if test x"$ac_file" != x-; then
-    { echo "$as_me:16149: creating $ac_file" >&5
+    { echo "$as_me:16956: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
     rm -f "$ac_file"
   fi
@@ -16164,7 +16971,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:16167: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:16974: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -16177,7 +16984,7 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:16180: error: cannot find input file: $f" >&5
+           { { echo "$as_me:16987: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -16243,7 +17050,7 @@
   * )   ac_file_in=$ac_file.in ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:16246: creating $ac_file" >&5
+  test x"$ac_file" != x- && { echo "$as_me:17053: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
 
   # First look for the input files in the build tree, otherwise in the
@@ -16254,7 +17061,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:16257: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:17064: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -16267,7 +17074,7 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:16270: error: cannot find input file: $f" >&5
+           { { echo "$as_me:17077: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -16325,7 +17132,7 @@
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:16328: $ac_file is unchanged" >&5
+      { echo "$as_me:17135: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -16400,7 +17207,6 @@
 		continue
 	elif test -f $srcdir/$cf_dir/modules; then
 
-		IMPORT_LIB=
 		SHARED_LIB=
 		LIBS_TO_MAKE=
 		for cf_item in $cf_LIST_MODELS
@@ -16467,9 +17273,7 @@
 			# use autodetected ${cf_prefix} for import lib and static lib, but
 			# use 'cyg' prefix for shared lib.
 			if test $cf_cv_shlib_version = cygdll ; then
-				SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
-				IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
-				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
+				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
 				continue
 			fi
 			fi
@@ -16478,17 +17282,34 @@
 
 		if test $cf_dir = ncurses ; then
 			cf_subsets="$LIB_SUBSETS"
-			cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
-			if test "$cf_termlib" != "$cf_subsets" ; then
-				cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
-				LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
-			fi
+			cf_r_parts="$cf_subsets"
+
+			while test -n "$cf_r_parts"
+			do
+				cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
+				cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[^ ]* //'`
+				if test "$cf_l_parts" != "$cf_r_parts" ; then
+					case $cf_l_parts in #(vi
+					*termlib*) #(vi
+						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
+						;;
+					*ticlib*)
+						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
+						;;
+					*)
+						break
+						;;
+					esac
+					LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+				else
+					break
+				fi
+			done
 		else
 			cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
 		fi
 
 		sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-		    -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
 		    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
 			$cf_dir/Makefile >$cf_dir/Makefile.out
 		mv $cf_dir/Makefile.out $cf_dir/Makefile
@@ -16546,13 +17367,20 @@
 				case $cf_subset in
 				*base*)
 					;;
-				termlib*)
+				*termlib*)
 					cf_libname=$TINFO_LIB_SUFFIX
 					if test -n "${DFT_ARG_SUFFIX}" ; then
 						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
 						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
 					fi
-				;;
+					;;
+				ticlib*)
+					cf_libname=$TICS_LIB_SUFFIX
+					if test -n "${DFT_ARG_SUFFIX}" ; then
+						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+					fi
+					;;
 				esac
 			fi
 
@@ -16593,8 +17421,11 @@
 				prefix=$cf_prefix \
 				suffix=$cf_suffix \
 				subset=$cf_subset \
+				TermlibRoot=$TINFO_NAME \
+				TermlibSuffix=$TINFO_SUFFIX \
 				ShlibVer=$cf_cv_shlib_version \
 				ShlibVerInfix=$cf_cv_shlib_version_infix \
+				ReLink=${cf_cv_do_relink-no} \
 				DoLinks=$cf_cv_do_symlinks \
 				rmSoLocs=$cf_cv_rm_so_locs \
 				ldconfig="$LDCONFIG" \
@@ -16681,8 +17512,8 @@
 
 cat >> Makefile <<CF_EOF
 
-install.data \\
-uninstall.data ::
+install.libs uninstall.libs \\
+install.data uninstall.data ::
 $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \$@
 
 install.man \\
@@ -16691,7 +17522,7 @@
 
 distclean ::
 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
-	rm -f headers.sh headers.sed
+	rm -f headers.sh headers.sed mk_shared_lib.sh
 	rm -rf \${DIRS_TO_MAKE}
 CF_EOF
 
@@ -16795,41 +17626,10 @@
 	fi
 
 	if test -f $srcdir/$cf_dir/headers; then
-	cat >>$cf_dir/Makefile <<CF_EOF
-\${DESTDIR}\${includedir} :
-	sh \${srcdir}/../mkinstalldirs \$@
-
-install \\
-install.libs \\
-install.includes :: \${AUTO_SRC} \${DESTDIR}\${includedir} \\
-CF_EOF
-		j=""
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			test -n "$j" && echo "		$j \\" >>$cf_dir/Makefile
-			j=$i
-		done
-
-		echo "		$j" >>$cf_dir/Makefile
-
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			echo "	@ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile
-			test $i = curses.h && test $WITH_CURSES_H = yes && echo "	@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile
-		done
-
-	cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
-		do
-			i=`basename $i`
-			echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile
-			test $i = curses.h && echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile
-		done
+		$AWK -f $srcdir/mk-hdr.awk \
+			subset="$LIB_SUBSETS" \
+			compat="$WITH_CURSES_H" \
+			$srcdir/$cf_dir/headers >>$cf_dir/Makefile
 	fi
 
 	if test -f $srcdir/$cf_dir/modules; then
diff -Naur ncurses-5.6.orig/configure.in ncurses-5.6/configure.in
--- ncurses-5.6.orig/configure.in	2006-12-16 20:26:06.000000000 -0500
+++ ncurses-5.6/configure.in	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,14 +28,14 @@
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: configure.in,v 1.383 2006/12/17 01:26:06 tom Exp $
+dnl $Id: configure.in,v 1.434 2008/05/17 19:50:19 tom Exp $
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl See http://invisible-island.net/autoconf/ for additional information.
 dnl
 dnl ---------------------------------------------------------------------------
 AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision: 1.383 $)
+AC_REVISION($Revision: 1.434 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -150,13 +150,28 @@
 CF_PROG_LINT
 AC_PROG_LN_S
 
+AC_SYS_LONG_FILE_NAMES
+
+AC_MSG_CHECKING(if we should assume mixed-case filenames)
+AC_ARG_ENABLE(mixed-case,
+	[  --enable-mixed-case     tic should assume mixed-case filenames],
+	[enable_mixedcase=$enableval],
+	[enable_mixedcase=auto])
+AC_MSG_RESULT($enable_mixedcase)
+if test "$enable_mixedcase" = "auto" ; then
+    CF_MIXEDCASE_FILENAMES
+else
+    cf_cv_mixedcase=$enable_mixedcase
+    if test "$enable_mixedcase" = "yes" ; then
+        AC_DEFINE(MIXEDCASE_FILENAMES)
+    fi
+fi
+
+# do this after mixed-case option (tags/TAGS is not as important as tic).
 AC_PROG_MAKE_SET
 CF_MAKE_TAGS
 CF_MAKEFLAGS
 
-AC_SYS_LONG_FILE_NAMES
-CF_MIXEDCASE_FILENAMES
-
 dnl These are standard among *NIX systems, but not when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, ':')
 AC_CHECK_TOOL(LD, ld, ld)
@@ -255,6 +270,9 @@
 AC_SUBST(DFT_LWR_MODEL)dnl	the default model ("normal")
 AC_SUBST(DFT_UPR_MODEL)dnl	the default model ("NORMAL")
 
+TICS_NAME=tic
+AC_SUBST(TICS_NAME)
+
 TINFO_NAME=tinfo
 AC_SUBST(TINFO_NAME)
 
@@ -280,6 +298,13 @@
 	[with_termlib=no])
 AC_MSG_RESULT($with_termlib)
 
+AC_MSG_CHECKING(if you want to build a separate tic library)
+AC_ARG_WITH(ticlib,
+	[  --with-ticlib           generate separate tic library],
+	[with_ticlib=$withval],
+	[with_ticlib=no])
+AC_MSG_RESULT($with_ticlib)
+
 ### Checks for special libraries, must be done up-front.
 SHLIB_LIST=""
 CF_WITH_GPM
@@ -304,9 +329,7 @@
 		SHLIB_LIST="-lgpm $SHLIB_LIST"
 	fi
 	AC_DEFINE(HAVE_LIBGPM)
-	AC_CHECK_LIB(gpm,Gpm_Wgetch,[
-		AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
-	])
+	CF_CHECK_GPM_WGETCH
 fi
 
 CF_WITH_SYSMOUSE
@@ -336,12 +359,22 @@
 AC_SUBST(LD_MODEL)dnl		the type of link (e.g., -g or -pg)
 AC_MSG_RESULT($LD_MODEL)
 
+case $DFT_LWR_MODEL in
+shared)
 AC_MSG_CHECKING(if rpath option should be used)
 AC_ARG_ENABLE(rpath,
 [  --enable-rpath          use rpath option when generating shared libraries],
 [cf_cv_ld_rpath=$enableval],
 [cf_cv_ld_rpath=no])
 AC_MSG_RESULT($cf_cv_ld_rpath)
+AC_MSG_CHECKING(if shared libraries should be relinked during install)
+AC_ARG_ENABLE(relink,
+[  --disable-relink        relink shared libraries during install],
+[cf_cv_do_relink=$enableval],
+[cf_cv_do_relink=yes])
+AC_MSG_RESULT($cf_cv_do_relink)
+	;;
+esac
 
 CF_SHARED_OPTS
 if test "$CC_SHARED_OPTS" = "unknown"; then
@@ -470,6 +503,19 @@
 AC_MSG_RESULT($with_big_core)
 test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
 
+### ISO C only guarantees 512-char strings, we have tables which load faster
+### when constructed using "big" strings.
+AC_MSG_CHECKING(if big-strings option selected)
+AC_ARG_ENABLE(big-strings,
+	[  --disable-big-strings   assume compiler has only standard-size strings],
+	[with_big_strings=no],
+	[with_big_strings=yes])
+AC_MSG_RESULT($with_big_strings)
+
+USE_BIG_STRINGS=0
+test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
+AC_SUBST(USE_BIG_STRINGS)
+
 ###	use option --enable-termcap to compile in the termcap fallback support
 AC_MSG_CHECKING(if you want termcap-fallback support)
 AC_ARG_ENABLE(termcap,
@@ -487,6 +533,10 @@
 	AC_DEFINE(PURE_TERMINFO)
 else
 
+if test "$with_ticlib" != no ; then
+	AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
+fi
+
 AC_DEFINE(USE_TERMCAP)
 AC_MSG_CHECKING(for list of termcap files)
 CF_WITH_PATHLIST(termpath,
@@ -683,7 +733,7 @@
 
 CF_LARGEFILE
 
-###   use option --disable-tparm-varargs to make tparm() conform to X/Open 
+###   use option --disable-tparm-varargs to make tparm() conform to X/Open
 AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
 AC_ARG_ENABLE(tparm-varargs,
 	[  --disable-tparm-varargs compile tparm() without varargs interface],
@@ -786,6 +836,40 @@
 fi
 AC_SUBST(NCURSES_CONST)
 
+###   use option --enable-ext-colors to turn on use of colors beyond 16.
+AC_MSG_CHECKING(if you want to use extended colors)
+AC_ARG_ENABLE(ext-colors,
+	[  --enable-ext-colors     compile for 256-color support],
+	[with_ext_colors=$enableval],
+	[with_ext_colors=no])
+AC_MSG_RESULT($with_ext_colors)
+NCURSES_EXT_COLORS=0
+if test "$with_ext_colors" = yes ; then
+	if test "$with_widec" != yes ; then
+		AC_MSG_ERROR(This option applies only to wide-character library)
+	else
+		# cannot be ABI 5 since it changes sizeof(cchar_t)
+		CF_NCURSES_ABI_6
+	fi
+	NCURSES_EXT_COLORS=1
+	AC_DEFINE(NCURSES_EXT_COLORS)
+fi
+AC_SUBST(NCURSES_EXT_COLORS)
+
+###   use option --enable-ext-mouse to modify coding to support 5-button mice
+AC_MSG_CHECKING(if you want to use extended mouse encoding)
+AC_ARG_ENABLE(ext-mouse,
+	[  --enable-ext-mouse      compile for extended mouse-encoding],
+	[with_ext_mouse=$enableval],
+	[with_ext_mouse=no])
+AC_MSG_RESULT($with_ext_mouse)
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+	NCURSES_MOUSE_VERSION=2
+	CF_NCURSES_ABI_6
+fi
+AC_SUBST(NCURSES_MOUSE_VERSION)
+
 AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
 AC_ARG_ENABLE(no-padding,
 	[  --enable-no-padding     compile with $NCURSES_NO_PADDING code],
@@ -802,7 +886,7 @@
 fi
 AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
 AC_ARG_ENABLE(signed-char,
-	[  --enable-signed-char    compile with SIGWINCH handler],
+	[  --enable-signed-char    compile using signed Boolean's in term.h],
 	[with_signed_char=$enableval],
 	[with_signed_char=no])
 AC_MSG_RESULT($with_signed_char)
@@ -885,39 +969,42 @@
 AC_MSG_RESULT($with_colorfgbg)
 test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
 
-###   use option --enable-ext-colors to turn on use of colors beyond 16.
-AC_MSG_CHECKING(if you want to use experimental extended colors)
-AC_ARG_ENABLE(ext-colors,
-	[  --enable-ext-colors     compile for experimental 256-color support],
-	[with_ext_colors=$enableval],
-	[with_ext_colors=no])
-AC_MSG_RESULT($with_ext_colors)
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
-	if test "$with_widec" != yes ; then
-		AC_MSG_WARN(This option applies only to wide-character library)
-	else
-		# cannot be ABI 5 since it changes sizeof(cchar_t)
-		CF_NCURSES_ABI_6
-	fi
-	NCURSES_EXT_COLORS=1
-	AC_DEFINE(NCURSES_EXT_COLORS)
-fi
-AC_SUBST(NCURSES_EXT_COLORS)
-
-###   use option --enable-ext-mouse to modify coding to support 5-button mice
-AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
-AC_ARG_ENABLE(ext-mouse,
-	[  --enable-ext-mouse      compile for experimental mouse-encoding],
-	[with_ext_mouse=$enableval],
-	[with_ext_mouse=no])
-AC_MSG_RESULT($with_ext_mouse)
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
-	NCURSES_MOUSE_VERSION=2
+# This is still experimental (20080329), but should ultimately be moved to
+# the script-block --with-normal, etc.
+CF_WITH_PTHREAD
+if test "$with_pthread" = "yes" ; then
+    AC_DEFINE(USE_PTHREADS)
+    enable_reentrant=yes
+fi
+
+# Reentrant code has to be opaque; there's little advantage to making ncurses
+# opaque outside of that, so there is no --enable-opaque option.  We can use
+# this option without --with-pthreads, but this will be always set for
+# pthreads.
+AC_MSG_CHECKING(if you want experimental reentrant code)
+AC_ARG_ENABLE(reentrant,
+	[  --enable-reentrant      compile with experimental reentrant code],
+	[with_reentrant=$enableval],
+	[with_reentrant=no])
+AC_MSG_RESULT($with_reentrant)
+if test "$with_reentrant" = yes ; then
+	cf_cv_enable_reentrant=1
+	cf_cv_enable_opaque="NCURSES_INTERNALS"
+	NCURSES_OPAQUE=1
+	NCURSES_SIZE_T=int
+	LIB_SUFFIX="t${LIB_SUFFIX}"
+	AC_DEFINE(USE_REENTRANT)
 	CF_NCURSES_ABI_6
-fi
-AC_SUBST(NCURSES_MOUSE_VERSION)
+else
+	cf_cv_enable_reentrant=0
+	cf_cv_enable_opaque="NCURSES_OPAQUE"
+	NCURSES_OPAQUE=0
+	NCURSES_SIZE_T=short
+fi
+AC_SUBST(cf_cv_enable_reentrant)
+AC_SUBST(cf_cv_enable_opaque)
+AC_SUBST(NCURSES_OPAQUE)
+AC_SUBST(NCURSES_SIZE_T)
 
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
@@ -961,6 +1048,7 @@
 else
 	ECHO_LINK='@ echo linking $@ ... ;'
 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
 fi
 AC_MSG_RESULT($with_echo)
 AC_SUBST(ECHO_LINK)
@@ -972,9 +1060,9 @@
 	[with_warnings=$enableval])
 AC_MSG_RESULT($with_warnings)
 
-if test -n "$with_warnings"; then
+if test "x$with_warnings" = "xyes"; then
  	ADAFLAGS="$ADAFLAGS -gnatg"
-	CF_GCC_WARNINGS
+	CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
 	if test "$cf_with_cxx" = yes ; then
 		CF_GXX_WARNINGS(Wno-unused)
 	fi
@@ -1088,26 +1176,21 @@
 ###	checks for compiler characteristics
 AC_LANG_C
 AC_C_CONST
-AC_C_INLINE
-
-NCURSES_INLINE=
-if test "$ac_cv_c_inline" != no ; then
-	AC_DEFINE(CC_HAS_INLINE_FUNCS)
-	NCURSES_INLINE=inline
-fi
-AC_SUBST(NCURSES_INLINE)
+CF_C_INLINE(NCURSES_INLINE,1200)
+CF_SIG_ATOMIC_T
 
 if test $NCURSES_CHTYPE = auto ; then
 	CF_TYPEOF_CHTYPE
 else
 	cf_cv_typeof_chtype=$NCURSES_CHTYPE
 fi
+test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
 AC_SUBST(cf_cv_typeof_chtype)
 
 CF_UNSIGNED_LITERALS
 cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
+test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
+test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
 AC_SUBST(cf_cv_1UL)
 
 if test $NCURSES_MMASK_T = auto ; then
@@ -1115,6 +1198,7 @@
 else
 	cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
 fi
+test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
 AC_SUBST(cf_cv_typeof_mmask_t)
 
 ###	Checks for external-data
@@ -1168,9 +1252,20 @@
 CF_FUNC_MEMMOVE
 CF_FUNC_POLL
 
+# special check for test/ditto.c
+CF_FUNC_OPENPTY
+if test "$cf_cv_func_openpty" != no ; then
+    AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>)
+    AC_DEFINE(USE_XTERM_PTY)
+    if test "$cf_cv_lib_util" = yes ; then
+        TEST_LIBS="-lutil $TEST_LIBS"
+    fi
+fi
+AC_SUBST(TEST_LIBS)
+
 if test "$with_hashed_db" != no ; then
 	AC_DEFINE(USE_HASHED_DB)
-	CF_HASHED_DB
+	CF_HASHED_DB($with_hashed_db)
 fi
 
 dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
@@ -1200,14 +1295,13 @@
 		;;
 	esac
 
-	AC_CHECK_HEADERS(typeinfo)
+	AC_CHECK_HEADERS(iostream typeinfo)
 
 	CF_BOOL_DECL
 	CF_BOOL_SIZE
 	CF_ETIP_DEFINES
 	CF_CPP_PARAM_INIT
 	CF_CPP_STATIC_CAST
-	CF_CPP_VSCAN_FUNC
 
 	CXX_AR='$(AR)'
 	CXX_AR_OPTS='$(AR_OPTS)'
@@ -1284,9 +1378,22 @@
 
 CF_HELP_MESSAGE(Ada95 Binding Options:)
 
+dnl If the Ada95 source-tree is present, add that to the build unless it will
+dnl not work, or was not requested.
+if test -f "${srcdir}/Ada95/Makefile.in" ; then
+
+dnl libtool does not know anything about GNAT, though a change made in 1998
+dnl provided for it "someday".  Disable the ada subtree if we are using
+dnl libtool -TD 20070714
+if test "$cf_with_ada" != "no" ; then
+    if test "$with_libtool" != "no"; then
+	AC_MSG_WARN(libtool does not support Ada - disabling feature)
+	cf_with_ada=no
+    fi
+fi
+
 dnl Check for availability of GNU Ada Translator (GNAT).
 dnl At the moment we support no other Ada95 compiler.
-if test -f "${srcdir}/Ada95/Makefile.in" ; then
 if test "$cf_with_ada" != "no" ; then
 cf_ada_make=gnatmake
 AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
@@ -1369,22 +1476,44 @@
 
 fi
 fi
+else
+   cf_with_ada=no
 fi
 
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
+### Construct the ncurses library-subsets, if any, from this set of keywords:
+###	none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
+###
+### ticlib modules may be a separate library, otherwise contained in termlib.
+### termlib modules may be a separate library, otherwise contained in ncurses.
+###
+### The of "+" or " " between the tokens controls the way the script
+### chooses to split module lists into libraries.
+###
+### (see CF_LIB_RULES).
 AC_MSG_CHECKING(for library subsets)
+LIB_SUBSETS=
+
+if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
+	LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+	if test "$with_ticlib" != no ; then
+		LIB_SUBSETS="${LIB_SUBSETS} "
+	else
+		LIB_SUBSETS="${LIB_SUBSETS}+"
+	fi
+fi
+
+LIB_SUBSETS="${LIB_SUBSETS}termlib"
+test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 if test "$with_termlib" != no ; then
-	LIB_SUBSETS="termlib"
-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 	LIB_SUBSETS="${LIB_SUBSETS} "
 else
-	LIB_SUBSETS="termlib+"
-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
+	LIB_SUBSETS="${LIB_SUBSETS}+"
 fi
+
 LIB_SUBSETS="${LIB_SUBSETS}base"
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+
 AC_MSG_RESULT($LIB_SUBSETS)
 
 ### Construct the list of include-directories to be generated
@@ -1399,10 +1528,12 @@
 
 AC_MSG_CHECKING(default library-dependency suffix)
 CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
+DFT_LIB_SUFFIX=$DFT_DEP_SUFFIX
 if test $DFT_LWR_MODEL = shared ; then
 	case $cf_cv_system_name in #(vi
 	cygwin*)
 		DFT_DEP_SUFFIX=".dll.a"
+		DFT_LIB_SUFFIX=".dll"
 		;;
 	esac
 fi
@@ -1426,16 +1557,53 @@
 AC_SUBST(CXX_LIB_SUFFIX)
 fi
 
+# do not want -ldl in build except as needed for -lncurses dependency
+if test "$with_dlsym" = yes ; then
+if test $DFT_LWR_MODEL = shared || \
+   test $DFT_LWR_MODEL = libtool ; then
+	CF_REMOVE_LIB(LIBS,$LIBS,dl)
+fi
+fi
 ### Set up low-level terminfo dependencies for makefiles.
-TINFO_LIST="$SHLIB_LIST"
+
+# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+# do not need libdl
+TICS_LIST=
+if test "$with_dlsym" = yes ; then
+	CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+fi
+
+if test "$with_ticlib" != no ; then
+
+	if test "$with_ticlib" != yes ; then
+		TICS_NAME=$with_ticlib
+		TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+		TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+		TICS_LIB_SUFFIX="${with_ticlib}"
+	else
+		TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
+		TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
+		TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+	fi
+	TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
+else
+	TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+fi
+AC_SUBST(TICS_ARG_SUFFIX)
+AC_SUBST(TICS_DEP_SUFFIX)
+AC_SUBST(TICS_LIB_SUFFIX)
+AC_SUBST(TICS_ARGS)
+
 if test "$with_termlib" != no ; then
 
 	if test "$with_termlib" != yes ; then
 		TINFO_NAME=$with_termlib
+		TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
 		TINFO_LIB_SUFFIX="${with_termlib}"
 	else
+		TINFO_SUFFIX=${DFT_LIB_SUFFIX}
 		TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
 		TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
 		TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
@@ -1450,21 +1618,52 @@
 	else
 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+		TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
 		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
 	fi
 else
+	# the next lines are needed for linking libtic over libncurses
+	TINFO_NAME=${LIB_NAME}
+	TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+	TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+	TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+
 	TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 fi
+
+if test "$DFT_LWR_MODEL" = shared ; then
+	case $cf_cv_system_name in #(vi
+	cygwin*)
+		# "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
+		TINFO_SUFFIX=.dll
+		;;
+	esac
+fi
+
 AC_SUBST(TINFO_ARG_SUFFIX)
 AC_SUBST(TINFO_DEP_SUFFIX)
 AC_SUBST(TINFO_LIB_SUFFIX)
 AC_SUBST(TINFO_ARGS)
 
+if test "$with_dlsym" = yes ; then
+	CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+fi
+
+if test "$DFT_LWR_MODEL" = "libtool"; then
+    OBJEXT=lo
+fi
+
 # needed for Ada95
 TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
 AC_SUBST(TINFO_ARGS2)
 
+case $DFT_LWR_MODEL in
+normal|debug|profile)
+	CF_LDFLAGS_STATIC
+	;;
+esac
+
 AC_MSG_CHECKING(where we will install curses.h)
 test "$with_overwrite" = no && \
 test "x$includedir" = 'x${prefix}/include' && \
@@ -1481,9 +1680,14 @@
 fi
 
 AC_SUBST(WITH_OVERWRITE)
+AC_SUBST(TICS_LIST)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 
+# used to separate tack out of the tree
+NCURSES_TREE=
+AC_SUBST(NCURSES_TREE)
+
 ### predefined stuff for the test programs
 AC_DEFINE(HAVE_SLK_COLOR)
 
@@ -1491,6 +1695,11 @@
 ### with the appropriate compile-rules.
 
 CF_SRC_MODULES($modules_to_build)
+
+if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
+   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
+fi
+
 CF_DIRS_TO_MAKE
 
 AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
@@ -1500,6 +1709,11 @@
 ### Now that we're done running tests, add the compiler-warnings, if any
 CF_ADD_CFLAGS($EXTRA_CFLAGS)
 
+### If we're building with rpath, try to link non-standard libs that way too.
+if test "$DFT_LWR_MODEL" = "shared"; then
+  CF_RPATH_HACK
+fi
+
 ### Define substitutions for header files to avoid name-pollution
 CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
 CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
@@ -1540,13 +1754,19 @@
 TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
 TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
+TINFO_SUFFIX="$TINFO_SUFFIX"
+TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
+TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
+TICS_NAME="$TICS_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
 cf_LIST_MODELS="$cf_list_models"
 cf_cv_abi_version="$cf_cv_abi_version"
+cf_cv_do_relink="$cf_cv_do_relink"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_enable_opaque="$cf_cv_enable_opaque"
 cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
 cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
 cf_cv_rel_version="$cf_cv_rel_version"
diff -Naur ncurses-5.6.orig/dist.mk ncurses-5.6/dist.mk
--- ncurses-5.6.orig/dist.mk	2006-12-17 14:58:35.000000000 -0500
+++ ncurses-5.6/dist.mk	2008-06-18 06:49:52.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.567 2006/12/17 19:58:35 tom Exp $
+# $Id: dist.mk,v 1.646 2008/06/14 18:11:41 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
 NCURSES_MINOR = 6
-NCURSES_PATCH = 20061217
+NCURSES_PATCH = 20080614
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
@@ -106,6 +106,7 @@
 	   fi ;\
 	done
 	# change some things to make weblint happy:
+	@cat man_alias.sed           >> subst.tmp
 	@echo 's/<B>/<STRONG>/g'     >> subst.tmp
 	@echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp
 	@echo 's/<I>/<EM>/g'         >> subst.tmp
diff -Naur ncurses-5.6.orig/doc/hackguide.doc ncurses-5.6/doc/hackguide.doc
--- ncurses-5.6.orig/doc/hackguide.doc	2005-12-24 10:44:52.000000000 -0500
+++ ncurses-5.6/doc/hackguide.doc	2008-06-18 06:49:44.000000000 -0400
@@ -261,7 +261,7 @@
      lib_tracedmp.c lib_tracemse.c trace_buf.c
 
    It  is  rather unlikely you will ever need to change these, unless you
-   want to introduce a new debug trace level for some reasoon.
+   want to introduce a new debug trace level for some reason.
 
    There  is  another  group  of  files  that  do direct I/O via tputs(),
    computations  on  the  terminal  capabilities,  or  queries  to the OS
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/A.htm ncurses-5.6/doc/html/ada/funcs/A.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/A.htm	2005-05-14 13:34:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/A.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,6 +4,21 @@
 <H2>Functions - A</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_129_13" TARGET="main">Above</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_523_14" TARGET="main">Add -  terminal_interface-curses.ads:523</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_528_14" TARGET="main">Add -  terminal_interface-curses.ads:528</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_534_14" TARGET="main">Add -  terminal_interface-curses.ads:534</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_542_14" TARGET="main">Add -  terminal_interface-curses.ads:542</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_653_14" TARGET="main">Add -  terminal_interface-curses.ads:653</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_662_14" TARGET="main">Add -  terminal_interface-curses.ads:662</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_677_14" TARGET="main">Add -  terminal_interface-curses.ads:677</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_686_14" TARGET="main">Add -  terminal_interface-curses.ads:686</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1307_14" TARGET="main">Add_Character_To_Pad_And_Echo_It -  terminal_interface-curses.ads:1307</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1312_14" TARGET="main">Add_Character_To_Pad_And_Echo_It -  terminal_interface-curses.ads:1312</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_551_14" TARGET="main">Add_With_Immediate_Echo -  terminal_interface-curses.ads:551</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_557_14" TARGET="main">Add_With_Immediate_Echo -  terminal_interface-curses.ads:557</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_959_16" TARGET="main">Ahead</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Allocate_Arg</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1016_14" TARGET="main">Allow_Scrolling</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1836_14" TARGET="main">Assume_Default_Colors</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/B.htm ncurses-5.6/doc/html/ada/funcs/B.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/B.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/B.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,8 +4,18 @@
 <H2>Functions - B</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2085_16" TARGET="main">Baud</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_804_16" TARGET="main">Beeper</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_454_14" TARGET="main">Background -  terminal_interface-curses-forms.ads:454</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_459_14" TARGET="main">Background -  terminal_interface-curses-forms.ads:459</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_451_14" TARGET="main">Background -  terminal_interface-curses-menus.ads:451</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_456_14" TARGET="main">Background -  terminal_interface-curses-menus.ads:456</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2052_16" TARGET="main">Baud</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1647_13" TARGET="main">Baudrate</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_870_14" TARGET="main">Beep</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_751_16" TARGET="main">Beeper</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_975_16" TARGET="main">Behind</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_134_13" TARGET="main">Below</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_704_14" TARGET="main">Border</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_77_14" TARGET="main">Bottom</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_65_16" TARGET="main">Bottompanel</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_720_14" TARGET="main">Box</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/C.htm ncurses-5.6/doc/html/ada/funcs/C.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/C.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/C.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,24 +4,53 @@
 <H2>Functions - C</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2245_16" TARGET="main">Canchangecolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_824_16" TARGET="main">Cbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1021_16" TARGET="main">Clear_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2212_16" TARGET="main">Canchangecolor</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1739_13" TARGET="main">Can_Change_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_771_16" TARGET="main">Cbreak</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_382_13" TARGET="main">Changed</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_845_14" TARGET="main">Change_Attributes -  terminal_interface-curses.ads:845</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_854_14" TARGET="main">Change_Attributes -  terminal_interface-curses.ads:854</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1116_14" TARGET="main">Change_Background</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1152_14" TARGET="main">Change_Lines_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_185_13" TARGET="main">Char_Check_Router</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1080_14" TARGET="main">Clear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_968_16" TARGET="main">Clear_Ok</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_981_14" TARGET="main">Clear_On_Next_Update</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1533_14" TARGET="main">Clear_Soft_Label_Keys</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1094_14" TARGET="main">Clear_To_End_Of_Line</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1087_14" TARGET="main">Clear_To_End_Of_Screen</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_98_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:98</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_99_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:99</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2262_16" TARGET="main">Colorcontent</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1322_16" TARGET="main">Copywin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2229_16" TARGET="main">Colorcontent</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1744_14" TARGET="main">Color_Content</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_415_13" TARGET="main">Columns</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1174_14" TARGET="main">Copy</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1267_16" TARGET="main">Copywin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_167_13" TARGET="main">Copy_Arg</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_774_16" TARGET="main">Count -  terminal_interface-curses-forms.adb:774</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_912_16" TARGET="main">Count -  terminal_interface-curses-menus.adb:912</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_293_13" TARGET="main">Create -  terminal_interface-curses-forms.ads:293</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_623_13" TARGET="main">Create -  terminal_interface-curses-forms.ads:623</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_191_13" TARGET="main">Create -  terminal_interface-curses-menus.ads:191</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_638_13" TARGET="main">Create -  terminal_interface-curses-menus.ads:638</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_67_13" TARGET="main">Create -  terminal_interface-curses-panels.ads:67</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_569_13" TARGET="main">Create -  terminal_interface-curses.ads:569</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_729_13" TARGET="main">Current -  terminal_interface-curses-forms.ads:729</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_294_13" TARGET="main">Current -  terminal_interface-curses-menus.ads:294</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_481_13" TARGET="main">Current_Window</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_300_16" TARGET="main">Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2475_16" TARGET="main">curses_versionC</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2349_16" TARGET="main">Curs_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2461_16" TARGET="main">C_Assume_Default_Colors</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Builtin_Router</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2459_17" TARGET="main">curses_freeall</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1859_14" TARGET="main">Curses_Free_All</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1846_13" TARGET="main">Curses_Version</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2451_16" TARGET="main">curses_versionC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2316_16" TARGET="main">Curs_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2437_16" TARGET="main">C_Assume_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_148_13" TARGET="main">C_Builtin_Router</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Choice_Router</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13" TARGET="main">C_Generic_Choice</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13" TARGET="main">C_Generic_Type</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2449_16" TARGET="main">C_Use_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2425_16" TARGET="main">C_Use_Default_Colors</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/D.htm ncurses-5.6/doc/html/ada/funcs/D.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/D.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/D.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,19 +4,44 @@
 <H2>Functions - D</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2033_16" TARGET="main">Defkey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2281_16" TARGET="main">Def_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2283_16" TARGET="main">Def_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2065_16" TARGET="main">Delayoutput</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_692_13" TARGET="main">Data_Ahead</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_697_13" TARGET="main">Data_Behind</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_102_13" TARGET="main">Default_Field_Options</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_125_13" TARGET="main">Default_Form_Options</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_168_13" TARGET="main">Default_Item_Options</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_146_13" TARGET="main">Default_Menu_Options</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1596_14" TARGET="main">Define_Key</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2000_16" TARGET="main">Defkey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2248_16" TARGET="main">Def_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2250_16" TARGET="main">Def_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2032_16" TARGET="main">Delayoutput</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1633_14" TARGET="main">Delay_Output</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_315_14" TARGET="main">Delete -  terminal_interface-curses-forms.ads:315</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_634_14" TARGET="main">Delete -  terminal_interface-curses-forms.ads:634</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_203_14" TARGET="main">Delete -  terminal_interface-curses-menus.ads:203</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_645_14" TARGET="main">Delete -  terminal_interface-curses-menus.ads:645</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_139_14" TARGET="main">Delete -  terminal_interface-curses-panels.ads:139</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_588_14" TARGET="main">Delete -  terminal_interface-curses.ads:588</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1334_14" TARGET="main">Delete_Character -  terminal_interface-curses.ads:1334</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1339_14" TARGET="main">Delete_Character -  terminal_interface-curses.ads:1339</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1212_14" TARGET="main">Delete_Line</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_156_16" TARGET="main">Del_Panel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_16" TARGET="main">Derwin</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_604_13" TARGET="main">Derived_Window</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_298_16" TARGET="main">Derwin</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_126_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:126</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_270_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:270</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_278_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:278</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_274_14" TARGET="main">Description -  terminal_interface-curses-menus.ads:274</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_278_14" TARGET="main">Description -  terminal_interface-curses-menus.ads:278</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_134_14" TARGET="main">Dispatch_Event</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1114_16" TARGET="main">Do_Update</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_374_16" TARGET="main">Dupwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1059_16" TARGET="main">Do_Update</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_711_13" TARGET="main">Driver -  terminal_interface-curses-forms.ads:711</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_660_13" TARGET="main">Driver -  terminal_interface-curses-menus.ads:660</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver -  terminal_interface-curses-menus.adb:973</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_321_13" TARGET="main">Duplicate -  terminal_interface-curses-forms.ads:321</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_614_13" TARGET="main">Duplicate -  terminal_interface-curses.ads:614</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_321_16" TARGET="main">Dupwin</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Dup_Field</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_493_14" TARGET="main">Dynamic_Info</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_559_16" TARGET="main">Dyn_Info</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/E.htm ncurses-5.6/doc/html/ada/funcs/E.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/E.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/E.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,7 +4,15 @@
 <H2>Functions - E</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_862_16" TARGET="main">Echo</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_166_16" TARGET="main">Endwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2093_16" TARGET="main">Erasechar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_809_16" TARGET="main">Echo</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1586_14" TARGET="main">Enable_Key</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_154_13" TARGET="main">Enclosed_In_Window</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_113_16" TARGET="main">Endwin</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_128_14" TARGET="main">End_Mouse</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_497_14" TARGET="main">End_Screen</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_495_14" TARGET="main">End_Windows</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1074_14" TARGET="main">Erase</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2060_16" TARGET="main">Erasechar</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1652_13" TARGET="main">Erase_Character</A>
+<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_96_14" TARGET="main">Eti_Exception</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/F.htm ncurses-5.6/doc/html/ada/funcs/F.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/F.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/F.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,10 +4,13 @@
 <H2>Functions - F</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_601_13" TARGET="main">Fields</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_468_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:468</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_478_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:478</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_255_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:255</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_266_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:266</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_177_13" TARGET="main">Field_Check_Router</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_607_13" TARGET="main">Field_Count</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_424_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:424</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_434_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:434</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_213_16" TARGET="main">Field_Just</A>
@@ -17,11 +20,20 @@
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_507_16" TARGET="main">Field_Pad</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_293_16" TARGET="main">Field_Status</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16" TARGET="main">Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_814_16" TARGET="main">Flash</A>
+<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_116_14" TARGET="main">Fill_String -  terminal_interface-curses-aux.ads:116</A>
+<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_121_13" TARGET="main">Fill_String -  terminal_interface-curses-aux.ads:121</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_761_16" TARGET="main">Flash</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_875_14" TARGET="main">Flash_Screen</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_16" TARGET="main">Fld_Info</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_65_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:65</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_66_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:66</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2075_16" TARGET="main">Flushinp</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2042_16" TARGET="main">Flushinp</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1638_14" TARGET="main">Flush_Input</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_434_14" TARGET="main">Foreground -  terminal_interface-curses-forms.ads:434</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_439_14" TARGET="main">Foreground -  terminal_interface-curses-forms.ads:439</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_431_14" TARGET="main">Foreground -  terminal_interface-curses-menus.ads:431</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_436_14" TARGET="main">Foreground -  terminal_interface-curses-menus.ads:436</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_551_14" TARGET="main">Format</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_889_16" TARGET="main">Form_Opts</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_867_16" TARGET="main">Form_Opts_Off</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_864_16" TARGET="main">Form_Opts_On</A>
@@ -30,9 +42,14 @@
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_628_16" TARGET="main">Form_Sub</A>
 <LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16" TARGET="main">Form_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_600_16" TARGET="main">Form_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_136_14" TARGET="main">Free -  terminal_interface-curses-forms.ads:136</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_180_14" TARGET="main">Free -  terminal_interface-curses-menus.ads:180</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_825_16" TARGET="main">Free -  terminal_interface-curses-forms.adb:825</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_958_16" TARGET="main">Free -  terminal_interface-curses-menus.adb:958</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_131_16" TARGET="main">Freeitem</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_172_14" TARGET="main">Free_Arg</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_133_16" TARGET="main">Free_Field</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_996_16" TARGET="main">Frm_Driver</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_781_13" TARGET="main">Function_Key</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_786_13" TARGET="main">Function_Key_Code</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/G.htm ncurses-5.6/doc/html/ada/funcs/G.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/G.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/G.htm	2008-06-18 06:49:44.000000000 -0400
@@ -8,26 +8,89 @@
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13" TARGET="main">Generic_Field_Check</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13" TARGET="main">Generic_Next</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13" TARGET="main">Generic_Prev</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1463_14" TARGET="main">Get -  terminal_interface-curses.ads:1463</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1474_14" TARGET="main">Get -  terminal_interface-curses.ads:1474</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1370_16" TARGET="main">GetBegX</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1367_16" TARGET="main">GetBegY</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1388_16" TARGET="main">GetCurX</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1385_16" TARGET="main">GetCurY</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1350_16" TARGET="main">GetMaxX</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1347_16" TARGET="main">GetMaxY</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_69_16" TARGET="main">Getmouse</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1407_16" TARGET="main">GetParX</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1404_16" TARGET="main">GetParY</A>
 <LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_65_16" TARGET="main">getwin</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_64_13" TARGET="main">Get_Arg</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1125_13" TARGET="main">Get_Background</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_362_14" TARGET="main">Get_Buffer -  terminal_interface-curses-forms.ads:362</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_368_13" TARGET="main">Get_Buffer -  terminal_interface-curses-forms.ads:368</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_826_13" TARGET="main">Get_Character_Attribute -  terminal_interface-curses.ads:826</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_832_13" TARGET="main">Get_Character_Attribute -  terminal_interface-curses.ads:832</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1244_14" TARGET="main">Get_Cursor_Position</A>
 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_59_13" TARGET="main">Get_Entry</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_137_14" TARGET="main">Get_Event</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1084_16" TARGET="main">Get_Fieldindex</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_61_13" TARGET="main">Get_Fieldtype</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_565_13" TARGET="main">Get_Field_Init_Hook</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_570_13" TARGET="main">Get_Field_Term_Hook</A>
 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_63_13" TARGET="main">Get_Flag -  terminal_interface-curses-termcap.ads:63</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_64_13" TARGET="main">Get_Flag -  terminal_interface-curses-terminfo.ads:64</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_93_13" TARGET="main">Get_Flag -  terminal_interface-curses.adb:93</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_575_13" TARGET="main">Get_Form_Init_Hook</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_580_13" TARGET="main">Get_Form_Term_Hook</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_745_13" TARGET="main">Get_Index -  terminal_interface-curses-forms.ads:745</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_310_13" TARGET="main">Get_Index -  terminal_interface-curses-menus.ads:310</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Get_Itemindex</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_589_13" TARGET="main">Get_Item_Init_Hook</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_594_13" TARGET="main">Get_Item_Term_Hook</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_345_13" TARGET="main">Get_Justification</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_915_13" TARGET="main">Get_KeyPad_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_751_13" TARGET="main">Get_Keystroke</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_599_13" TARGET="main">Get_Menu_Init_Hook</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_532_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:532</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_540_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:540</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_604_13" TARGET="main">Get_Menu_Term_Hook</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_133_13" TARGET="main">Get_Mouse</A>
 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_67_14" TARGET="main">Get_Number -  terminal_interface-curses-termcap.ads:67</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_68_13" TARGET="main">Get_Number -  terminal_interface-curses-terminfo.ads:68</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_411_14" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:411</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_416_13" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:416</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_658_14" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:658</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_663_13" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:663</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_251_14" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:251</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_256_13" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:256</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_347_14" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:347</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_352_13" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:352</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1252_14" TARGET="main">Get_Origin_Relative_To_Parent</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1070_16" TARGET="main">Get_Page</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_758_16" TARGET="main">Get_Pattern</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1228_14" TARGET="main">Get_Size</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1522_14" TARGET="main">Get_Soft_Label_Key -  terminal_interface-curses.ads:1522</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1527_13" TARGET="main">Get_Soft_Label_Key -  terminal_interface-curses.ads:1527</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1563_13" TARGET="main">Get_Soft_Label_Key_Attributes -  terminal_interface-curses.ads:1563</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1567_13" TARGET="main">Get_Soft_Label_Key_Attributes -  terminal_interface-curses.ads:1567</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_713_16" TARGET="main">Get_Spacing</A>
 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_73_14" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:73</A>
 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_76_13" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:76</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_57_14" TARGET="main">Get_String -  terminal_interface-curses-terminfo.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_522_13" TARGET="main">Get_Sub_Window -  terminal_interface-curses-forms.ads:522</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_378_13" TARGET="main">Get_Sub_Window -  terminal_interface-curses-menus.ads:378</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_79_13" TARGET="main">Get_Type</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-field_user_data.ads:59</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-field_user_data.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-form_user_data.ads:59</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-form_user_data.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-item_user_data.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-item_user_data.ads:69</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:59</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-panels-user_data.ads:59</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-panels-user_data.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_511_13" TARGET="main">Get_Window -  terminal_interface-curses-forms.ads:511</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_367_13" TARGET="main">Get_Window -  terminal_interface-curses-menus.ads:367</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_102_13" TARGET="main">Get_Window -  terminal_interface-curses-panels.ads:102</A>
 <LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_48_13" TARGET="main">Get_Window -  terminal_interface-curses-putwin.ads:48</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_62_13" TARGET="main">Get_Window -  terminal_interface-curses-text_io.ads:62</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1236_14" TARGET="main">Get_Window_Position</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_471_14" TARGET="main">Grey -  terminal_interface-curses-menus.ads:471</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_476_14" TARGET="main">Grey -  terminal_interface-curses-menus.ads:476</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/H.htm ncurses-5.6/doc/html/ada/funcs/H.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/H.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/H.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,11 +4,19 @@
 <H2>Functions - H</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_910_16" TARGET="main">Halfdelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2216_16" TARGET="main">Hascolors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_600_16" TARGET="main">Haskey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2109_16" TARGET="main">Has_Ic</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2121_16" TARGET="main">Has_Il</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_859_16" TARGET="main">Halfdelay</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_923_14" TARGET="main">Half_Delay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2183_16" TARGET="main">Hascolors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_547_16" TARGET="main">Haskey</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1726_13" TARGET="main">Has_Colors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2076_16" TARGET="main">Has_Ic</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2088_16" TARGET="main">Has_Il</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1662_13" TARGET="main">Has_Insert_Character</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1667_13" TARGET="main">Has_Insert_Line</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_767_13" TARGET="main">Has_Key</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_98_13" TARGET="main">Has_Mouse</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_60_13" TARGET="main">Has_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_97_14" TARGET="main">Hide</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_95_16" TARGET="main">Hidepanel</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_728_14" TARGET="main">Horizontal_Line</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/I.htm ncurses-5.6/doc/html/ada/funcs/I.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/I.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/I.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,19 +4,42 @@
 <H2>Functions - I</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1045_16" TARGET="main">IDC_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1033_16" TARGET="main">IDL_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Immedok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2231_16" TARGET="main">Initcolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2177_16" TARGET="main">Initpair</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_153_16" TARGET="main">Initscr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_922_16" TARGET="main">Intrflush</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">Isendwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_992_17" TARGET="main">IDC_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_980_16" TARGET="main">IDL_Ok</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1009_14" TARGET="main">Immediate_Update_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1014_17" TARGET="main">Immedok</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_482_14" TARGET="main">Info</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2198_16" TARGET="main">Initcolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2144_16" TARGET="main">Initpair</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_100_16" TARGET="main">Initscr</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1731_14" TARGET="main">Init_Color</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1712_14" TARGET="main">Init_Pair</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_486_14" TARGET="main">Init_Screen</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1499_14" TARGET="main">Init_Soft_Label_Keys</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_489_14" TARGET="main">Init_Windows</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1371_14" TARGET="main">Insert -  terminal_interface-curses.ads:1371</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1377_14" TARGET="main">Insert -  terminal_interface-curses.ads:1377</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1389_14" TARGET="main">Insert -  terminal_interface-curses.ads:1389</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1398_14" TARGET="main">Insert -  terminal_interface-curses.ads:1398</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1204_14" TARGET="main">Insert_Delete_Lines</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1218_14" TARGET="main">Insert_Line</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_871_16" TARGET="main">Intrflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_123_16" TARGET="main">Isendwin</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_502_13" TARGET="main">Is_End_Window</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_774_13" TARGET="main">Is_Function_Key</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_124_13" TARGET="main">Is_Hidden</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_851_16" TARGET="main">Is_Keypad</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_50_13" TARGET="main">Is_MinusOne_Pointer</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1119_16" TARGET="main">Is_New</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_763_13" TARGET="main">Is_New_Page</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1035_16" TARGET="main">Is_Scroll_Ok</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1160_13" TARGET="main">Is_Touched -  terminal_interface-curses.ads:1160</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1165_13" TARGET="main">Is_Touched -  terminal_interface-curses.ads:1165</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_128_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:128</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_253_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:253</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:261</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_623_13" TARGET="main">Items</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_629_13" TARGET="main">Item_Count</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_860_16" TARGET="main">Item_Init</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Item_Opts</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_214_16" TARGET="main">Item_Opts_Off</A>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/K.htm ncurses-5.6/doc/html/ada/funcs/K.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/K.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/K.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,8 +4,11 @@
 <H2>Functions - K</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_117_16" TARGET="main">Keyname</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2020_16" TARGET="main">Keyok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_893_16" TARGET="main">Keypad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2101_16" TARGET="main">Killchar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_64_16" TARGET="main">Keyname</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1987_16" TARGET="main">Keyok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_840_16" TARGET="main">Keypad</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1610_14" TARGET="main">Key_Name -  terminal_interface-curses.ads:1610</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1616_13" TARGET="main">Key_Name -  terminal_interface-curses.ads:1616</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2068_16" TARGET="main">Killchar</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1657_13" TARGET="main">Kill_Character</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/L.htm ncurses-5.6/doc/html/ada/funcs/L.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/L.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/L.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,12 +4,17 @@
 <H2>Functions - L</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1057_16" TARGET="main">Leave_Ok</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1002_14" TARGET="main">Leave_Cursor_After_Update</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">Leave_Ok</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_101_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:101</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_102_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:102</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_412_13" TARGET="main">Lines</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_77_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:77</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_78_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:78</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_328_13" TARGET="main">Link</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_172_16" TARGET="main">Lnk_Field</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2143_16" TARGET="main">Longname -  terminal_interface-curses.adb:2143</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2151_16" TARGET="main">Longname -  terminal_interface-curses.adb:2151</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2110_16" TARGET="main">Longname -  terminal_interface-curses.adb:2110</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2118_16" TARGET="main">Longname -  terminal_interface-curses.adb:2118</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1677_14" TARGET="main">Long_Name -  terminal_interface-curses.ads:1677</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1681_13" TARGET="main">Long_Name -  terminal_interface-curses.ads:1681</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/M.htm ncurses-5.6/doc/html/ada/funcs/M.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/M.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/M.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,6 +4,9 @@
 <H2>Functions - M</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_162_13" TARGET="main">Make_Arg</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_409_14" TARGET="main">Mark -  terminal_interface-curses-menus.ads:409</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_413_14" TARGET="main">Mark -  terminal_interface-curses-menus.ads:413</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_608_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:608</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_618_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:618</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_787_16" TARGET="main">Menu_Fmt</A>
@@ -20,19 +23,25 @@
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_884_16" TARGET="main">Menu_Term</A>
 <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16" TARGET="main">Menu_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_446_16" TARGET="main">Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_882_16" TARGET="main">Meta</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_829_16" TARGET="main">Meta</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_113_16" TARGET="main">MMask</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_214_16" TARGET="main">Mouseinterval</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_55_16" TARGET="main">Mouse_Avail</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_161_13" TARGET="main">Mouse_Interval</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_612_14" TARGET="main">Move -  terminal_interface-curses-forms.ads:612</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_117_14" TARGET="main">Move -  terminal_interface-curses-panels.ads:117</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_786_16" TARGET="main">Move -  terminal_interface-curses-forms.adb:786</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_132_16" TARGET="main">Move -  terminal_interface-curses-panels.adb:132</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_403_16" TARGET="main">Mvderwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_229_16" TARGET="main">mvwaddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1613_16" TARGET="main">Mvwdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_389_16" TARGET="main">Mvwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1637_16" TARGET="main">Mvwinch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1662_16" TARGET="main">Mvwinsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1701_16" TARGET="main">Mvwinsnstr</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_511_14" TARGET="main">Move_Cursor</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_626_14" TARGET="main">Move_Derived_Window</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_619_14" TARGET="main">Move_Window</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_350_16" TARGET="main">Mvderwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">mvwaddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1580_16" TARGET="main">Mvwdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_336_16" TARGET="main">Mvwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1604_16" TARGET="main">Mvwinch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1629_16" TARGET="main">Mvwinsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1668_16" TARGET="main">Mvwinsnstr</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_916_16" TARGET="main">M_Post -  terminal_interface-curses-forms.adb:916</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_354_16" TARGET="main">M_Post -  terminal_interface-curses-menus.adb:354</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_643_16" TARGET="main">M_Scale -  terminal_interface-curses-forms.adb:643</A>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/N.htm ncurses-5.6/doc/html/ada/funcs/N.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/N.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/N.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,24 +4,32 @@
 <H2>Functions - N</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2362_16" TARGET="main">Napms</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_265_14" TARGET="main">Name -  terminal_interface-curses-menus.ads:265</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_268_14" TARGET="main">Name -  terminal_interface-curses-menus.ads:268</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2329_16" TARGET="main">Napms</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1806_14" TARGET="main">Nap_Milli_Seconds</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_116_16" TARGET="main">Newfield</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_804_16" TARGET="main">NewForm</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_98_16" TARGET="main">Newitem</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_939_16" TARGET="main">Newmenu</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1460_16" TARGET="main">Newpad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1427_16" TARGET="main">Newpad</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_51_16" TARGET="main">Newpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_287_16" TARGET="main">Newwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_234_16" TARGET="main">Newwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_222_13" TARGET="main">New_Fieldtype</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_86_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:86</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_87_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:87</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1267_13" TARGET="main">New_Pad</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_89_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:89</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_90_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:90</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1000_16" TARGET="main">NL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_826_16" TARGET="main">NoCbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_953_16" TARGET="main">Nodelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_864_16" TARGET="main">NoEcho</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">NoNL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_845_16" TARGET="main">NoRaw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_988_16" TARGET="main">Notimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_17" TARGET="main">No_Qiflush</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_193_13" TARGET="main">Next_Router</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_947_16" TARGET="main">NL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_773_16" TARGET="main">NoCbreak</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_902_16" TARGET="main">Nodelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_811_16" TARGET="main">NoEcho</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_949_16" TARGET="main">NoNL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_792_16" TARGET="main">NoRaw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_935_16" TARGET="main">Notimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_885_17" TARGET="main">No_Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_421_13" TARGET="main">Number_Of_Colors</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_424_13" TARGET="main">Number_Of_Color_Pairs</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/O.htm ncurses-5.6/doc/html/ada/funcs/O.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/O.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/O.htm	2008-06-18 06:49:44.000000000 -0400
@@ -5,6 +5,8 @@
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
 <LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_59_17" TARGET="main">Output</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1363_16" TARGET="main">Overlay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1351_16" TARGET="main">Overwrite</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1194_14" TARGET="main">Overlay -  terminal_interface-curses.ads:1194</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1308_16" TARGET="main">Overlay -  terminal_interface-curses.adb:1308</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1188_14" TARGET="main">Overwrite -  terminal_interface-curses.ads:1188</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1296_16" TARGET="main">Overwrite -  terminal_interface-curses.adb:1296</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/P.htm ncurses-5.6/doc/html/ada/funcs/P.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/P.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/P.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,17 +4,33 @@
 <H2>Functions - P</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_472_14" TARGET="main">Pad_Character -  terminal_interface-curses-forms.ads:472</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_490_14" TARGET="main">Pad_Character -  terminal_interface-curses-menus.ads:490</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_740_13" TARGET="main">Page</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_80_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:80</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_81_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:81</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2199_16" TARGET="main">Paircontent</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2166_16" TARGET="main">Paircontent</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1719_14" TARGET="main">Pair_Content</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_144_16" TARGET="main">Panel_Hidden</A>
 <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_65_16" TARGET="main">Panel_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_105_16" TARGET="main">Panel_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1564_16" TARGET="main">Pechochar</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1539_16" TARGET="main">Pnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_527_14" TARGET="main">Pattern</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1531_16" TARGET="main">Pechochar</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1352_13" TARGET="main">Peek -  terminal_interface-curses.ads:1352</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1358_13" TARGET="main">Peek -  terminal_interface-curses.ads:1358</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1414_14" TARGET="main">Peek -  terminal_interface-curses.ads:1414</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1423_14" TARGET="main">Peek -  terminal_interface-curses.ads:1423</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1438_14" TARGET="main">Peek -  terminal_interface-curses.ads:1438</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1447_14" TARGET="main">Peek -  terminal_interface-curses.ads:1447</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1506_16" TARGET="main">Pnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_683_14" TARGET="main">Position_Cursor -  terminal_interface-curses-forms.ads:683</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_394_14" TARGET="main">Position_Cursor -  terminal_interface-curses-menus.ads:394</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_672_14" TARGET="main">Post -  terminal_interface-curses-forms.ads:672</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_322_14" TARGET="main">Post -  terminal_interface-curses-menus.ads:322</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_941_16" TARGET="main">Pos_Form_Cursor</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_499_16" TARGET="main">Pos_Menu_Cursor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1509_16" TARGET="main">Prefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1476_16" TARGET="main">Prefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_201_13" TARGET="main">Prev_Router</A>
 <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:54</A>
 <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:61</A>
 <LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:50</A>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/Q.htm ncurses-5.6/doc/html/ada/funcs/Q.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/Q.htm	2005-05-14 13:34:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/Q.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,5 +4,5 @@
 <H2>Functions - Q</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_934_17" TARGET="main">Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_883_17" TARGET="main">Qiflush</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/R.htm ncurses-5.6/doc/html/ada/funcs/R.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/R.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/R.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,14 +4,36 @@
 <H2>Functions - R</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_843_16" TARGET="main">Raw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1145_16" TARGET="main">Redrawwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_790_16" TARGET="main">Raw</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_589_14" TARGET="main">Redefine -  terminal_interface-curses-forms.ads:589</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_613_14" TARGET="main">Redefine -  terminal_interface-curses-menus.ads:613</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1059_14" TARGET="main">Redraw -  terminal_interface-curses.ads:1059</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1063_14" TARGET="main">Redraw -  terminal_interface-curses.ads:1063</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1090_16" TARGET="main">Redrawwin</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1045_14" TARGET="main">Refresh -  terminal_interface-curses.ads:1045</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1283_14" TARGET="main">Refresh -  terminal_interface-curses.ads:1283</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1512_14" TARGET="main">Refresh_Soft_Label_Keys</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1517_14" TARGET="main">Refresh_Soft_Label_Keys_Without_Update</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1052_14" TARGET="main">Refresh_Without_Update -  terminal_interface-curses.ads:1052</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1295_14" TARGET="main">Refresh_Without_Update -  terminal_interface-curses.ads:1295</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_101_14" TARGET="main">Register_Reportable_Event</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_110_14" TARGET="main">Register_Reportable_Events</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14" TARGET="main">Release</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_111_14" TARGET="main">Replace</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_119_16" TARGET="main">Replace_Pan</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_276_14" TARGET="main">Request_Name -  terminal_interface-curses-forms.ads:276</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_279_14" TARGET="main">Request_Name -  terminal_interface-curses-forms.ads:279</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_106_14" TARGET="main">Request_Name -  terminal_interface-curses-menus.ads:106</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_109_14" TARGET="main">Request_Name -  terminal_interface-curses-menus.ads:109</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:80</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_88_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:88</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2327_16" TARGET="main">Resetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2299_16" TARGET="main">Reset_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2301_16" TARGET="main">Reset_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2338_16" TARGET="main">Ripoffline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2294_16" TARGET="main">Resetty</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1765_14" TARGET="main">Reset_Curses_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2266_16" TARGET="main">Reset_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2268_16" TARGET="main">Reset_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1776_14" TARGET="main">Reset_Terminal_State</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1911_14" TARGET="main">Resize</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1538_14" TARGET="main">Restore_Soft_Label_Keys</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2305_16" TARGET="main">Ripoffline</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1789_14" TARGET="main">Rip_Off_Lines</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/S.htm ncurses-5.6/doc/html/ada/funcs/S.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/S.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/S.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,24 +4,51 @@
 <H2>Functions - S</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2317_16" TARGET="main">Savetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1081_16" TARGET="main">Scrollok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2499_16" TARGET="main">scr_dump</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2525_16" TARGET="main">scr_init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2512_16" TARGET="main">scr_restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2538_16" TARGET="main">scr_set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Savetty</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1759_14" TARGET="main">Save_Curses_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1771_14" TARGET="main">Save_Terminal_State</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_527_14" TARGET="main">Scale -  terminal_interface-curses-forms.ads:527</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_383_14" TARGET="main">Scale -  terminal_interface-curses-menus.ads:383</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1867_14" TARGET="main">Screen_Dump_To_File</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1875_14" TARGET="main">Screen_Init_From_File</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1871_14" TARGET="main">Screen_Restore_From_File</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1879_14" TARGET="main">Screen_Set_File</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1322_14" TARGET="main">Scroll</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1022_13" TARGET="main">Scrolling_Allowed</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1024_16" TARGET="main">Scrollok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2489_16" TARGET="main">scr_dump</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2515_16" TARGET="main">scr_init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2502_16" TARGET="main">scr_restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2528_16" TARGET="main">scr_set</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_446_14" TARGET="main">Set_Background -  terminal_interface-curses-forms.ads:446</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_443_14" TARGET="main">Set_Background -  terminal_interface-curses-menus.ads:443</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1108_14" TARGET="main">Set_Background -  terminal_interface-curses.ads:1108</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_354_14" TARGET="main">Set_Buffer</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_886_14" TARGET="main">Set_Cbreak_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_817_14" TARGET="main">Set_Character_Attributes</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_92_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:92</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_93_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:93</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_838_14" TARGET="main">Set_Color</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_723_14" TARGET="main">Set_Current -  terminal_interface-curses-forms.ads:723</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_288_14" TARGET="main">Set_Current -  terminal_interface-curses-menus.ads:288</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1026_16" TARGET="main">Set_Current_Fld</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_287_16" TARGET="main">Set_Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1801_14" TARGET="main">Set_Cursor_Visibility</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_898_14" TARGET="main">Set_Echo_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_964_14" TARGET="main">Set_Escape_Timer_Mode</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_595_14" TARGET="main">Set_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_227_13" TARGET="main">Set_Fieldtype_Arg</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_234_13" TARGET="main">Set_Fieldtype_Choice</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_448_16" TARGET="main">Set_Field_Back</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_404_16" TARGET="main">Set_Field_Fore</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_665_16" TARGET="main">Set_Field_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_541_14" TARGET="main">Set_Field_Init_Hook</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_196_16" TARGET="main">Set_Field_Just</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_310_16" TARGET="main">Set_Field_Max</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_330_16" TARGET="main">Set_Field_Opts</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_490_16" TARGET="main">Set_Field_Pad</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_681_16" TARGET="main">Set_Field_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_547_14" TARGET="main">Set_Field_Term_Hook</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alpha.ads:49</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
@@ -41,58 +68,124 @@
 <LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-numeric.adb:56</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-user.adb:56</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_153_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types.adb:153</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_928_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_426_14" TARGET="main">Set_Foreground -  terminal_interface-curses-forms.ads:426</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_423_14" TARGET="main">Set_Foreground -  terminal_interface-curses-menus.ads:423</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_537_14" TARGET="main">Set_Format</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_697_16" TARGET="main">Set_Form_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_553_14" TARGET="main">Set_Form_Init_Hook</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_845_16" TARGET="main">Set_Form_Opts</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_613_16" TARGET="main">Set_Form_Sub</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_713_16" TARGET="main">Set_Form_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_559_14" TARGET="main">Set_Form_Term_Hook</A>
 <LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16" TARGET="main">Set_Form_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_585_16" TARGET="main">Set_Form_Win</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_733_16" TARGET="main">Set_Frm_Fields</A>
 <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1056_16" TARGET="main">Set_Frm_Page</A>
 <LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16" TARGET="main">Set_Ftyp</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_463_14" TARGET="main">Set_Grey</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_618_14" TARGET="main">Set_Items -  terminal_interface-curses-menus.ads:618</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items -  terminal_interface-curses-menus.adb:893</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_805_16" TARGET="main">Set_Item_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_565_14" TARGET="main">Set_Item_Init_Hook</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_194_16" TARGET="main">Set_Item_Opts</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_819_16" TARGET="main">Set_Item_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_571_14" TARGET="main">Set_Item_Term_Hook</A>
 <LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16" TARGET="main">Set_Item_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_155_16" TARGET="main">Set_Item_Val</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_339_14" TARGET="main">Set_Justification</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_910_14" TARGET="main">Set_KeyPad_Mode</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_95_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:95</A>
 <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_96_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:96</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_403_14" TARGET="main">Set_Mark -  terminal_interface-curses-menus.ads:403</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark -  terminal_interface-curses-menus.adb:514</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_387_14" TARGET="main">Set_Maximum_Size</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_591_16" TARGET="main">Set_Menu_Back</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_768_16" TARGET="main">Set_Menu_Fmt</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_552_16" TARGET="main">Set_Menu_Fore</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_629_16" TARGET="main">Set_Menu_Grey</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_833_16" TARGET="main">Set_Menu_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_577_14" TARGET="main">Set_Menu_Init_Hook</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_374_16" TARGET="main">Set_Menu_Opts</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_667_16" TARGET="main">Set_Menu_Pad</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_457_16" TARGET="main">Set_Menu_Sub</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_847_16" TARGET="main">Set_Menu_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_583_14" TARGET="main">Set_Menu_Term_Hook</A>
 <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16" TARGET="main">Set_Menu_Userptr</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Set_Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_904_14" TARGET="main">Set_Meta_Mode</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_757_14" TARGET="main">Set_New_Page</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_975_14" TARGET="main">Set_NL_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_943_14" TARGET="main">Set_NoDelay_Mode</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_397_14" TARGET="main">Set_Options -  terminal_interface-curses-forms.ads:397</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_644_14" TARGET="main">Set_Options -  terminal_interface-curses-forms.ads:644</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_236_14" TARGET="main">Set_Options -  terminal_interface-curses-menus.ads:236</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_333_14" TARGET="main">Set_Options -  terminal_interface-curses-menus.ads:333</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_466_14" TARGET="main">Set_Pad_Character -  terminal_interface-curses-forms.ads:466</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_484_14" TARGET="main">Set_Pad_Character -  terminal_interface-curses-menus.ads:484</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_734_14" TARGET="main">Set_Page -  terminal_interface-curses-forms.ads:734</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page -  terminal_interface-curses-forms.adb:1105</A>
 <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_54_16" TARGET="main">Set_Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_520_13" TARGET="main">Set_Pattern -  terminal_interface-curses-menus.ads:520</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern -  terminal_interface-curses-menus.adb:736</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_935_14" TARGET="main">Set_Queue_Interrupt_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_892_14" TARGET="main">Set_Raw_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1027_14" TARGET="main">Set_Scroll_Region</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1505_14" TARGET="main">Set_Soft_Label_Key</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1556_14" TARGET="main">Set_Soft_Label_Key_Attributes</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1572_14" TARGET="main">Set_Soft_Label_Key_Color</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_500_14" TARGET="main">Set_Spacing -  terminal_interface-curses-menus.ads:500</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing -  terminal_interface-curses-menus.adb:693</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_376_14" TARGET="main">Set_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_516_14" TARGET="main">Set_Sub_Window -  terminal_interface-curses-forms.ads:516</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_372_14" TARGET="main">Set_Sub_Window -  terminal_interface-curses-menus.ads:372</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_643_14" TARGET="main">Set_Synch_Mode</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_952_14" TARGET="main">Set_Timeout_Mode</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">Set_Toprow</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_299_14" TARGET="main">Set_Top_Row</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-forms-field_user_data.ads:53</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-forms-form_user_data.ads:53</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14" TARGET="main">Set_User_Data -  terminal_interface-curses-menus-item_user_data.ads:58</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:53</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-panels-user_data.ads:53</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_212_14" TARGET="main">Set_Value</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_505_14" TARGET="main">Set_Window -  terminal_interface-curses-forms.ads:505</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_361_14" TARGET="main">Set_Window -  terminal_interface-curses-menus.ads:361</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window -  terminal_interface-curses-text_io.ads:59</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_87_14" TARGET="main">Show</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_85_16" TARGET="main">Showpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1988_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1988</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1998_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1998</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1952_16" TARGET="main">Slk_Attroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1950_16" TARGET="main">Slk_Attron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1974_16" TARGET="main">Slk_Attrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1918_16" TARGET="main">Slk_Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2008_16" TARGET="main">Slk_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1852_16" TARGET="main">Slk_Init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1902_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1902</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1910_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1910</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1891_16" TARGET="main">Slk_Noutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1881_16" TARGET="main">Slk_Refresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1928_16" TARGET="main">Slk_Restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1864_16" TARGET="main">Slk_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1938_16" TARGET="main">Slk_Touch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1479_16" TARGET="main">Subpad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_323_16" TARGET="main">Subwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_416_16" TARGET="main">Syncok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1955_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1955</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1965_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1965</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1919_16" TARGET="main">Slk_Attroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1917_16" TARGET="main">Slk_Attron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1941_16" TARGET="main">Slk_Attrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1885_16" TARGET="main">Slk_Clear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1975_16" TARGET="main">Slk_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1819_16" TARGET="main">Slk_Init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1869_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1869</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1877_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1877</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1858_16" TARGET="main">Slk_Noutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1848_16" TARGET="main">Slk_Refresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1895_16" TARGET="main">Slk_Restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1831_16" TARGET="main">Slk_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1905_16" TARGET="main">Slk_Touch</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_508_14" TARGET="main">Spacing</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_476_13" TARGET="main">Standard_Window</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_800_14" TARGET="main">Standout</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1707_14" TARGET="main">Start_Color</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_123_13" TARGET="main">Start_Mouse</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1446_16" TARGET="main">Subpad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_270_16" TARGET="main">Subwin</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1273_13" TARGET="main">Sub_Pad</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_594_13" TARGET="main">Sub_Window</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1672_13" TARGET="main">Supported_Attributes</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_806_14" TARGET="main">Switch_Character_Attribute</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_403_14" TARGET="main">Switch_Options -  terminal_interface-curses-forms.ads:403</A>
+<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_650_14" TARGET="main">Switch_Options -  terminal_interface-curses-forms.ads:650</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_242_14" TARGET="main">Switch_Options -  terminal_interface-curses-menus.ads:242</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_339_14" TARGET="main">Switch_Options -  terminal_interface-curses-menus.ads:339</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1548_14" TARGET="main">Switch_Soft_Label_Key_Attributes</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_638_14" TARGET="main">Synchronize_Downwards</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_633_14" TARGET="main">Synchronize_Upwards</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_363_16" TARGET="main">Syncok</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/T.htm ncurses-5.6/doc/html/ada/funcs/T.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/T.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/T.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,9 +4,12 @@
 <H2>Functions - T</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2133_16" TARGET="main">Termattrs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2159_16" TARGET="main">Termname -  terminal_interface-curses.adb:2159</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2167_16" TARGET="main">Termname -  terminal_interface-curses.adb:2167</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_418_13" TARGET="main">Tab_Size</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2100_16" TARGET="main">Termattrs</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1687_14" TARGET="main">Terminal_Name -  terminal_interface-curses.ads:1687</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1691_13" TARGET="main">Terminal_Name -  terminal_interface-curses.ads:1691</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2126_16" TARGET="main">Termname -  terminal_interface-curses.adb:2126</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2134_16" TARGET="main">Termname -  terminal_interface-curses.adb:2134</A>
 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_51_16" TARGET="main">tgetent</A>
 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_71_16" TARGET="main">tgetflag</A>
 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
@@ -18,8 +21,16 @@
 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:87</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:108</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_127_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:127</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_82_14" TARGET="main">Top</A>
 <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_75_16" TARGET="main">Toppanel</A>
 <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_327_16" TARGET="main">Toprow</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_305_13" TARGET="main">Top_Row</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1141_14" TARGET="main">Touch -  terminal_interface-curses.ads:1141</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1145_14" TARGET="main">Touch -  terminal_interface-curses.ads:1145</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1543_14" TARGET="main">Touch_Soft_Label_Keys</A>
 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2426_16" TARGET="main">Transform</A>
+<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_102_14" TARGET="main">Trace_On</A>
+<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_106_14" TARGET="main">Trace_Put</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2402_16" TARGET="main">Transform</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1814_14" TARGET="main">Transform_Coordinates</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/U.htm ncurses-5.6/doc/html/ada/funcs/U.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/U.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/U.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,9 +4,20 @@
 <H2>Functions - U</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2049_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2049</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2057_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2057</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_590_16" TARGET="main">Ungetch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2016_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2016</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2024_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2024</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_762_14" TARGET="main">Undo_Keystroke</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_537_16" TARGET="main">Ungetch</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_189_16" TARGET="main">Ungetmouse</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2484_16" TARGET="main">use_extended_namesC</A>
+<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_149_14" TARGET="main">Unget_Mouse</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1136_14" TARGET="main">Untouch</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1622_14" TARGET="main">Un_Control -  terminal_interface-curses.ads:1622</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1627_13" TARGET="main">Un_Control -  terminal_interface-curses.ads:1627</A>
+<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_92_14" TARGET="main">Update_Panels</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1040_14" TARGET="main">Update_Screen</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1831_14" TARGET="main">Use_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1851_13" TARGET="main">Use_Extended_Names</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2474_16" TARGET="main">use_extended_namesC</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_995_14" TARGET="main">Use_Insert_Delete_Character</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_988_14" TARGET="main">Use_Insert_Delete_Line</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/V.htm ncurses-5.6/doc/html/ada/funcs/V.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/V.htm	2005-05-14 13:34:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/V.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,5 +4,8 @@
 <H2>Functions - V</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value -  terminal_interface-curses-forms-field_types-enumeration-ada.ads:53</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_218_13" TARGET="main">Value -  terminal_interface-curses-menus.ads:218</A>
+<LI><A HREF="../terminal_interface-curses__ads.htm#ref_737_14" TARGET="main">Vertical_Line</A>
+<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_227_13" TARGET="main">Visible</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/funcs/W.htm ncurses-5.6/doc/html/ada/funcs/W.htm
--- ncurses-5.6.orig/doc/html/ada/funcs/W.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/funcs/W.htm	2008-06-18 06:49:44.000000000 -0400
@@ -4,50 +4,50 @@
 <H2>Functions - W</H2>
 <A HREF="../funcs.htm" TARGET="_self">[index]</A>
 <UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_204_16" TARGET="main">Waddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_460_16" TARGET="main">Waddchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_429_16" TARGET="main">Waddnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_708_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:708</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_731_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:731</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_667_16" TARGET="main">Wattroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_664_16" TARGET="main">Wattron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_692_16" TARGET="main">Wattrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1214_17" TARGET="main">WBackground</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_501_16" TARGET="main">Wborder</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1224_16" TARGET="main">WChangeBkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Wchgat</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1182_16" TARGET="main">Wclear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1192_16" TARGET="main">Wclearbot</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1202_16" TARGET="main">Wcleareol</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1600_16" TARGET="main">Wdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_307_16" TARGET="main">Wdelwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_261_16" TARGET="main">Wechochar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_151_16" TARGET="main">Waddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_407_16" TARGET="main">Waddchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_376_16" TARGET="main">Waddnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_655_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:655</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_678_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:678</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_614_16" TARGET="main">Wattroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_611_16" TARGET="main">Wattron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_639_16" TARGET="main">Wattrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1159_17" TARGET="main">WBackground</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_448_16" TARGET="main">Wborder</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1169_16" TARGET="main">WChangeBkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_719_16" TARGET="main">Wchgat</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1127_16" TARGET="main">Wclear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1137_16" TARGET="main">Wclearbot</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1147_16" TARGET="main">Wcleareol</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1567_16" TARGET="main">Wdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_254_16" TARGET="main">Wdelwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_208_16" TARGET="main">Wechochar</A>
 <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_200_16" TARGET="main">Wenclose</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1172_16" TARGET="main">Werase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1235_16" TARGET="main">Wgetbkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_576_16" TARGET="main">Wgetch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1812_16" TARGET="main">Wgetnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_543_16" TARGET="main">Whline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1626_16" TARGET="main">Winch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1764_16" TARGET="main">Winchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1722_16" TARGET="main">Winnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1648_16" TARGET="main">Winsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1376_16" TARGET="main">Winsdelln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1680_16" TARGET="main">Winsnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1288_16" TARGET="main">WLineTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_190_16" TARGET="main">Wmove</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1135_16" TARGET="main">Wnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1158_16" TARGET="main">Wredrawln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1124_16" TARGET="main">Wrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2552_16" TARGET="main">wresize</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1588_16" TARGET="main">Wscrl</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1101_16" TARGET="main">Wsetscrreg</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_754_16" TARGET="main">Wset_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_644_16" TARGET="main">wstandend</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">wstandout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_965_16" TARGET="main">Wtimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">Wtouchln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_560_16" TARGET="main">Wvline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1301_16" TARGET="main">WWinTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_66_13" TARGET="main">W_Get_Element</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1117_16" TARGET="main">Werase</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1180_16" TARGET="main">Wgetbkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_523_16" TARGET="main">Wgetch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1779_16" TARGET="main">Wgetnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_490_16" TARGET="main">Whline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1593_16" TARGET="main">Winch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1731_16" TARGET="main">Winchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1689_16" TARGET="main">Winnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1615_16" TARGET="main">Winsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1321_16" TARGET="main">Winsdelln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1647_16" TARGET="main">Winsnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1233_16" TARGET="main">WLineTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_137_16" TARGET="main">Wmove</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1080_16" TARGET="main">Wnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_151_14" TARGET="main">Wrap_Builtin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1103_16" TARGET="main">Wredrawln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Wrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2542_16" TARGET="main">wresize</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1555_16" TARGET="main">Wscrl</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1046_16" TARGET="main">Wsetscrreg</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_701_16" TARGET="main">Wset_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_591_16" TARGET="main">wstandend</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_589_16" TARGET="main">wstandout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_914_17" TARGET="main">Wtimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1191_16" TARGET="main">Wtouchln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_507_16" TARGET="main">Wvline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">WWinTouched</A>
 </UL></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/table.html ncurses-5.6/doc/html/ada/table.html
--- ncurses-5.6.orig/doc/html/ada/table.html	2000-12-02 18:38:22.000000000 -0500
+++ ncurses-5.6/doc/html/ada/table.html	2008-06-18 06:49:44.000000000 -0400
@@ -10,36 +10,38 @@
 <TABLE ALIGN=CENTER BORDER>
 <TR ALIGN=LEFT>
 <TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
+<TR><TD>_nc_freeall()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Curses_Free_All</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
 <TR><TD>_tracef()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_2">Trace_Put</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
-<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Assume_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
-<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Assume_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
+<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
 <TR><TD>bottom_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_3">Bottom</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
 <TR><TD>current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_58">Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_14">Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_152">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
+<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>curscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Current_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
 <TR><TD>data_ahead()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_54">Data_Ahead</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
 <TR><TD>data_behind()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_55">Data_Behind</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
-<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
+<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
 <TR><TD>del_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_15">Delete</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
 <TR><TD>dup_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_4">Duplicate</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
-<TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
 <TR><TD>dynamic_field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_26">Dynamic_Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
-<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_21">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_22">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
 <TR><TD>field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_9">Get_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
@@ -59,8 +61,8 @@
 <TR><TD>field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_Type</A></TD><TD><A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
 <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
-<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
-<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>form_driver()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_56">Driver</A></TD><TD><A HREF="../man/form_driver.3x.html">form_driver.3x</A></TD></TR>
 <TR><TD>form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_42">Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
 <TR><TD>form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_38">Get_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
@@ -77,28 +79,28 @@
 <TR><TD>free_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_47">Delete</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
 <TR><TD>free_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
 <TR><TD>free_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_60">Delete</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
-<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
 <TR><TD>getmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_2">Get_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
-<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>hide_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_7">Hide</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
-<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
 <TR><TD>item_count()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_58">Item_Count</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
 <TR><TD>item_description();</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_12">Description</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
 <TR><TD>item_index()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_17">Get_Index</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
@@ -112,30 +114,30 @@
 <TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
 <TR><TD>item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_5">Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
 <TR><TD>item_visible()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_6">Visible</A></TD><TD><A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></TD></TR>
-<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_125">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
-<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
+<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
 <TR><TD>link_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_5">Link</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
-<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_137">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>menu_driver()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_61">Driver</A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
-<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_47">Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_54">Get_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
 <TR><TD>menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_57">Items</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
 <TR><TD>menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_30">Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
 <TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_21">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
 <TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_22">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
 <TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_45">Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
 <TR><TD>menu_requestname.3x</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_62"></A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
 <TR><TD>menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_43">Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
@@ -144,25 +146,25 @@
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
 <TR><TD>menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_24">Get_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
 <TR><TD>mouseinterval()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_5">Mouse_Interval</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>mousemask()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_1">Start_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
 <TR><TD>move_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_44">Move</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
 <TR><TD>move_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_11">Move</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
-<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
-<TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
-<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
-<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
-<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
-<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
-<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
-<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
-<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
-<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
+<TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
+<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
+<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
+<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_2">New_Field</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
 <TR><TD>new_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_45">Create</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
@@ -173,14 +175,14 @@
 <TR><TD>new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_63">Is_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_2">New_Panel</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
-<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
-<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
 <TR><TD>panel_above()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_13">Above</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_below()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_14">Below</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_hidden()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_12">Is_Hidden</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
@@ -188,28 +190,28 @@
 <TR><TD>panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_8">Get_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_9">Panel_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
 <TR><TD>pos_form_cursor()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_53">Position_Cursor</A></TD><TD><A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></TD></TR>
 <TR><TD>pos_menu_cursor()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_28">Position_Cursor</A></TD><TD><A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></TD></TR>
 <TR><TD>post_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_52">Post</A></TD><TD><A HREF="../man/form_post.3x.html">form_post.3x</A></TD></TR>
 <TR><TD>post_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_18">Post</A></TD><TD><A HREF="../man/menu_post.3x.html">menu_post.3x</A></TD></TR>
-<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
 <TR><TD>replace_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_10">Replace</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
-<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_152">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
 <TR><TD>scale_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_31">Scale</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
 <TR><TD>scale_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_27">Scale</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
-<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
-<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
-<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
-<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_163">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
 <TR><TD>set_current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_57">Set_Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
 <TR><TD>set_current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_13">Set_Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>set_field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_20">Set_Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
@@ -238,15 +240,15 @@
 <TR><TD>set_item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_49">Set_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
 <TR><TD>set_item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
 <TR><TD>set_item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_4">Set_Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
-<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>set_menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_46">Set_Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
-<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>set_menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_50">Set_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
 <TR><TD>set_menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_56">Redefine</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
 <TR><TD>set_menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_29">Set_Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
 <TR><TD>set_menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_19">Set_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
 <TR><TD>set_menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_44">Set_Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
 <TR><TD>set_menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_42">Set_Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
 <TR><TD>set_menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_25">Set_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
@@ -257,83 +259,83 @@
 <TR><TD>set_panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>set_top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_15">Set_Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
 <TR><TD>show_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_5">Show</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
 <TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_120">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
 <TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_113">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
-<TR><TD>standout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Standout</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+<TR><TD>standout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Standout</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
 <TR><TD>stdscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_1">Standard_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
-<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
-<TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
-<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+<TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_139">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
 <TR><TD>top_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_4">Top</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
 <TR><TD>top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_16">Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
 <TR><TD>trace()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_1">Trace_on</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
-<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
 <TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_127">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
-<TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+<TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
 <TR><TD>ungetmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_3">Unget_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
 <TR><TD>update_panels()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_6">Update_Panels</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Use_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
-<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
-<TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
-<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
-<TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
-<TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
-<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
-<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
-<TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Use_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
+<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
+<TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
+<TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
+<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+<TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
 <TR><TD>wenclose()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_4">Enclosed_In_Window</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
-<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
-<TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
-<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
-<TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
-<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
-<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
-<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
-<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
-<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
-<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
-<TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
-<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
-<TR><TD>wresize()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Resize</A></TD><TD><A HREF="../man/wresize.3x.html">wresize.3x</A></TD></TR>
-<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
-<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
-<TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
-<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
-<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
-<TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+<TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
+<TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
+<TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
+<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+<TR><TD>wresize()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_164">Resize</A></TD><TD><A HREF="../man/wresize.3x.html">wresize.3x</A></TD></TR>
+<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
+<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+<TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+<TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
 </TABLE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-aux__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-aux__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-aux__ads.htm	2006-09-23 16:31:30.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-aux__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -48,84 +47,84 @@
 <FONT COLOR=green><EM>--  This module is generated. Please don't change it manually!</EM></FONT>
 <FONT COLOR=green><EM>--  Run the generator instead.</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">System</A>;
+<b>with</b> System;
 <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
-<b>with</b> Unchecked_Conversion;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A>;
 
-<b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Aux);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>);
 
-   <b>use</b> <b>type</b> Interfaces.C.int;
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
 
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_62_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
-   <b>type</b>    <FONT COLOR=red><A NAME="ref_63_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">System</A>.Address;
-   <b>type</b>    <FONT COLOR=red><A NAME="ref_64_12">C_Chtype</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
-   <b>type</b>    C_AttrType <b>is</b> <b>new</b> C_ULong;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
+   <b>type</b>    <FONT COLOR=red><A NAME="ref_62_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> System.Address;
+   <b>type</b>    <FONT COLOR=red><A NAME="ref_63_12">C_Chtype</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
+   <b>type</b>    <FONT COLOR=red><A NAME="ref_64_12">C_AttrType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
 
    <FONT COLOR=green><EM>--  This is how those constants are defined in ncurses. I see them also</EM></FONT>
    <FONT COLOR=green><EM>--  exactly like this in all ETI implementations I ever tested. So it</EM></FONT>
    <FONT COLOR=green><EM>--  could be that this is quite general, but please check with your curses.</EM></FONT>
    <FONT COLOR=green><EM>--  This is critical, because curses sometime mixes boolean returns with</EM></FONT>
    <FONT COLOR=green><EM>--  returning an error status.</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_72_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
-   Curses_Err   : <b>constant</b> C_Int := -1;
+   <FONT COLOR=red><A NAME="ref_71_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
+   <FONT COLOR=red><A NAME="ref_72_4">Curses_Err</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1;
 
-   <FONT COLOR=red><A NAME="ref_75_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
-   Curses_False : <b>constant</b> C_Int := 0;
+   <FONT COLOR=red><A NAME="ref_74_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
+   <FONT COLOR=red><A NAME="ref_75_4">Curses_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
 
    <FONT COLOR=green><EM>--  Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT>
-   <b>subtype</b> Eti_Error <b>is</b> C_Int <b>range</b> -14 .. 0;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Eti_Error</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> <b>range</b> -14 .. 0;
 
-   <FONT COLOR=red><A NAME="ref_81_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
-   <FONT COLOR=red><A NAME="ref_82_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
-   <FONT COLOR=red><A NAME="ref_83_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
-   <FONT COLOR=red><A NAME="ref_84_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
-   <FONT COLOR=red><A NAME="ref_85_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
-   <FONT COLOR=red><A NAME="ref_86_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
-   <FONT COLOR=red><A NAME="ref_87_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
-   <FONT COLOR=red><A NAME="ref_88_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
-   <FONT COLOR=red><A NAME="ref_89_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
-   <FONT COLOR=red><A NAME="ref_90_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
-   <FONT COLOR=red><A NAME="ref_91_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
-   <FONT COLOR=red><A NAME="ref_92_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
-   <FONT COLOR=red><A NAME="ref_93_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
-   <FONT COLOR=red><A NAME="ref_94_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
-   E_Current          : <b>constant</b> Eti_Error := -14;
+   <FONT COLOR=red><A NAME="ref_80_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
+   <FONT COLOR=red><A NAME="ref_81_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
+   <FONT COLOR=red><A NAME="ref_82_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
+   <FONT COLOR=red><A NAME="ref_83_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
+   <FONT COLOR=red><A NAME="ref_84_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
+   <FONT COLOR=red><A NAME="ref_85_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
+   <FONT COLOR=red><A NAME="ref_86_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
+   <FONT COLOR=red><A NAME="ref_87_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
+   <FONT COLOR=red><A NAME="ref_88_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
+   <FONT COLOR=red><A NAME="ref_89_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
+   <FONT COLOR=red><A NAME="ref_90_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
+   <FONT COLOR=red><A NAME="ref_91_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
+   <FONT COLOR=red><A NAME="ref_92_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
+   <FONT COLOR=red><A NAME="ref_93_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
+   <FONT COLOR=red><A NAME="ref_94_4">E_Current</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -14;
 
-   <b>procedure</b> Eti_Exception (Code : Eti_Error);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_96_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>);
    <FONT COLOR=green><EM>--  Dispatch the error code and raise the appropriate exception</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Some helpers</EM></FONT>
    <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_Chtype</A>,
-                           Target =&gt; Attributed_Character);
+     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>,
+                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">Attributed_Character</A>,
-                           Target =&gt; C_Chtype);
+     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>,
+                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
 
    <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">Attributed_Character</A>,
-                           Target =&gt; C_AttrType);
+     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>,
+                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>);
 
    <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_AttrType</A>,
-                           Target =&gt; Attributed_Character);
+     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>,
+                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
 
-   <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
-                          Str : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_116_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
+                          <FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  Fill the Str parameter with the string denoted by the chars_ptr</EM></FONT>
    <FONT COLOR=green><EM>--  C-Style string.</EM></FONT>
 
-   <b>function</b> Fill_String (Cp : chars_ptr) <b>return</b> String;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_121_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></FONT> : chars_ptr) <b>return</b> String;
    <FONT COLOR=green><EM>--  Same but as function.</EM></FONT>
 
-<b>end</b> Terminal_Interface.Curses.Aux;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -44,18 +43,18 @@
 <FONT COLOR=green><EM>--  @Revision: 1.14 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> Interfaces.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
 
-<b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
-   <b>use</b> <b>type</b><FONT COLOR=red><A NAME="ref_46_12"> </A></FONT>Interfaces.C.int;
-   <b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>);
+   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Field_Type <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
    <FONT COLOR=green><EM>--  Abstract base type for all field types. A concrete field type</EM></FONT>
    <FONT COLOR=green><EM>--  is an extension that adds some data elements describing formats or</EM></FONT>
    <FONT COLOR=green><EM>--  boundary values for the type and validation routines.</EM></FONT>
@@ -66,11 +65,11 @@
    <FONT COLOR=green><EM>--  how to create you own child packages for low-level field types that</EM></FONT>
    <FONT COLOR=green><EM>--  you may have already written in C.</EM></FONT>
 
-   <b>type</b> Field_Type_Access <b>is</b> <b>access</b> <b>all</b> Field_Type'Class;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_63_9">Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
-                             Fld_Type : <b>in</b> Field_Type) <b>is</b> <b>abstract</b>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_66_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld_Type</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>) <b>is</b> <b>abstract</b>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT>
    <FONT COLOR=green><EM>--  But: we hide the vararg mechanism of the C interface. You always</EM></FONT>
    <FONT COLOR=green><EM>--       have to pass a single Field_Type parameter.</EM></FONT>
@@ -82,7 +81,7 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>function</b> Get_Type (Fld : <b>in</b> Field) <b>return</b> Field_Type_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_79_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_23">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: field_arg()</EM></FONT>
    <FONT COLOR=green><EM>--  In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT>
@@ -95,68 +94,68 @@
    <FONT COLOR=green><EM>--  | Most of this is used by the implementations of the child packages.</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
 <b>private</b>
-   <b>type</b> Makearg_Function <b>is</b> <b>access</b>
-     <b>function</b> (Args : System.Address) <b>return</b> System.Address;
-   <b>pragma</b> Convention (C, Makearg_Function);
-
-   <b>type</b> Copyarg_Function <b>is</b> <b>access</b>
-     <b>function</b> (Usr : System.Address) <b>return</b> System.Address;
-   <b>pragma</b> Convention (C, Copyarg_Function);
-
-   <b>type</b> Freearg_Function <b>is</b> <b>access</b>
-     <b>procedure</b> (Usr : System.Address);
-   <b>pragma</b> Convention (C, Freearg_Function);
-
-   <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="ref_105_29"> </A></FONT><b>is</b> <b>access</b>
-     <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Field_Check_Function);
-
-   <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="ref_109_28"> </A></FONT><b>is</b> <b>access</b>
-     <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Char_Check_Function);
-
-   <b>type</b> Choice_Function <b>is</b> <b>access</b>
-     <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Choice_Function);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Makearg_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>function</b> (<FONT COLOR=red><A NAME="ref_93_16">Args</A></FONT> : System.Address) <b>return</b> System.Address;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_96_9">Copyarg_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>function</b> (<FONT COLOR=red><A NAME="ref_97_16">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_100_9">Freearg_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>procedure</b> (<FONT COLOR=red><A NAME="ref_101_17">Usr</A></FONT> : System.Address);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_104_9">Field_Check_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>function</b> (<FONT COLOR=red><A NAME="ref_105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_105_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_108_9">Char_Check_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>function</b> (<FONT COLOR=red><A NAME="ref_109_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_109_28">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_112_9">Choice_Function</A></FONT> <b>is</b> <b>access</b>
+     <b>function</b> (<FONT COLOR=red><A NAME="ref_113_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_113_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>);
 
    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>type</b> Low_Level_Field_Type <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_119_9">Low_Level_Field_Type</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_122_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
-         <FONT COLOR=red><A NAME="ref_123_10">Ref_Count</A></FONT> :           Interfaces.C.long;
-         <FONT COLOR=red><A NAME="ref_124_10">Left</A></FONT>, Right :         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">System</A>.Address;
-         <FONT COLOR=red><A NAME="ref_125_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A>;
-         <FONT COLOR=red><A NAME="ref_126_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A>;
-         <FONT COLOR=red><A NAME="ref_127_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Freearg_Function</A>;
-         <FONT COLOR=red><A NAME="ref_128_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
-         <FONT COLOR=red><A NAME="ref_129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="ref_129_16"> </A></FONT>:              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Char_Check_Function</A>;
-         Next, Prev :          Choice_Function;
+         <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+         <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> :           <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+         <FONT COLOR=red><A NAME="ref_123_10">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_123_16">Right</A></FONT> :         System.Address;
+         <FONT COLOR=red><A NAME="ref_124_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_125_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_126_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>;
+         <FONT COLOR=red><A NAME="ref_127_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
+         <FONT COLOR=red><A NAME="ref_128_10">Ccheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>;
+         <FONT COLOR=red><A NAME="ref_129_10">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_129_16">Prev</A></FONT> :          <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Low_Level_Field_Type);
-   <b>type</b> C_Field_Type <b>is</b> <b>access</b> <b>all</b> Low_Level_Field_Type;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_132_9">C_Field_Type</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>;
 
-   Null_Field_Type   : <b>constant</b> C_Field_Type := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_134_4">Null_Field_Type</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
 
    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  | This four low-level fieldtypes are the ones associated with</EM></FONT>
    <FONT COLOR=green><EM>--  | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
    <FONT COLOR=green><EM>--  | will result in a Form_Exception is function Get_Type.</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
-   <FONT COLOR=red><A NAME="ref_143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
-   <FONT COLOR=red><A NAME="ref_144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
-   M_Choice_Router  : C_Field_Type := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_141_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_143_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+   <FONT COLOR=red><A NAME="ref_144_4">M_Choice_Router</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
 
    <FONT COLOR=green><EM>--  Two wrapper functions to access those low-level fieldtypes defined</EM></FONT>
    <FONT COLOR=green><EM>--  in this package.</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_266_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
-   <b>function</b> C_Choice_Router  <b>return</b> C_Field_Type;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_239_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_266_13">C_Choice_Router</A></FONT>  <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
 
-   <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
-                           <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_147_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">;</A>
-                           Cft : C_Field_Type := C_Builtin_Router);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_151_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+                           <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_147_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>);
    <FONT COLOR=green><EM>--  This procedure has to be called by the Set_Field_Type implementation</EM></FONT>
    <FONT COLOR=green><EM>--  for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT>
    <FONT COLOR=green><EM>--  conformant Field_Type object.</EM></FONT>
@@ -165,48 +164,48 @@
    <FONT COLOR=green><EM>--  low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT>
    <FONT COLOR=green><EM>--  Any other value will raise a Form_Exception.</EM></FONT>
 
-   <b>function</b> Make_Arg (Args : System.Address) <b>return</b> System.Address;
-   <b>pragma</b> Convention (C, Make_Arg);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_162_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_23">Args</A></FONT> : System.Address) <b>return</b> System.Address;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>);
    <FONT COLOR=green><EM>--  This is the Makearg_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
 
-   <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13"> </A>: System.Address) <b>return</b> System.Address;
-   <b>pragma</b> Convention (C, Copy_Arg);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_167_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_115_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_167_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_115_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>);
    <FONT COLOR=green><EM>--  This is the Copyarg_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
 
-   <b>procedure</b> Free_Arg (Usr : System.Address);
-   <b>pragma</b> Convention (C, Free_Arg);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_172_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_172_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_24">Usr</A></FONT> : System.Address);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>);
    <FONT COLOR=green><EM>--  This is the Freearg_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
 
-   <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_182_33">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13"> </A>      Usr : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Field_Check_Router);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_182_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>);
    <FONT COLOR=green><EM>--  This is the Field_Check_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level validation</EM></FONT>
    <FONT COLOR=green><EM>--  function.</EM></FONT>
 
-   <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_196_32">Ch</A></FONT> : C_Int;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13"> </A>     Usr : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Char_Check_Router);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_185_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_185_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+                               <FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_196_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>);
    <FONT COLOR=green><EM>--  This is the Char_Check_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level validation</EM></FONT>
    <FONT COLOR=green><EM>--  function.</EM></FONT>
 
-   <b>function</b> Next_Router (<FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_26">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Usr</A> : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Next_Router);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_193_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>);
    <FONT COLOR=green><EM>--  This is the Choice_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level next_choice</EM></FONT>
    <FONT COLOR=green><EM>--  function.</EM></FONT>
 
-   <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_26">Fld</A></FONT> : Field;
-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Usr</A> : System.Address) <b>return</b> C_Int;
-   <b>pragma</b> Convention (C, Prev_Router);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_201_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_201_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>);
    <FONT COLOR=green><EM>--  This is the Choice_Function for the internal low-level types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level prev_choice</EM></FONT>
@@ -214,33 +213,33 @@
 
    <FONT COLOR=green><EM>--  This is the Argument structure maintained by all low-level field types</EM></FONT>
    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
-   <b>type</b> Argument <b>is</b> <b>record</b>
-      <FONT COLOR=red><A NAME="ref_213_7">Typ</A></FONT> : Field_Type_Access;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
-      <FONT COLOR=red><A NAME="ref_214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">System</A>.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
-      Cft : C_Field_Type;        <FONT COLOR=green><EM>--  the original low-level type</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_211_9">Argument</A></FONT> <b>is</b> <b>record</b>
+      <FONT COLOR=red><A NAME="ref_212_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_213_7">Usr</A></FONT> : System.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
+      <FONT COLOR=red><A NAME="ref_214_7">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;        <FONT COLOR=green><EM>--  the original low-level type</EM></FONT>
    <b>end</b> <b>record</b>;
-   <b>type</b> Argument_Access <b>is</b> <b>access</b> <b>all</b> Argument;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_216_9">Argument_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>;
 
    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9"> </A>              Ccheck : Char_Check_Function)
-     <b>return</b> C_Field_Type;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_222_13">New_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_222_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
+                           <FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>)
+     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
    <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
 
-   <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">C_Field_Type</A>;
-                               <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Make_Arg</A>'<b>Access</b>;
-                               <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Copy_Arg</A>'<b>Access</b>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                  Fre : Freearg_Function := Free_Arg'<b>Access</b>)
-     <b>return</b> C_Int;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_227_13">Set_Fieldtype_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_227_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+                               <FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>;
+                               <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>;
+                               <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Fre</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>)
+     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
    <b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
 
-   <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">C_Field_Type</A></FONT>;
-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                     Next, Prev : Choice_Function)
-     <b>return</b> C_Int;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_234_13">Set_Fieldtype_Choice</A></FONT> (<FONT COLOR=red><A NAME="ref_234_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+                                  <FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>)
+     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
    <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
 
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -46,31 +45,31 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">;</A>
-<b>package</b> Terminal_Interface.Curses.Forms.Field_User_Data <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
-                            Data : <b>in</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT>
-   <b>pragma</b> Inline (Set_User_Data);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
-                            Data : <b>out</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>function</b> Get_User_Data (Fld  : <b>in</b>  Field) <b>return</b> User_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_28">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
    <FONT COLOR=green><EM>--  Sama as function</EM></FONT>
    <b>pragma</b> Inline (Get_User_Data);
 
-<b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -46,31 +45,31 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">;</A>
-<b>package</b> Terminal_Interface.Curses.Forms.Form_User_Data <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
-                            Data : <b>in</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT>
-   <b>pragma</b> Inline (Set_User_Data);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
-                            Data : <b>out</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>function</b> Get_User_Data (Frm  : <b>in</b>  Form) <b>return</b> User_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_28">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_User_Data);
 
-<b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-forms__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-forms__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-forms__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -52,41 +51,41 @@
 <b>with</b> System;
 <b>with</b> Ada.Characters.Latin_1;
 
-<b>package</b> Terminal_Interface.Curses.Forms <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>);
    <b>pragma</b> Linker_Options ("-lform");
    <b>pragma</b> Linker_Options ("-lncurses");
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
-   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Field</A></FONT>        <b>is</b> <b>private</b>;
-   <b>type</b> Form         <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT>        <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Form</A></FONT>         <b>is</b> <b>private</b>;
 
-   <FONT COLOR=red><A NAME="ref_60_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A>;
-   Null_Form         : <b>constant</b> Form;
+   <FONT COLOR=red><A NAME="ref_59_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+   <FONT COLOR=red><A NAME="ref_60_4">Null_Form</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
 
-   <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="ref_63_33">None</A></FONT>,
-                                <FONT COLOR=red><A NAME="ref_64_33">Left</A></FONT>,
-                                <FONT COLOR=red><A NAME="ref_65_33">Center</A></FONT>,
-                                Right);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Field_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_62_33">None</A></FONT>,
+                                <FONT COLOR=red><A NAME="ref_63_33">Left</A></FONT>,
+                                <FONT COLOR=red><A NAME="ref_64_33">Center</A></FONT>,
+                                <FONT COLOR=red><A NAME="ref_65_33">Right</A></FONT>);
 
    <b>pragma</b> Warnings (Off);
-   <b>type</b> Field_Option_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Field_Option_Set</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_71_10">Visible</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_72_10">Active</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="ref_73_10">Public</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="ref_74_10">Edit</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="ref_75_10">Wrap</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="ref_76_10">Blank</A></FONT>       : Boolean;
-         <FONT COLOR=red><A NAME="ref_77_10">Auto_Skip</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="ref_78_10">Null_Ok</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_79_10">Pass_Ok</A></FONT>     : Boolean;
-         Static      : Boolean;
+         <FONT COLOR=red><A NAME="ref_70_10">Visible</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_71_10">Active</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="ref_72_10">Public</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="ref_73_10">Edit</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="ref_74_10">Wrap</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="ref_75_10">Blank</A></FONT>       : Boolean;
+         <FONT COLOR=red><A NAME="ref_76_10">Auto_Skip</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="ref_77_10">Null_Ok</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_78_10">Pass_Ok</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_79_10">Static</A></FONT>      : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Field_Option_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
 
-   <b>for</b> Field_Option_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> <b>use</b>
       <b>record</b>
          Visible     <b>at</b> 0 <b>range</b>  0 ..  0;
          Active      <b>at</b> 0 <b>range</b>  1 ..  1;
@@ -99,328 +98,328 @@
          Pass_Ok     <b>at</b> 0 <b>range</b>  8 ..  8;
          Static      <b>at</b> 0 <b>range</b>  9 ..  9;
       <b>end</b> <b>record</b>;
-   <b>for</b> Field_Option_Set'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>'Size <b>use</b> 32;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.Dnl</EM></FONT>
 
    <b>pragma</b> Warnings (On);
 
-   <b>function</b> Default_Field_Options <b>return</b> Field_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1149_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
    <FONT COLOR=green><EM>--  The initial defaults for the field options.</EM></FONT>
-   <b>pragma</b> Inline (Default_Field_Options);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_102_13">Default_Field_Options</A>);
 
    <b>pragma</b> Warnings (Off);
-   <b>type</b> Form_Option_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_107_9">Form_Option_Set</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_110_10">NL_Overload</A></FONT> : Boolean;
-         BS_Overload : Boolean;
+         <FONT COLOR=red><A NAME="ref_109_10">NL_Overload</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_110_10">BS_Overload</A></FONT> : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Form_Option_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
 
-   <b>for</b> Form_Option_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A> <b>use</b>
       <b>record</b>
          NL_Overload <b>at</b> 0 <b>range</b>  0 ..  0;
          BS_Overload <b>at</b> 0 <b>range</b>  1 ..  1;
       <b>end</b> <b>record</b>;
-   <b>for</b> Form_Option_Set'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>'Size <b>use</b> 32;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.Dnl</EM></FONT>
 
    <b>pragma</b> Warnings (On);
 
-   <b>function</b> Default_Form_Options <b>return</b> Form_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_125_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1155_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
    <FONT COLOR=green><EM>--  The initial defaults for the form options.</EM></FONT>
-   <b>pragma</b> Inline (Default_Form_Options);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_125_13">Default_Form_Options</A>);
 
-   <b>type</b> Buffer_Number <b>is</b> <b>new</b> Natural;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_129_9">Buffer_Number</A></FONT> <b>is</b> <b>new</b> Natural;
 
-   <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Field;
-   <b>pragma</b> Convention (C, Field_Array);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_131_9">Field_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Field_Array</A>);
 
-   <b>type</b> Field_Array_Access <b>is</b> <b>access</b> Field_Array;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_134_9">Field_Array_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Field_Array</A>;
 
-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_137_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">FA</A></FONT>          : <b>in</b> <b>out</b> Field_Array_Access;
-                   Free_Fields : <b>in</b> Boolean := False);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_136_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_136_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_20">FA</A></FONT>          : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>;
+                   <FONT COLOR=red><A NAME="ref_137_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">Free_Fields</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  Release the memory for an allocated field array</EM></FONT>
    <FONT COLOR=green><EM>--  If Free_Fields is True, call Delete() for all the fields in</EM></FONT>
    <FONT COLOR=green><EM>--  the array.</EM></FONT>
 
-   <b>subtype</b> Form_Request_Code <b>is</b> Key_Code <b>range</b> (Key_Max + 1) .. (Key_Max + 57);
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_142_12">Form_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57);
 
    <FONT COLOR=green><EM>--  The prefix F_ stands for "Form Request"</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_146_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
-   <FONT COLOR=red><A NAME="ref_147_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
-   <FONT COLOR=red><A NAME="ref_148_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
-   F_Last_Page                : <b>constant</b> Form_Request_Code := Key_Max + 4;
-
-   <FONT COLOR=red><A NAME="ref_151_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
-   <FONT COLOR=red><A NAME="ref_152_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
-   <FONT COLOR=red><A NAME="ref_153_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
-   <FONT COLOR=red><A NAME="ref_154_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
-   <FONT COLOR=red><A NAME="ref_155_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
-   <FONT COLOR=red><A NAME="ref_156_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
-   <FONT COLOR=red><A NAME="ref_157_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
-   <FONT COLOR=red><A NAME="ref_158_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
-   <FONT COLOR=red><A NAME="ref_159_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
-   <FONT COLOR=red><A NAME="ref_160_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
-   <FONT COLOR=red><A NAME="ref_161_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
-   F_Down_Field               : <b>constant</b> Form_Request_Code := Key_Max + 16;
-
-   <FONT COLOR=red><A NAME="ref_164_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
-   <FONT COLOR=red><A NAME="ref_165_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
-   <FONT COLOR=red><A NAME="ref_166_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
-   <FONT COLOR=red><A NAME="ref_167_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
-   <FONT COLOR=red><A NAME="ref_168_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
-   <FONT COLOR=red><A NAME="ref_169_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
-   <FONT COLOR=red><A NAME="ref_170_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
-   <FONT COLOR=red><A NAME="ref_171_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
-   <FONT COLOR=red><A NAME="ref_172_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
-   <FONT COLOR=red><A NAME="ref_173_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
-   <FONT COLOR=red><A NAME="ref_174_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
-   <FONT COLOR=red><A NAME="ref_175_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
-   <FONT COLOR=red><A NAME="ref_176_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
-   F_Down_Char                : <b>constant</b> Form_Request_Code := Key_Max + 30;
-
-   <FONT COLOR=red><A NAME="ref_179_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
-   <FONT COLOR=red><A NAME="ref_180_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
-   <FONT COLOR=red><A NAME="ref_181_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
-   <FONT COLOR=red><A NAME="ref_182_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
-   <FONT COLOR=red><A NAME="ref_183_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
-   <FONT COLOR=red><A NAME="ref_184_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
-   <FONT COLOR=red><A NAME="ref_185_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
-   <FONT COLOR=red><A NAME="ref_186_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
-   <FONT COLOR=red><A NAME="ref_187_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
-   <FONT COLOR=red><A NAME="ref_188_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
-   <FONT COLOR=red><A NAME="ref_189_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
-   F_Insert_Mode              : <b>constant</b> Form_Request_Code := Key_Max + 42;
+   <FONT COLOR=red><A NAME="ref_145_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+   <FONT COLOR=red><A NAME="ref_146_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+   <FONT COLOR=red><A NAME="ref_147_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+   <FONT COLOR=red><A NAME="ref_148_4">F_Last_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+
+   <FONT COLOR=red><A NAME="ref_150_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+   <FONT COLOR=red><A NAME="ref_151_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+   <FONT COLOR=red><A NAME="ref_152_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+   <FONT COLOR=red><A NAME="ref_153_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+   <FONT COLOR=red><A NAME="ref_154_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+   <FONT COLOR=red><A NAME="ref_155_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+   <FONT COLOR=red><A NAME="ref_156_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+   <FONT COLOR=red><A NAME="ref_157_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+   <FONT COLOR=red><A NAME="ref_158_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+   <FONT COLOR=red><A NAME="ref_159_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+   <FONT COLOR=red><A NAME="ref_160_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+   <FONT COLOR=red><A NAME="ref_161_4">F_Down_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
+
+   <FONT COLOR=red><A NAME="ref_163_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+   <FONT COLOR=red><A NAME="ref_164_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
+   <FONT COLOR=red><A NAME="ref_165_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
+   <FONT COLOR=red><A NAME="ref_166_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
+   <FONT COLOR=red><A NAME="ref_167_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
+   <FONT COLOR=red><A NAME="ref_168_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
+   <FONT COLOR=red><A NAME="ref_169_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
+   <FONT COLOR=red><A NAME="ref_170_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
+   <FONT COLOR=red><A NAME="ref_171_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
+   <FONT COLOR=red><A NAME="ref_172_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
+   <FONT COLOR=red><A NAME="ref_173_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
+   <FONT COLOR=red><A NAME="ref_174_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
+   <FONT COLOR=red><A NAME="ref_175_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
+   <FONT COLOR=red><A NAME="ref_176_4">F_Down_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 30;
+
+   <FONT COLOR=red><A NAME="ref_178_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
+   <FONT COLOR=red><A NAME="ref_179_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
+   <FONT COLOR=red><A NAME="ref_180_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
+   <FONT COLOR=red><A NAME="ref_181_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
+   <FONT COLOR=red><A NAME="ref_182_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
+   <FONT COLOR=red><A NAME="ref_183_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
+   <FONT COLOR=red><A NAME="ref_184_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
+   <FONT COLOR=red><A NAME="ref_185_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
+   <FONT COLOR=red><A NAME="ref_186_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
+   <FONT COLOR=red><A NAME="ref_187_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
+   <FONT COLOR=red><A NAME="ref_188_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
+   <FONT COLOR=red><A NAME="ref_189_4">F_Insert_Mode</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 42;
 
    <FONT COLOR=green><EM>--  Vertical Scrolling</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_193_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
-   <FONT COLOR=red><A NAME="ref_194_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
-   <FONT COLOR=red><A NAME="ref_195_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
-   <FONT COLOR=red><A NAME="ref_196_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
-   <FONT COLOR=red><A NAME="ref_197_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
-   F_ScrollBackward_HalfPage  : <b>constant</b> Form_Request_Code := Key_Max + 48;
+   <FONT COLOR=red><A NAME="ref_192_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
+   <FONT COLOR=red><A NAME="ref_193_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
+   <FONT COLOR=red><A NAME="ref_194_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
+   <FONT COLOR=red><A NAME="ref_195_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
+   <FONT COLOR=red><A NAME="ref_196_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
+   <FONT COLOR=red><A NAME="ref_197_4">F_ScrollBackward_HalfPage</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 48;
 
    <FONT COLOR=green><EM>--  Horizontal Scrolling</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_201_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
-   <FONT COLOR=red><A NAME="ref_202_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
-   <FONT COLOR=red><A NAME="ref_203_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
-   <FONT COLOR=red><A NAME="ref_204_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
-   <FONT COLOR=red><A NAME="ref_205_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
-   F_HScrollBackward_HalfLine : <b>constant</b> Form_Request_Code := Key_Max + 54;
-
-   <FONT COLOR=red><A NAME="ref_208_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
-   <FONT COLOR=red><A NAME="ref_209_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
-   F_Previous_Choice          : <b>constant</b> Form_Request_Code := Key_Max + 57;
+   <FONT COLOR=red><A NAME="ref_200_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
+   <FONT COLOR=red><A NAME="ref_201_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
+   <FONT COLOR=red><A NAME="ref_202_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
+   <FONT COLOR=red><A NAME="ref_203_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
+   <FONT COLOR=red><A NAME="ref_204_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
+   <FONT COLOR=red><A NAME="ref_205_4">F_HScrollBackward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 54;
+
+   <FONT COLOR=red><A NAME="ref_207_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
+   <FONT COLOR=red><A NAME="ref_208_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
+   <FONT COLOR=red><A NAME="ref_209_4">F_Previous_Choice</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57;
 
    <FONT COLOR=green><EM>--  For those who like the old 'C' style request names</EM></FONT>
-   REQ_NEXT_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Next_Page</A>;
-   REQ_PREV_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Previous_Page</A>;
-   REQ_FIRST_PAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_First_Page</A>;
-   REQ_LAST_PAGE    : Form_Request_Code <b>renames</b> F_Last_Page;
-
-   REQ_NEXT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Next_Field</A>;
-   REQ_PREV_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Previous_Field</A>;
-   REQ_FIRST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_First_Field</A>;
-   REQ_LAST_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Last_Field</A>;
-   REQ_SNEXT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Next_Field</A>;
-   REQ_SPREV_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Previous_Field</A>;
-   REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_First_Field</A>;
-   REQ_SLAST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_Last_Field</A>;
-   REQ_LEFT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Left_Field</A>;
-   REQ_RIGHT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Right_Field</A>;
-   REQ_UP_FIELD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Up_Field</A>;
-   REQ_DOWN_FIELD   : Form_Request_Code <b>renames</b> F_Down_Field;
-
-   REQ_NEXT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Next_Char</A>;
-   REQ_PREV_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Previous_Char</A>;
-   REQ_NEXT_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Next_Line</A>;
-   REQ_PREV_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Previous_Line</A>;
-   REQ_NEXT_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Next_Word</A>;
-   REQ_PREV_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Previous_Word</A>;
-   REQ_BEG_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Begin_Field</A>;
-   REQ_END_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_End_Field</A>;
-   REQ_BEG_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_Begin_Line</A>;
-   REQ_END_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_End_Line</A>;
-   REQ_LEFT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Left_Char</A>;
-   REQ_RIGHT_CHAR   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Right_Char</A>;
-   REQ_UP_CHAR      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Up_Char</A>;
-   REQ_DOWN_CHAR    : Form_Request_Code <b>renames</b> F_Down_Char;
-
-   REQ_NEW_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_New_Line</A>;
-   REQ_INS_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Char</A>;
-   REQ_INS_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Line</A>;
-   REQ_DEL_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Char</A>;
-   REQ_DEL_PREV     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Previous</A>;
-   REQ_DEL_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Line</A>;
-   REQ_DEL_WORD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Word</A>;
-   REQ_CLR_EOL      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOL</A>;
-   REQ_CLR_EOF      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOF</A>;
-   REQ_CLR_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_Field</A>;
-   REQ_OVL_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Overlay_Mode</A>;
-   REQ_INS_MODE     : Form_Request_Code <b>renames</b> F_Insert_Mode;
-
-   REQ_SCR_FLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollForward_Line</A>;
-   REQ_SCR_BLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollBackward_Line</A>;
-   REQ_SCR_FPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollForward_Page</A>;
-   REQ_SCR_BPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollBackward_Page</A>;
-   REQ_SCR_FHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollForward_HalfPage</A>;
-   REQ_SCR_BHPAGE   : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
-
-   REQ_SCR_FCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollForward_Char</A>;
-   REQ_SCR_BCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollBackward_Char</A>;
-   REQ_SCR_HFLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollForward_Line</A>;
-   REQ_SCR_HBLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollBackward_Line</A>;
-   REQ_SCR_HFHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollForward_HalfLine</A>;
-   REQ_SCR_HBHALF   : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
-
-   REQ_VALIDATION   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Validate_Field</A>;
-   REQ_NEXT_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Next_Choice</A>;
-   REQ_PREV_CHOICE  : Form_Request_Code <b>renames</b> F_Previous_Choice;
+   REQ_NEXT_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_145_4">F_Next_Page</A>;
+   REQ_PREV_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Previous_Page</A>;
+   REQ_FIRST_PAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_First_Page</A>;
+   REQ_LAST_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_Last_Page</A>;
+
+   REQ_NEXT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Next_Field</A>;
+   REQ_PREV_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Previous_Field</A>;
+   REQ_FIRST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_First_Field</A>;
+   REQ_LAST_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Last_Field</A>;
+   REQ_SNEXT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Sorted_Next_Field</A>;
+   REQ_SPREV_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Previous_Field</A>;
+   REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_First_Field</A>;
+   REQ_SLAST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Last_Field</A>;
+   REQ_LEFT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Left_Field</A>;
+   REQ_RIGHT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Right_Field</A>;
+   REQ_UP_FIELD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Up_Field</A>;
+   REQ_DOWN_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Down_Field</A>;
+
+   REQ_NEXT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Next_Char</A>;
+   REQ_PREV_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Previous_Char</A>;
+   REQ_NEXT_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Line</A>;
+   REQ_PREV_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Line</A>;
+   REQ_NEXT_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Word</A>;
+   REQ_PREV_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Word</A>;
+   REQ_BEG_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Begin_Field</A>;
+   REQ_END_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_End_Field</A>;
+   REQ_BEG_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Line</A>;
+   REQ_END_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Line</A>;
+   REQ_LEFT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Left_Char</A>;
+   REQ_RIGHT_CHAR   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Right_Char</A>;
+   REQ_UP_CHAR      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Up_Char</A>;
+   REQ_DOWN_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Down_Char</A>;
+
+   REQ_NEW_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_New_Line</A>;
+   REQ_INS_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Insert_Char</A>;
+   REQ_INS_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Line</A>;
+   REQ_DEL_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Delete_Char</A>;
+   REQ_DEL_PREV     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Previous</A>;
+   REQ_DEL_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Line</A>;
+   REQ_DEL_WORD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Word</A>;
+   REQ_CLR_EOL      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Clear_EOL</A>;
+   REQ_CLR_EOF      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOF</A>;
+   REQ_CLR_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_Field</A>;
+   REQ_OVL_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Overlay_Mode</A>;
+   REQ_INS_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Insert_Mode</A>;
+
+   REQ_SCR_FLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_ScrollForward_Line</A>;
+   REQ_SCR_BLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollBackward_Line</A>;
+   REQ_SCR_FPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Page</A>;
+   REQ_SCR_BPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Page</A>;
+   REQ_SCR_FHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_HalfPage</A>;
+   REQ_SCR_BHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_HalfPage</A>;
+
+   REQ_SCR_FCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_HScrollForward_Char</A>;
+   REQ_SCR_BCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollBackward_Char</A>;
+   REQ_SCR_HFLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Line</A>;
+   REQ_SCR_HBLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Line</A>;
+   REQ_SCR_HFHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_HalfLine</A>;
+   REQ_SCR_HBHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_HalfLine</A>;
+
+   REQ_VALIDATION   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_Validate_Field</A>;
+   REQ_NEXT_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Next_Choice</A>;
+   REQ_PREV_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Previous_Choice</A>;
 
-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Key</A></FONT>  : <b>in</b> Form_Request_Code;
-                           Name : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_276_14" HREF="terminal_interface-curses-forms__adb.htm#ref_81_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_276_28" HREF="terminal_interface-curses-forms__adb.htm#ref_81_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A>;
+                           <FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Name</A></FONT> : <b>out</b> String);
 
-   <b>function</b>  Request_Name (Key : Form_Request_Code) <b>return</b> String;
+   <b>function</b>  <FONT COLOR=red><A NAME="ref_279_14" HREF="terminal_interface-curses-forms__adb.htm#ref_90_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_279_28" HREF="terminal_interface-curses-forms__adb.htm#ref_90_27">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Request_Name);
 
    <FONT COLOR=green><EM>------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
    <FONT COLOR=green><EM>------------------</EM></FONT>
-   Form_Exception : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_286_4">Form_Exception</A></FONT> : <b>exception</b>;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                    <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-                    <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                    <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Left</A></FONT>         : Column_Position;
-                    <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A> := 0;
-                    More_Buffers : Buffer_Number := Buffer_Number'First)
-                    <b>return</b> Field;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_293_13" HREF="terminal_interface-curses-forms__adb.htm#ref_108_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_293_21" HREF="terminal_interface-curses-forms__adb.htm#ref_108_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Left</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Off_Screen</A></FONT>   : Natural := 0;
+                    <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First)
+                    <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded Create is defined later. Pragma Inline appears there.</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_305_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                       <FONT COLOR=red><A NAME="ref_306_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-                       <FONT COLOR=red><A NAME="ref_307_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                       <FONT COLOR=red><A NAME="ref_308_24">Left</A></FONT>         : Column_Position;
-                       <FONT COLOR=red><A NAME="ref_309_24">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A> := 0;
-                       More_Buffers : Buffer_Number := Buffer_Number'First)
-                       <b>return</b> Field <b>renames</b> Create;
+   <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_304_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                       <FONT COLOR=red><A NAME="ref_305_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+                       <FONT COLOR=red><A NAME="ref_306_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                       <FONT COLOR=red><A NAME="ref_307_24">Left</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                       <FONT COLOR=red><A NAME="ref_308_24">Off_Screen</A></FONT>   : Natural := 0;
+                       <FONT COLOR=red><A NAME="ref_309_24">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First)
+                       <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_293_13">Create</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
    <b>pragma</b> Inline (New_Field);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>procedure</b> Delete (Fld : <b>in</b> <b>out</b> Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-forms__adb.htm#ref_131_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_315_22" HREF="terminal_interface-curses-forms__adb.htm#ref_131_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Reset Fld to Null_Field</EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>function</b> Duplicate (<FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
-                       <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                       Left : Column_Position) <b>return</b> Field;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_321_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses-forms__adb.htm#ref_147_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                       <FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                       <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT>
    <b>pragma</b> Inline (Duplicate);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>function</b> Link (<FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
-                  <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                  Left : Column_Position) <b>return</b> Field;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_328_13" HREF="terminal_interface-curses-forms__adb.htm#ref_168_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_328_19" HREF="terminal_interface-curses-forms__adb.htm#ref_168_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                  <FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT>
-   <b>pragma</b> Inline (Link);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_328_13">Link</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field</A>;
-                                Just : <b>in</b> Field_Justification := None);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_339_14" HREF="terminal_interface-curses-forms__adb.htm#ref_193_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_339_33" HREF="terminal_interface-curses-forms__adb.htm#ref_193_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Just</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Justification);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_339_14">Set_Justification</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>function</b> Get_Justification (Fld : Field) <b>return</b> Field_Justification;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_345_13" HREF="terminal_interface-curses-forms__adb.htm#ref_211_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_345_32" HREF="terminal_interface-curses-forms__adb.htm#ref_211_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Justification);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_345_13">Get_Justification</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
-   <b>procedure</b> Set_Buffer
-     (<FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
-      <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
-      Str    : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_354_14" HREF="terminal_interface-curses-forms__adb.htm#ref_225_14">Set_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_355_7" HREF="terminal_interface-curses-forms__adb.htm#ref_226_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First;
+      <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Str</A></FONT>    : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
-   <b>procedure</b> Get_Buffer
-     (<FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
-      <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
-      Str    : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_362_14" HREF="terminal_interface-curses-forms__adb.htm#ref_250_14">Get_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_363_7" HREF="terminal_interface-curses-forms__adb.htm#ref_251_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First;
+      <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Str</A></FONT>    : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
 
-   <b>function</b> Get_Buffer
-     (<FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
-      Buffer : <b>in</b> Buffer_Number := Buffer_Number'First) <b>return</b> String;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_368_13" HREF="terminal_interface-curses-forms__adb.htm#ref_262_13">Get_Buffer</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_369_7" HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same but as function</EM></FONT>
    <b>pragma</b> Inline (Get_Buffer);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Fld</A></FONT>    : <b>in</b> Field;
-                         Status : <b>in</b> Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_376_14" HREF="terminal_interface-curses-forms__adb.htm#ref_275_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses-forms__adb.htm#ref_275_26">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Status</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Status);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_376_14">Set_Status</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>function</b> Changed (Fld : Field) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_382_13" HREF="terminal_interface-curses-forms__adb.htm#ref_291_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_382_22" HREF="terminal_interface-curses-forms__adb.htm#ref_291_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT>
-   <b>pragma</b> Inline (Changed);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Fld</A></FONT> : <b>in</b> Field;
-                               Max : <b>in</b> Natural := 0);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-forms__adb.htm#ref_307_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_387_32" HREF="terminal_interface-curses-forms__adb.htm#ref_307_32">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                               <FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Max</A></FONT> : <b>in</b> Natural := 0);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Maximum_Size);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_387_14">Set_Maximum_Size</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
-                          Options : <b>in</b> Field_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_397_14" HREF="terminal_interface-curses-forms__adb.htm#ref_327_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_397_27" HREF="terminal_interface-curses-forms__adb.htm#ref_327_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
-                             <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
-                             On      : Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_403_14" HREF="terminal_interface-curses-forms__adb.htm#ref_345_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_403_30" HREF="terminal_interface-curses-forms__adb.htm#ref_345_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                             <FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">On</A></FONT>      : Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: field_opts_off()</EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
-                          Options : <b>out</b> Field_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-forms__adb.htm#ref_371_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-forms__adb.htm#ref_371_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                          <FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
-   <b>function</b> Get_Options (Fld : Field := Null_Field)
-                         <b>return</b> Field_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_416_13" HREF="terminal_interface-curses-forms__adb.htm#ref_384_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_416_26" HREF="terminal_interface-curses-forms__adb.htm#ref_384_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
 
@@ -429,161 +428,161 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
-   <b>procedure</b> Set_Foreground
-     (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_426_14" HREF="terminal_interface-curses-forms__adb.htm#ref_399_14">Set_Foreground</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses-forms__adb.htm#ref_400_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Foreground);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_426_14">Set_Foreground</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-                         Fore : <b>out</b> Character_Attribute_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_434_14" HREF="terminal_interface-curses-forms__adb.htm#ref_421_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_434_26" HREF="terminal_interface-curses-forms__adb.htm#ref_421_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-                         <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-                         Color : <b>out</b> Color_Pair);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_439_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_439_26" HREF="terminal_interface-curses-forms__adb.htm#ref_430_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+                         <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
-   <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-      <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_446_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses-forms__adb.htm#ref_444_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+      <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-                         Back : <b>out</b> Character_Attribute_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-forms__adb.htm#ref_465_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_454_26" HREF="terminal_interface-curses-forms__adb.htm#ref_465_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
-                         <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-                         Color : <b>out</b> Color_Pair);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_459_14" HREF="terminal_interface-curses-forms__adb.htm#ref_474_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_459_26" HREF="terminal_interface-curses-forms__adb.htm#ref_474_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                         <FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+                         <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
    <b>pragma</b> Inline (Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Fld</A></FONT> : <b>in</b> Field;
-                                Pad : <b>in</b> Character := Space);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_466_14" HREF="terminal_interface-curses-forms__adb.htm#ref_487_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_466_33" HREF="terminal_interface-curses-forms__adb.htm#ref_487_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                                <FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Pad</A></FONT> : <b>in</b> Character := Space);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Pad_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_466_14">Set_Pad_Character</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Fld</A></FONT> : <b>in</b>  Field;
-                            Pad : <b>out</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_472_14" HREF="terminal_interface-curses-forms__adb.htm#ref_504_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_472_29" HREF="terminal_interface-curses-forms__adb.htm#ref_504_29">Fld</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                            <FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Pad</A></FONT> : <b>out</b> Character);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></FONT>
-   <b>pragma</b> Inline (Pad_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_472_14">Pad_Character</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
-   <b>procedure</b> Info (<FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Field</A>;
-                   <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                   <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-                   <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">First_Column</A></FONT>       : <b>out</b> Column_Position;
-                   <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Off_Screen</A></FONT>         : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A>;
-                   Additional_Buffers : <b>out</b> Buffer_Number);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_482_14" HREF="terminal_interface-curses-forms__adb.htm#ref_519_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_482_20" HREF="terminal_interface-curses-forms__adb.htm#ref_519_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                   <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+                   <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Column</A></FONT>       : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">Off_Screen</A></FONT>         : <b>out</b> Natural;
+                   <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT>
-   <b>pragma</b> Inline (Info);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
-   <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Fld</A></FONT>     : <b>in</b> Field;
-                           <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                           <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Columns</A></FONT> : <b>out</b> Column_Count;
-                           Max     : <b>out</b> Natural);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_493_14" HREF="terminal_interface-curses-forms__adb.htm#ref_553_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_493_28" HREF="terminal_interface-curses-forms__adb.htm#ref_553_28">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                           <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+                           <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Max</A></FONT>     : <b>out</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></FONT>
-   <b>pragma</b> Inline (Dynamic_Info);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_493_14">Dynamic_Info</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
-                         Win : <b>in</b> Window);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_505_14" HREF="terminal_interface-curses-forms__adb.htm#ref_582_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_505_26" HREF="terminal_interface-curses-forms__adb.htm#ref_582_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                         <FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_505_14">Set_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
-   <b>function</b> Get_Window (Frm : Form) <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_511_13" HREF="terminal_interface-curses-forms__adb.htm#ref_598_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_511_25" HREF="terminal_interface-curses-forms__adb.htm#ref_598_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_511_13">Get_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
-                             Win : <b>in</b> Window);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_516_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_516_30" HREF="terminal_interface-curses-forms__adb.htm#ref_610_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Sub_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_516_14">Set_Sub_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
-   <b>function</b> Get_Sub_Window (Frm : Form) <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_522_13" HREF="terminal_interface-curses-forms__adb.htm#ref_626_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_522_29" HREF="terminal_interface-curses-forms__adb.htm#ref_626_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Sub_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_522_13">Get_Sub_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Frm</A></FONT>     : <b>in</b> Form;
-                    <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                    Columns : <b>out</b> Column_Count);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses-forms__adb.htm#ref_638_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_527_21" HREF="terminal_interface-curses-forms__adb.htm#ref_638_21">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT>
-   <b>pragma</b> Inline (Scale);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_527_14">Scale</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Form_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Frm : <b>in</b> Form);
-   <b>pragma</b> Convention (C, Form_Hook_Function);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_537_9">Form_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_537_49">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
-                                  Proc : <b>in</b> Form_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_541_14" HREF="terminal_interface-curses-forms__adb.htm#ref_662_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_541_35" HREF="terminal_interface-curses-forms__adb.htm#ref_662_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                                  <FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Field_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_541_14">Set_Field_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
-   <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
-                                  Proc : <b>in</b> Form_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-forms__adb.htm#ref_678_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_547_35" HREF="terminal_interface-curses-forms__adb.htm#ref_678_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                                  <FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Field_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_547_14">Set_Field_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
-   <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
-                                 Proc : <b>in</b> Form_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__adb.htm#ref_694_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_553_34" HREF="terminal_interface-curses-forms__adb.htm#ref_694_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Form_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_553_14">Set_Form_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
-                                 Proc : <b>in</b> Form_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_559_14" HREF="terminal_interface-curses-forms__adb.htm#ref_710_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_559_34" HREF="terminal_interface-curses-forms__adb.htm#ref_710_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                                 <FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Form_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_559_14">Set_Form_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
-   <b>function</b> Get_Field_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_565_13">Get_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-forms__ads.htm#ref_565_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT>
    <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
-   <b>function</b> Get_Field_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_570_13">Get_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_570_34" HREF="terminal_interface-curses-forms__ads.htm#ref_570_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT>
    <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
-   <b>function</b> Get_Form_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_575_13">Get_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_575_33" HREF="terminal_interface-curses-forms__ads.htm#ref_575_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT>
    <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
-   <b>function</b> Get_Form_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_580_13">Get_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_580_33" HREF="terminal_interface-curses-forms__ads.htm#ref_580_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT>
    <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
 
@@ -592,52 +591,52 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Form</A>;
-                       Flds : <b>in</b> Field_Array_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_589_14" HREF="terminal_interface-curses-forms__adb.htm#ref_730_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_589_24" HREF="terminal_interface-curses-forms__adb.htm#ref_730_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                       <FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
-   <b>pragma</b> Inline (Redefine);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
-   <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="ref_596_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Form</A>;
-                         Flds : <b>in</b> Field_Array_Access) <b>renames</b> Redefine;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_595_14">Set_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_595_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                         <FONT COLOR=red><A NAME="ref_596_26">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
    <FONT COLOR=green><EM>--  pragma Inline (Set_Fields);</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
-   <b>function</b> Fields (<FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Frm</A></FONT>   : Form;
-                    Index : Positive) <b>return</b> Field;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_601_13" HREF="terminal_interface-curses-forms__adb.htm#ref_752_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_601_21" HREF="terminal_interface-curses-forms__adb.htm#ref_752_21">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT>
-   <b>pragma</b> Inline (Fields);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
-   <b>function</b> Field_Count (Frm : Form) <b>return</b> Natural;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_607_13" HREF="terminal_interface-curses-forms__adb.htm#ref_772_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_607_26" HREF="terminal_interface-curses-forms__adb.htm#ref_772_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT>
-   <b>pragma</b> Inline (Field_Count);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
-                   <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                   Column : <b>in</b> Column_Position);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_612_14" HREF="terminal_interface-curses-forms__adb.htm#ref_782_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_612_20" HREF="terminal_interface-curses-forms__adb.htm#ref_782_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                   <FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT>
-   <b>pragma</b> Inline (Move);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_612_14">Move</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
-   <b>function</b> Create (Fields : Field_Array_Access) <b>return</b> Form;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_623_13" HREF="terminal_interface-curses-forms__adb.htm#ref_802_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_623_21" HREF="terminal_interface-curses-forms__adb.htm#ref_802_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
    <b>pragma</b> Inline (Create);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
-   <b>function</b> New_Form (Fields : Field_Array_Access) <b>return</b> Form
-     <b>renames</b> Create;
+   <b>function</b> New_Form (<FONT COLOR=red><A NAME="ref_628_23">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>
+     <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
    <FONT COLOR=green><EM>--  pragma Inline (New_Form);</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
-   <b>procedure</b> Delete (Frm : <b>in</b> <b>out</b> Form);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses-forms__adb.htm#ref_823_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_634_22" HREF="terminal_interface-curses-forms__adb.htm#ref_823_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Reset Frm to Null_Form</EM></FONT>
    <b>pragma</b> Inline (Delete);
@@ -647,26 +646,26 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
-                          Options : <b>in</b> Form_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-forms__adb.htm#ref_842_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27" HREF="terminal_interface-curses-forms__adb.htm#ref_842_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
-                             <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
-                             On      : Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_650_14" HREF="terminal_interface-curses-forms__adb.htm#ref_860_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_650_30" HREF="terminal_interface-curses-forms__adb.htm#ref_860_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                             <FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">On</A></FONT>      : Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: form_opts_off()</EM></FONT>
    <b>pragma</b> Inline (Switch_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
-                          Options : <b>out</b> Form_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_658_14" HREF="terminal_interface-curses-forms__adb.htm#ref_886_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_658_27" HREF="terminal_interface-curses-forms__adb.htm#ref_886_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
-   <b>function</b> Get_Options (Frm : Form := Null_Form) <b>return</b> Form_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_663_13" HREF="terminal_interface-curses-forms__adb.htm#ref_899_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_663_26" HREF="terminal_interface-curses-forms__adb.htm#ref_899_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Options);
 
@@ -675,47 +674,47 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Frm</A></FONT>  : <b>in</b> Form;
-                   Post : <b>in</b> Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_672_14" HREF="terminal_interface-curses-forms__adb.htm#ref_913_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_672_20" HREF="terminal_interface-curses-forms__adb.htm#ref_913_20">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                   <FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Post</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: unpost_form()</EM></FONT>
-   <b>pragma</b> Inline (Post);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_672_14">Post</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
-   <b>procedure</b> Position_Cursor (Frm : Form);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_683_14" HREF="terminal_interface-curses-forms__adb.htm#ref_939_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_683_31" HREF="terminal_interface-curses-forms__adb.htm#ref_939_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT>
-   <b>pragma</b> Inline (Position_Cursor);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_683_14">Position_Cursor</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
-   <b>function</b> Data_Ahead (Frm : Form) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_692_13" HREF="terminal_interface-curses-forms__adb.htm#ref_957_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_692_25" HREF="terminal_interface-curses-forms__adb.htm#ref_957_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT>
-   <b>pragma</b> Inline (Data_Ahead);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_692_13">Data_Ahead</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
-   <b>function</b> Data_Behind (Frm : Form) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_697_13" HREF="terminal_interface-curses-forms__adb.htm#ref_973_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_697_26" HREF="terminal_interface-curses-forms__adb.htm#ref_973_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT>
-   <b>pragma</b> Inline (Data_Behind);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_697_13">Data_Behind</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_706_27">Form_Ok</A></FONT>,
-                          <FONT COLOR=red><A NAME="ref_707_27">Request_Denied</A></FONT>,
-                          <FONT COLOR=red><A NAME="ref_708_27">Unknown_Request</A></FONT>,
-                          Invalid_Field);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_705_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_705_27">Form_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_706_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_707_27">Unknown_Request</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_708_27">Invalid_Field</A></FONT>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
-   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Form</A>;
-                    Key : Key_Code) <b>return</b> Driver_Result;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_711_13" HREF="terminal_interface-curses-forms__adb.htm#ref_993_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_711_21" HREF="terminal_interface-curses-forms__adb.htm#ref_993_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                    <FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_9">Driver_Result</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Driver not inlined</EM></FONT>
 
@@ -723,52 +722,52 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Page_Number <b>is</b> <b>new</b> Natural;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_720_9">Page_Number</A></FONT> <b>is</b> <b>new</b> Natural;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
-                          Fld : <b>in</b> Field);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_723_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_723_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                          <FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Current);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_723_14">Set_Current</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
-   <b>function</b> Current (Frm : <b>in</b> Form) <b>return</b> Field;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_729_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_729_22" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_22">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></FONT>
-   <b>pragma</b> Inline (Current);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_729_13">Current</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
-   <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Form</A>;
-                       Page : <b>in</b> Page_Number := Page_Number'First);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_734_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_734_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+                       <FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Page</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Page);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_734_14">Set_Page</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
-   <b>function</b> Page (Frm : Form) <b>return</b> Page_Number;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_740_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_740_19" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT>
-   <b>pragma</b> Inline (Page);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
-   <b>function</b> Get_Index (Fld : Field) <b>return</b> Positive;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_745_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_745_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Please note that in this binding we start the numbering of fields</EM></FONT>
    <FONT COLOR=green><EM>--  with 1. So this is number is one more than you get from the low</EM></FONT>
    <FONT COLOR=green><EM>--  level call.</EM></FONT>
-   <b>pragma</b> Inline (Get_Index);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_745_13">Get_Index</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
-   <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">Fld</A></FONT>      : <b>in</b> Field;
-                           New_Page : <b>in</b> Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_757_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_757_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_28">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+                           <FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">New_Page</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_New_Page);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_757_14">Set_New_Page</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
-   <b>function</b> Is_New_Page (Fld : Field) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_763_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_763_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
-   <b>pragma</b> Inline (Is_New_Page);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></FONT>
@@ -777,11 +776,11 @@
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
-   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
-   <b>type</b> Form  <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>  <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
 
-   <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A> := 0;
-   Null_Form  : <b>constant</b> Form  := 0;
+   <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := 0;
+   <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>  := 0;
 
-<b>end</b> Terminal_Interface.Curses.Forms;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -47,10 +46,10 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">;</A>
-<b>package</b> Terminal_Interface.Curses.Menus.Item_User_Data <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>);
 
    <FONT COLOR=green><EM>--  The binding uses the same user pointer for menu items</EM></FONT>
    <FONT COLOR=green><EM>--  as the low level C implementation. So you can safely</EM></FONT>
@@ -61,21 +60,21 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">Item</A>;
-                            Data : <b>in</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                            <FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT>
-   <b>pragma</b> Inline (Set_User_Data);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">Item</A>;
-                            Data : <b>out</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                            <FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>function</b> Get_User_Data (Itm  : <b>in</b>  Item) <b>return</b> User_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_28">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_User_Data);
 
-<b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -46,31 +45,31 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">;</A>
-<b>package</b> Terminal_Interface.Curses.Menus.Menu_User_Data <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
-                            Data : <b>in</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT>
-   <b>pragma</b> Inline (Set_User_Data);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
-                            Data : <b>out</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>function</b> Get_User_Data (Men  : <b>in</b>  Menu) <b>return</b> User_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_28">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_User_Data);
 
-<b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-menus__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-menus__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-menus__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -41,8 +40,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  Author:  Juergen Pfeifer, 1996</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.26 @</EM></FONT>
-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.27 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:20:52 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  menu binding.</EM></FONT>
@@ -52,90 +51,90 @@
 <b>with</b> System;
 <b>with</b> Ada.Characters.Latin_1;
 
-<b>package</b> Terminal_Interface.Curses.Menus <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-menus__adb.htm#ref_51_40">Menus</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>);
    <b>pragma</b> Linker_Options ("-lmenu");
    <b>pragma</b> Linker_Options ("-lncurses");
 
    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
 
-   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Item</A></FONT> <b>is</b> <b>private</b>;
-   <b>type</b> Menu <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Menu</A></FONT> <b>is</b> <b>private</b>;
 
    <FONT COLOR=green><EM>---------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Interface constants  --</EM></FONT>
    <FONT COLOR=green><EM>---------------------------</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_63_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A>;
-   Null_Menu : <b>constant</b> Menu;
+   <FONT COLOR=red><A NAME="ref_62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+   <FONT COLOR=red><A NAME="ref_63_4">Null_Menu</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
 
-   <b>subtype</b> Menu_Request_Code <b>is</b> Key_Code
-     <b>range</b> (Key_Max + 1) .. (Key_Max + 17);
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Menu_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
+     <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17);
 
    <FONT COLOR=green><EM>--  The prefix M_ stands for "Menu Request"</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_70_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
-   <FONT COLOR=red><A NAME="ref_71_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
-   <FONT COLOR=red><A NAME="ref_72_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
-   <FONT COLOR=red><A NAME="ref_73_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
-   <FONT COLOR=red><A NAME="ref_74_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
-   <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
-   <FONT COLOR=red><A NAME="ref_76_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
-   <FONT COLOR=red><A NAME="ref_77_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
-   <FONT COLOR=red><A NAME="ref_78_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
-   <FONT COLOR=red><A NAME="ref_79_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
-   <FONT COLOR=red><A NAME="ref_80_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
-   <FONT COLOR=red><A NAME="ref_81_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
-   <FONT COLOR=red><A NAME="ref_82_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
-   <FONT COLOR=red><A NAME="ref_83_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
-   <FONT COLOR=red><A NAME="ref_84_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
-   <FONT COLOR=red><A NAME="ref_85_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
-   M_Previous_Match  : <b>constant</b> Menu_Request_Code := Key_Max + 17;
+   <FONT COLOR=red><A NAME="ref_69_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+   <FONT COLOR=red><A NAME="ref_70_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+   <FONT COLOR=red><A NAME="ref_71_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+   <FONT COLOR=red><A NAME="ref_72_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+   <FONT COLOR=red><A NAME="ref_73_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+   <FONT COLOR=red><A NAME="ref_74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+   <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+   <FONT COLOR=red><A NAME="ref_76_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+   <FONT COLOR=red><A NAME="ref_77_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+   <FONT COLOR=red><A NAME="ref_78_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+   <FONT COLOR=red><A NAME="ref_79_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+   <FONT COLOR=red><A NAME="ref_80_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+   <FONT COLOR=red><A NAME="ref_81_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+   <FONT COLOR=red><A NAME="ref_82_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+   <FONT COLOR=red><A NAME="ref_83_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+   <FONT COLOR=red><A NAME="ref_84_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
+   <FONT COLOR=red><A NAME="ref_85_4">M_Previous_Match</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
 
    <FONT COLOR=green><EM>--  For those who like the old 'C' names for the request codes</EM></FONT>
-   REQ_LEFT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Left_Item</A>;
-   REQ_RIGHT_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Right_Item</A>;
-   REQ_UP_ITEM       : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Up_Item</A>;
-   REQ_DOWN_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_Down_Item</A>;
-   REQ_SCR_ULINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollUp_Line</A>;
-   REQ_SCR_DLINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Line</A>;
-   REQ_SCR_DPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollDown_Page</A>;
-   REQ_SCR_UPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_ScrollUp_Page</A>;
-   REQ_FIRST_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_First_Item</A>;
-   REQ_LAST_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Last_Item</A>;
-   REQ_NEXT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Next_Item</A>;
-   REQ_PREV_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Previous_Item</A>;
-   REQ_TOGGLE_ITEM   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Toggle_Item</A>;
-   REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Clear_Pattern</A>;
-   REQ_BACK_PATTERN  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Back_Pattern</A>;
-   REQ_NEXT_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Next_Match</A>;
-   REQ_PREV_MATCH    : Menu_Request_Code <b>renames</b> M_Previous_Match;
+   REQ_LEFT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_Left_Item</A>;
+   REQ_RIGHT_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Right_Item</A>;
+   REQ_UP_ITEM       : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Up_Item</A>;
+   REQ_DOWN_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Down_Item</A>;
+   REQ_SCR_ULINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_ScrollUp_Line</A>;
+   REQ_SCR_DLINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollDown_Line</A>;
+   REQ_SCR_DPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Page</A>;
+   REQ_SCR_UPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollUp_Page</A>;
+   REQ_FIRST_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_First_Item</A>;
+   REQ_LAST_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Last_Item</A>;
+   REQ_NEXT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Next_Item</A>;
+   REQ_PREV_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Previous_Item</A>;
+   REQ_TOGGLE_ITEM   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Toggle_Item</A>;
+   REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Clear_Pattern</A>;
+   REQ_BACK_PATTERN  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Back_Pattern</A>;
+   REQ_NEXT_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Next_Match</A>;
+   REQ_PREV_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Previous_Match</A>;
 
-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Key</A></FONT>  : <b>in</b> Menu_Request_Code;
-                           Name : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__adb.htm#ref_77_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_77_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>;
+                           <FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Name</A></FONT> : <b>out</b> String);
 
-   <b>function</b>  Request_Name (Key : Menu_Request_Code) <b>return</b> String;
+   <b>function</b>  <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-menus__adb.htm#ref_86_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_109_28" HREF="terminal_interface-curses-menus__adb.htm#ref_86_27">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
 
    <FONT COLOR=green><EM>------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
    <FONT COLOR=green><EM>------------------</EM></FONT>
 
-   Menu_Exception : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_116_4">Menu_Exception</A></FONT> : <b>exception</b>;
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Menu options</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>pragma</b> Warnings (Off);
-   <b>type</b> Menu_Option_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_121_9">Menu_Option_Set</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_124_10">One_Valued</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="ref_125_10">Show_Descriptions</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="ref_126_10">Row_Major_Order</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="ref_127_10">Ignore_Case</A></FONT>       : Boolean;
-         <FONT COLOR=red><A NAME="ref_128_10">Show_Matches</A></FONT>      : Boolean;
-         Non_Cyclic        : Boolean;
+         <FONT COLOR=red><A NAME="ref_123_10">One_Valued</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="ref_124_10">Show_Descriptions</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_125_10">Row_Major_Order</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="ref_126_10">Ignore_Case</A></FONT>       : Boolean;
+         <FONT COLOR=red><A NAME="ref_127_10">Show_Matches</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="ref_128_10">Non_Cyclic</A></FONT>        : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Menu_Option_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
 
-   <b>for</b> Menu_Option_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> <b>use</b>
       <b>record</b>
          One_Valued        <b>at</b> 0 <b>range</b>  0 ..  0;
          Show_Descriptions <b>at</b> 0 <b>range</b>  1 ..  1;
@@ -144,47 +143,47 @@
          Show_Matches      <b>at</b> 0 <b>range</b>  4 ..  4;
          Non_Cyclic        <b>at</b> 0 <b>range</b>  5 ..  5;
       <b>end</b> <b>record</b>;
-   <b>for</b> Menu_Option_Set'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>'Size <b>use</b> 32;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
    <b>pragma</b> Warnings (On);
 
-   <b>function</b> Default_Menu_Options <b>return</b> Menu_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_146_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1009_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
    <FONT COLOR=green><EM>--  Initial default options for a menu.</EM></FONT>
-   <b>pragma</b> Inline (Default_Menu_Options);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</A>);
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Item options</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <b>pragma</b> Warnings (Off);
-   <b>type</b> Item_Option_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_153_9">Item_Option_Set</A></FONT> <b>is</b>
       <b>record</b>
-         Selectable  : Boolean;
+         <FONT COLOR=red><A NAME="ref_155_10">Selectable</A></FONT>  : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Item_Option_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
 
-   <b>for</b> Item_Option_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A> <b>use</b>
       <b>record</b>
          Selectable  <b>at</b> 0 <b>range</b>  0 ..  0;
       <b>end</b> <b>record</b>;
-   <b>for</b> Item_Option_Set'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>'Size <b>use</b> 32;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
    <b>pragma</b> Warnings (On);
 
-   <b>function</b> Default_Item_Options <b>return</b> Item_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1015_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
    <FONT COLOR=green><EM>--  Initial default options for an item.</EM></FONT>
-   <b>pragma</b> Inline (Default_Item_Options);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_168_13">Default_Item_Options</A>);
 
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Item Array</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Item;
-   <b>pragma</b> Convention (C, Item_Array);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_175_9">Item_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_175_9">Item_Array</A>);
 
-   <b>type</b> Item_Array_Access <b>is</b> <b>access</b> Item_Array;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_178_9">Item_Array_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_175_9">Item_Array</A>;
 
-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_181_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">IA</A></FONT>         : <b>in</b> <b>out</b> Item_Array_Access;
-                   Free_Items : Boolean := False);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_180_14" HREF="terminal_interface-curses-menus__adb.htm#ref_992_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_180_20" HREF="terminal_interface-curses-menus__adb.htm#ref_992_20">IA</A></FONT>         : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>;
+                   <FONT COLOR=red><A NAME="ref_181_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">Free_Items</A></FONT> : Boolean := False);
    <FONT COLOR=green><EM>--  Release the memory for an allocated item array</EM></FONT>
    <FONT COLOR=green><EM>--  If Free_Items is True, call Delete() for all the items in</EM></FONT>
    <FONT COLOR=green><EM>--  the array.</EM></FONT>
@@ -194,19 +193,19 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_192_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Name</A></FONT>        : String;
-                    Description : String := "") <b>return</b> Item;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_191_13" HREF="terminal_interface-curses-menus__adb.htm#ref_94_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_191_21" HREF="terminal_interface-curses-menus__adb.htm#ref_94_21">Name</A></FONT>        : String;
+                    <FONT COLOR=red><A NAME="ref_192_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Not inlined.</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_198_23">Name</A></FONT>        : String;
-             <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_13"> </A>        Description : String := "") <b>return</b> Item
-     <b>renames</b> Create;
+   <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_197_23">Name</A></FONT>        : String;
+                      <FONT COLOR=red><A NAME="ref_198_23">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
+     <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_13">Create</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>procedure</b> Delete (Itm : <b>in</b> <b>out</b> Item);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_203_14" HREF="terminal_interface-curses-menus__adb.htm#ref_124_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_203_22" HREF="terminal_interface-curses-menus__adb.htm#ref_124_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Resets Itm to Null_Item</EM></FONT>
 
@@ -215,51 +214,51 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="ref_213_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Itm</A></FONT>   : <b>in</b> Item;
-                        Value : <b>in</b> Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_212_14" HREF="terminal_interface-curses-menus__adb.htm#ref_152_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_212_25" HREF="terminal_interface-curses-menus__adb.htm#ref_152_25">Itm</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                        <FONT COLOR=red><A NAME="ref_213_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Value</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Value);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_212_14">Set_Value</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>function</b> Value (Itm : Item) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_218_13" HREF="terminal_interface-curses-menus__adb.htm#ref_166_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_218_20" HREF="terminal_interface-curses-menus__adb.htm#ref_166_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT>
-   <b>pragma</b> Inline (Value);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_218_13">Value</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>function</b> Visible (Itm : Item) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_227_13" HREF="terminal_interface-curses-menus__adb.htm#ref_179_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_227_22" HREF="terminal_interface-curses-menus__adb.htm#ref_179_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT>
-   <b>pragma</b> Inline (Visible);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_227_13">Visible</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_237_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
-                          Options : <b>in</b> Item_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_236_14" HREF="terminal_interface-curses-menus__adb.htm#ref_191_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_236_27" HREF="terminal_interface-curses-menus__adb.htm#ref_191_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_237_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded Set_Options is defined later. Pragma Inline appears there</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
-                             <FONT COLOR=red><A NAME="ref_244_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
-                             On      : Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses-menus__adb.htm#ref_207_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_207_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                             <FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_244_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">On</A></FONT>      : Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: item_opts_off()</EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded Switch_Options is defined later.</EM></FONT>
    <FONT COLOR=green><EM>--  Pragma Inline appears there</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_252_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
-                          Options : <b>out</b> Item_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_251_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_251_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_252_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>function</b> Get_Options (Itm : Item := Null_Item) <b>return</b> Item_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_256_13" HREF="terminal_interface-curses-menus__adb.htm#ref_242_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_256_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
    <FONT COLOR=green><EM>--  An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT>
 
@@ -268,20 +267,20 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>procedure</b> Name (<FONT COLOR=red><A NAME="ref_266_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Itm</A></FONT>  : <b>in</b> Item;
-                   Name : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_265_14" HREF="terminal_interface-curses-menus__adb.htm#ref_250_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_265_20" HREF="terminal_interface-curses-menus__adb.htm#ref_250_20">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                   <FONT COLOR=red><A NAME="ref_266_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Name</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
-   <b>function</b>  Name (Itm : Item) <b>return</b> String;
+   <b>function</b>  <FONT COLOR=red><A NAME="ref_268_14" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_268_20" HREF="terminal_interface-curses-menus__adb.htm#ref_259_19">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
    <b>pragma</b> Inline (Name);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>procedure</b> Description (<FONT COLOR=red><A NAME="ref_275_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Itm</A></FONT>         : <b>in</b> Item;
-                          Description : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_274_14" HREF="terminal_interface-curses-menus__adb.htm#ref_267_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_274_27" HREF="terminal_interface-curses-menus__adb.htm#ref_267_27">Itm</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+                          <FONT COLOR=red><A NAME="ref_275_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Description</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
 
-   <b>function</b>  Description (Itm : Item) <b>return</b> String;
+   <b>function</b>  <FONT COLOR=red><A NAME="ref_278_14" HREF="terminal_interface-curses-menus__adb.htm#ref_276_13">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_278_27" HREF="terminal_interface-curses-menus__adb.htm#ref_276_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
    <b>pragma</b> Inline (Description);
@@ -291,71 +290,71 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_289_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
-                          Itm : <b>in</b> Item);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_288_14" HREF="terminal_interface-curses-menus__adb.htm#ref_284_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_288_27" HREF="terminal_interface-curses-menus__adb.htm#ref_284_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_289_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Current);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_288_14">Set_Current</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
-   <b>function</b> Current (Men : Menu) <b>return</b> Item;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_294_13" HREF="terminal_interface-curses-menus__adb.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_294_22" HREF="terminal_interface-curses-menus__adb.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></FONT>
-   <b>pragma</b> Inline (Current);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_294_13">Current</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Menu</A>;
-                          Line : <b>in</b> Line_Position);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_299_14" HREF="terminal_interface-curses-menus__adb.htm#ref_311_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_299_27" HREF="terminal_interface-curses-menus__adb.htm#ref_311_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Top_Row);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_299_14">Set_Top_Row</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
-   <b>function</b> Top_Row (Men : Menu) <b>return</b> Line_Position;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_305_13" HREF="terminal_interface-curses-menus__adb.htm#ref_325_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses-menus__adb.htm#ref_325_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT>
-   <b>pragma</b> Inline (Top_Row);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_305_13">Top_Row</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
-   <b>function</b> Get_Index (Itm : Item) <b>return</b> Positive;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_310_13" HREF="terminal_interface-curses-menus__adb.htm#ref_338_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_310_24" HREF="terminal_interface-curses-menus__adb.htm#ref_338_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Please note that in this binding we start the numbering of items</EM></FONT>
    <FONT COLOR=green><EM>--  with 1. So this is number is one more than you get from the low</EM></FONT>
    <FONT COLOR=green><EM>--  level call.</EM></FONT>
-   <b>pragma</b> Inline (Get_Index);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_310_13">Get_Index</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_323_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Men</A></FONT>  : <b>in</b> Menu;
-                   Post : <b>in</b> Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_322_14" HREF="terminal_interface-curses-menus__adb.htm#ref_351_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_322_20" HREF="terminal_interface-curses-menus__adb.htm#ref_351_20">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_323_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Post</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: unpost_menu()</EM></FONT>
-   <b>pragma</b> Inline (Post);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_322_14">Post</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
-                          Options : <b>in</b> Menu_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_333_14" HREF="terminal_interface-curses-menus__adb.htm#ref_371_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses-menus__adb.htm#ref_371_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
-                             <FONT COLOR=red><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
-                             On      : Boolean := True);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_339_14" HREF="terminal_interface-curses-menus__adb.htm#ref_387_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_387_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+                             <FONT COLOR=red><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">On</A></FONT>      : Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: menu_opts_off()</EM></FONT>
    <b>pragma</b> Inline (Switch_Options);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_348_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
-                          Options : <b>out</b> Menu_Option_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_347_14" HREF="terminal_interface-curses-menus__adb.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_347_27" HREF="terminal_interface-curses-menus__adb.htm#ref_411_27">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_348_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
-   <b>function</b> Get_Options (Men : Menu := Null_Menu) <b>return</b> Menu_Option_Set;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_352_13" HREF="terminal_interface-curses-menus__adb.htm#ref_422_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses-menus__adb.htm#ref_422_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Options);
 
@@ -364,185 +363,185 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_362_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
-                         Win : <b>in</b> Window);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_361_14" HREF="terminal_interface-curses-menus__adb.htm#ref_430_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_361_26" HREF="terminal_interface-curses-menus__adb.htm#ref_430_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_362_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_361_14">Set_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
-   <b>function</b> Get_Window (Men : Menu) <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_367_13" HREF="terminal_interface-curses-menus__adb.htm#ref_444_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_367_25" HREF="terminal_interface-curses-menus__adb.htm#ref_444_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_367_13">Get_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_373_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
-                             Win : <b>in</b> Window);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses-menus__adb.htm#ref_454_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_372_30" HREF="terminal_interface-curses-menus__adb.htm#ref_454_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                             <FONT COLOR=red><A NAME="ref_373_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Sub_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_372_14">Set_Sub_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
-   <b>function</b> Get_Sub_Window (Men : Menu) <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_378_13" HREF="terminal_interface-curses-menus__adb.htm#ref_468_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_378_29" HREF="terminal_interface-curses-menus__adb.htm#ref_468_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Sub_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_378_13">Get_Sub_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Men</A></FONT>     : <b>in</b> Menu;
-                    <FONT COLOR=red><A NAME="ref_385_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                    Columns : <b>out</b> Column_Count);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_383_14" HREF="terminal_interface-curses-menus__adb.htm#ref_478_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_478_21">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                    <FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_385_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT>
-   <b>pragma</b> Inline (Scale);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_383_14">Scale</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
-   <b>procedure</b> Position_Cursor (Men : Menu);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_394_14" HREF="terminal_interface-curses-menus__adb.htm#ref_497_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_394_31" HREF="terminal_interface-curses-menus__adb.htm#ref_497_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT>
-   <b>pragma</b> Inline (Position_Cursor);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_394_14">Position_Cursor</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
-   <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="ref_404_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Men</A></FONT>  : <b>in</b> Menu;
-                       Mark : <b>in</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_403_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_403_24" HREF="terminal_interface-curses-menus__adb.htm#ref_510_24">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_404_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Mark</A></FONT> : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Mark);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_403_14">Set_Mark</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
-   <b>procedure</b> Mark (<FONT COLOR=red><A NAME="ref_410_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Men</A></FONT>  : <b>in</b>  Menu;
-                   Mark : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_409_14" HREF="terminal_interface-curses-menus__adb.htm#ref_529_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_409_20" HREF="terminal_interface-curses-menus__adb.htm#ref_529_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_410_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Mark</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
 
-   <b>function</b>  Mark (Men : Menu) <b>return</b> String;
+   <b>function</b>  <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses-menus__adb.htm#ref_538_13">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_413_20" HREF="terminal_interface-curses-menus__adb.htm#ref_538_19">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
    <b>pragma</b> Inline (Mark);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
-   <b>procedure</b> Set_Foreground
-     (<FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-      <FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_fore()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Foreground);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_423_14" HREF="terminal_interface-curses-menus__adb.htm#ref_547_14">Set_Foreground</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_423_14">Set_Foreground</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-                         Fore  : <b>out</b> Character_Attribute_Set);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_431_14" HREF="terminal_interface-curses-menus__adb.htm#ref_566_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__adb.htm#ref_566_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-                         Color : <b>out</b> Color_Pair);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_436_14" HREF="terminal_interface-curses-menus__adb.htm#ref_575_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_575_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+                         <FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
    <b>pragma</b> Inline (Foreground);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
-   <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_back()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-menus__adb.htm#ref_586_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_587_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></FONT>
    <b>pragma</b> Inline (Set_Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_452_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-                         Back : <b>out</b> Character_Attribute_Set);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_451_14" HREF="terminal_interface-curses-menus__adb.htm#ref_605_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_451_26" HREF="terminal_interface-curses-menus__adb.htm#ref_605_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_452_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
 
-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-                         <FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-                         Color : <b>out</b> Color_Pair);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_456_14" HREF="terminal_interface-curses-menus__adb.htm#ref_614_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_614_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+                         <FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
    <b>pragma</b> Inline (Background);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
-   <b>procedure</b> Set_Grey
-     (<FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-      <FONT COLOR=red><A NAME="ref_466_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_grey()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Grey);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_463_14" HREF="terminal_interface-curses-menus__adb.htm#ref_625_14">Set_Grey</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_625_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_466_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_463_14">Set_Grey</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
-   <b>procedure</b> Grey (<FONT COLOR=red><A NAME="ref_472_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-                   Grey : <b>out</b> Character_Attribute_Set);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_471_14" HREF="terminal_interface-curses-menus__adb.htm#ref_644_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_471_20" HREF="terminal_interface-curses-menus__adb.htm#ref_644_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_472_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
-   <b>procedure</b> Grey
-     (<FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
-      <FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-      Color : <b>out</b> Color_Pair);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_476_14" HREF="terminal_interface-curses-menus__adb.htm#ref_653_14">Grey</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_653_20">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+      <FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+      <FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
    <b>pragma</b> Inline (Grey);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_485_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Men</A></FONT> : <b>in</b> Menu;
-                                Pad : <b>in</b> Character := Space);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_pad()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Pad_Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_484_14" HREF="terminal_interface-curses-menus__adb.htm#ref_664_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_484_33" HREF="terminal_interface-curses-menus__adb.htm#ref_664_33">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                                <FONT COLOR=red><A NAME="ref_485_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Pad</A></FONT> : <b>in</b> Character := Space);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_484_14">Set_Pad_Character</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_491_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Men</A></FONT> : <b>in</b>  Menu;
-                            Pad : <b>out</b> Character);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_pad()</A></EM></FONT>
-   <b>pragma</b> Inline (Pad_Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses-menus__adb.htm#ref_679_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_490_29" HREF="terminal_interface-curses-menus__adb.htm#ref_679_29">Men</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                            <FONT COLOR=red><A NAME="ref_491_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Pad</A></FONT> : <b>out</b> Character);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_490_14">Pad_Character</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
-   <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Menu</A>;
-                          <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
-                          <FONT COLOR=red><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>   := 0;
-                          Col   : <b>in</b> Column_Position := 0);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_500_14" HREF="terminal_interface-curses-menus__adb.htm#ref_688_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_688_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                          <FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0;
+                          <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>   := 0;
+                          <FONT COLOR=red><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Col</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Spacing);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_500_14">Set_Spacing</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
-   <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Men</A></FONT>   : <b>in</b> Menu;
-                      <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-                      <FONT COLOR=red><A NAME="ref_511_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                      Col   : <b>out</b> Column_Position);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_508_14" HREF="terminal_interface-curses-menus__adb.htm#ref_707_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_707_23">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                      <FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                      <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                      <FONT COLOR=red><A NAME="ref_511_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Col</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT>
-   <b>pragma</b> Inline (Spacing);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_508_14">Spacing</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="ref_521_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Men</A></FONT>  : Menu;
-                         Text : String) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses-menus__adb.htm#ref_732_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_520_26" HREF="terminal_interface-curses-menus__adb.htm#ref_732_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_521_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Text</A></FONT> : String) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Return TRUE if the pattern matches, FALSE otherwise</EM></FONT>
-   <b>pragma</b> Inline (Set_Pattern);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_520_13">Set_Pattern</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
-   <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="ref_528_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Men</A></FONT>  : <b>in</b>  Menu;
-                      Text : <b>out</b> String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses-menus__adb.htm#ref_755_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_527_23" HREF="terminal_interface-curses-menus__adb.htm#ref_755_23">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                      <FONT COLOR=red><A NAME="ref_528_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Text</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></FONT>
-   <b>pragma</b> Inline (Pattern);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_527_14">Pattern</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
-   <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
-                         <FONT COLOR=red><A NAME="ref_539_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                         Columns : <b>in</b> Column_Count);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_537_14" HREF="terminal_interface-curses-menus__adb.htm#ref_764_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_764_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                         <FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                         <FONT COLOR=red><A NAME="ref_539_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Columns</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  Not implemented: 0 argument for Lines or Columns;</EM></FONT>
    <FONT COLOR=green><EM>--  instead use Format to get the current sizes</EM></FONT>
    <FONT COLOR=green><EM>--      The  default  format  is  16  rows,  1  column.    Calling</EM></FONT>
@@ -551,104 +550,104 @@
    <FONT COLOR=green><EM>--      is  interpreted  as  a  request  not to change the current</EM></FONT>
    <FONT COLOR=green><EM>--      value.</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Format);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_537_14">Set_Format</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
-   <b>procedure</b> Format (<FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
-                     <FONT COLOR=red><A NAME="ref_553_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                     Columns : <b>out</b> Column_Count);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses-menus__adb.htm#ref_782_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_782_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                     <FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_553_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT>
-   <b>pragma</b> Inline (Format);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_551_14">Format</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Menu_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Men : <b>in</b> Menu);
-   <b>pragma</b> Convention (C, Menu_Hook_Function);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_561_9">Menu_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_561_49">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
-   <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="ref_566_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
-                                 Proc : <b>in</b> Menu_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_565_14" HREF="terminal_interface-curses-menus__adb.htm#ref_802_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-menus__adb.htm#ref_802_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_566_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Item_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_565_14">Set_Item_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
-   <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="ref_572_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
-                                 Proc : <b>in</b> Menu_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_571_14" HREF="terminal_interface-curses-menus__adb.htm#ref_816_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_571_34" HREF="terminal_interface-curses-menus__adb.htm#ref_816_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_572_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Item_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_571_14">Set_Item_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="ref_578_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
-                                 Proc : <b>in</b> Menu_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_577_14" HREF="terminal_interface-curses-menus__adb.htm#ref_830_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_577_34" HREF="terminal_interface-curses-menus__adb.htm#ref_830_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_578_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Menu_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_577_14">Set_Menu_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
-   <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="ref_584_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
-                                 Proc : <b>in</b> Menu_Hook_Function);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_583_14" HREF="terminal_interface-curses-menus__adb.htm#ref_844_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_583_34" HREF="terminal_interface-curses-menus__adb.htm#ref_844_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                                 <FONT COLOR=red><A NAME="ref_584_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Menu_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_583_14">Set_Menu_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
-   <b>function</b> Get_Item_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_589_13" HREF="terminal_interface-curses-menus__adb.htm#ref_858_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_589_33" HREF="terminal_interface-curses-menus__adb.htm#ref_858_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Item_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_589_13">Get_Item_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
-   <b>function</b> Get_Item_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_594_13" HREF="terminal_interface-curses-menus__adb.htm#ref_866_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_594_33" HREF="terminal_interface-curses-menus__adb.htm#ref_866_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Item_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_594_13">Get_Item_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
-   <b>function</b> Get_Menu_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_599_13" HREF="terminal_interface-curses-menus__adb.htm#ref_874_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_599_33" HREF="terminal_interface-curses-menus__adb.htm#ref_874_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Menu_Init_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_599_13">Get_Menu_Init_Hook</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
-   <b>function</b> Get_Menu_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_604_13" HREF="terminal_interface-curses-menus__adb.htm#ref_882_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_604_33" HREF="terminal_interface-curses-menus__adb.htm#ref_882_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Menu_Term_Hook);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_604_13">Get_Menu_Term_Hook</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Menu</A>;
-                       Items : <b>in</b> Item_Array_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_613_14" HREF="terminal_interface-curses-menus__adb.htm#ref_890_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_613_24" HREF="terminal_interface-curses-menus__adb.htm#ref_890_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                       <FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT>
-   <b>pragma</b> Inline (Redefine);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_14">Redefine</A>);
 
-   <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="ref_619_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Menu</A>;
-                        Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_618_14">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_618_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                        <FONT COLOR=red><A NAME="ref_619_25">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_14">Redefine</A>;
    <FONT COLOR=green><EM>--  pragma Inline (Set_Items);</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
-   <b>function</b> Items (<FONT COLOR=red><A NAME="ref_624_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Men</A></FONT>   : Menu;
-                   Index : Positive) <b>return</b> Item;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_623_13" HREF="terminal_interface-curses-menus__adb.htm#ref_918_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_623_20" HREF="terminal_interface-curses-menus__adb.htm#ref_918_20">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                   <FONT COLOR=red><A NAME="ref_624_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT>
-   <b>pragma</b> Inline (Items);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_623_13">Items</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
-   <b>function</b> Item_Count (Men : Menu) <b>return</b> Natural;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_629_13" HREF="terminal_interface-curses-menus__adb.htm#ref_910_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_629_25" HREF="terminal_interface-curses-menus__adb.htm#ref_910_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT>
-   <b>pragma</b> Inline (Item_Count);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_629_13">Item_Count</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
-   <b>function</b> Create (Items : Item_Array_Access) <b>return</b> Menu;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_638_13" HREF="terminal_interface-curses-menus__adb.htm#ref_937_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-menus__adb.htm#ref_937_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
 
-   <b>function</b> New_Menu (Items : Item_Array_Access) <b>return</b> Menu <b>renames</b> Create;
+   <b>function</b> New_Menu (<FONT COLOR=red><A NAME="ref_642_23">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_638_13">Create</A>;
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
-   <b>procedure</b> Delete (Men : <b>in</b> <b>out</b> Menu);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_645_14" HREF="terminal_interface-curses-menus__adb.htm#ref_956_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_645_22" HREF="terminal_interface-curses-menus__adb.htm#ref_956_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Reset Men to Null_Menu</EM></FONT>
    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
@@ -657,14 +656,14 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_655_27">Menu_Ok</A></FONT>,
-                          <FONT COLOR=red><A NAME="ref_656_27">Request_Denied</A></FONT>,
-                          <FONT COLOR=red><A NAME="ref_657_27">Unknown_Request</A></FONT>,
-                          No_Match);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_654_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_654_27">Menu_Ok</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_655_27">Request_Denied</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_656_27">Unknown_Request</A></FONT>,
+                          <FONT COLOR=red><A NAME="ref_657_27">No_Match</A></FONT>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
-   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_661_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Menu</A>;
-                    Key : Key_Code) <b>return</b> Driver_Result;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_660_13" HREF="terminal_interface-curses-menus__adb.htm#ref_970_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_660_21" HREF="terminal_interface-curses-menus__adb.htm#ref_970_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+                    <FONT COLOR=red><A NAME="ref_661_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_654_9">Driver_Result</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Driver is not inlined</EM></FONT>
 
@@ -672,11 +671,11 @@
    <FONT COLOR=green><EM>--  Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
 <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
 <b>private</b>
-   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
-   <b>type</b> Menu   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
 
-   <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A> := 0;
-   Null_Menu : <b>constant</b> Menu := 0;
+   <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := 0;
+   <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := 0;
 
-<b>end</b> Terminal_Interface.Curses.Menus;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-mouse__adb.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__adb.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-mouse__adb.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__adb.htm	2008-06-18 06:49:44.000000000 -0400
@@ -60,7 +60,7 @@
       <b>function</b> <FONT COLOR=red><A NAME="ref_55_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mouse_Avail, "_nc_has_mouse");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A> /= 0 <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A> /= 0 <b>then</b>
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
@@ -123,7 +123,7 @@
    <b>begin</b>
       <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>'<b>Access</b>);
       <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+         <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
       <b>end</b> <b>if</b>;
       <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>;
    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>;
@@ -132,7 +132,7 @@
    <b>is</b>
    <b>begin</b>
       <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+         <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
       <b>end</b> <b>if</b>;
    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>;
 
@@ -199,15 +199,15 @@
       <b>end</b> <b>if</b>;
    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
                                 <FONT COLOR=red><A NAME="ref_198_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean
    <b>is</b>
       <b>function</b> <FONT COLOR=red><A NAME="ref_200_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_200_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_200_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_200_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
-                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Wenclose, "wenclose");
    <b>begin</b>
       <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>))
-        = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+        = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-mouse__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-mouse__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -51,8 +50,8 @@
 <FONT COLOR=green><EM>--  |</EM></FONT>
 <b>with</b> System;
 
-<b>package</b> Terminal_Interface.Curses.Mouse <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Mouse);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_48_40">Mouse</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
@@ -67,56 +66,56 @@
    <FONT COLOR=green><EM>--  Not implemented:</EM></FONT>
    <FONT COLOR=green><EM>--  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT>
    <FONT COLOR=green><EM>--  or Start_Mouse)</EM></FONT>
-   <b>type</b> Event_Mask <b>is</b> <b>private</b>;
-   <FONT COLOR=red><A NAME="ref_66_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
-   All_Events : <b>constant</b> Event_Mask;
-
-   <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="ref_69_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
-                         <FONT COLOR=red><A NAME="ref_70_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
-                         <FONT COLOR=red><A NAME="ref_71_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
-                         <FONT COLOR=red><A NAME="ref_72_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
-                         <FONT COLOR=red><A NAME="ref_73_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
-                         <FONT COLOR=red><A NAME="ref_74_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
-                         Alt);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
-
-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Left</A> .. Button4;
-   <b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
-
-   <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="ref_80_26">Released</A></FONT>,
-                         <FONT COLOR=red><A NAME="ref_81_26">Pressed</A></FONT>,
-                         <FONT COLOR=red><A NAME="ref_82_26">Clicked</A></FONT>,
-                         <FONT COLOR=red><A NAME="ref_83_26">Double_Clicked</A></FONT>,
-                         Triple_Clicked);
-
-   <b>type</b> Button_States <b>is</b> <b>array</b> (Button_State) <b>of</b> Boolean;
-   <b>pragma</b> Pack (Button_States);
-
-   All_Clicks : <b>constant</b> Button_States := (Clicked .. Triple_Clicked =&gt; True,
-   <FONT COLOR=red><A NAME="ref_90_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9"> </A>                 <b>others</b> =&gt; False);
-   All_States : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_64_9">Event_Mask</A></FONT> <b>is</b> <b>private</b>;
+   <FONT COLOR=red><A NAME="ref_65_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+   <FONT COLOR=red><A NAME="ref_66_4">All_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Mouse_Button</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_68_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_69_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_70_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_71_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_72_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_73_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
+                         <FONT COLOR=red><A NAME="ref_74_26">Alt</A></FONT>);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
+
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_76_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_26">Button4</A>;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Modifier_Keys</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_26">Alt</A>;
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_79_9">Button_State</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_79_26">Released</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_80_26">Pressed</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_81_26">Clicked</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_82_26">Double_Clicked</A></FONT>,
+                         <FONT COLOR=red><A NAME="ref_83_26">Triple_Clicked</A></FONT>);
+
+   <b>type</b> <FONT COLOR=red><A NAME="ref_85_9">Button_States</A></FONT> <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>) <b>of</b> Boolean;
+   <b>pragma</b> Pack (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>);
+
+   <FONT COLOR=red><A NAME="ref_88_4">All_Clicks</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A> := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_81_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_83_26">Triple_Clicked</A> =&gt; True,
+                                           <b>others</b> =&gt; False);
+   <FONT COLOR=red><A NAME="ref_90_4">All_States</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A> := (<b>others</b> =&gt; True);
 
-   <b>type</b> Mouse_Event <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Mouse_Event</A></FONT> <b>is</b> <b>private</b>;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <b>function</b> Has_Mouse <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_98_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_53_13">Has_Mouse</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  Return true if a mouse device is supported, false otherwise.</EM></FONT>
 
-   <b>procedure</b> Register_Reportable_Event
-     (<FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
-      <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">State</A></FONT>  : <b>in</b> Button_State;
-      Mask   : <b>in</b> <b>out</b> Event_Mask);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_101_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_80_14">Register_Reportable_Event</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_102_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_80_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>;
+      <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>);
    <FONT COLOR=green><EM>--  Stores the event described by the button and the state in the mask.</EM></FONT>
    <FONT COLOR=green><EM>--  Before you call this the first time, you should init the mask</EM></FONT>
    <FONT COLOR=green><EM>--  with the Empty_Mask constant</EM></FONT>
-   <b>pragma</b> Inline (Register_Reportable_Event);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A>);
 
-   <b>procedure</b> Register_Reportable_Events
-     (<FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Button</A>;
-      <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">State</A></FONT>  : <b>in</b> Button_States;
-      Mask   : <b>in</b> <b>out</b> Event_Mask);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_110_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_98_14">Register_Reportable_Events</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_111_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_98_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+      <FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>;
+      <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>);
    <FONT COLOR=green><EM>--  Register all events described by the Button and the State bitmap.</EM></FONT>
    <FONT COLOR=green><EM>--  Before you call this the first time, you should init the mask</EM></FONT>
    <FONT COLOR=green><EM>--  with the Empty_Mask constant</EM></FONT>
@@ -126,62 +125,62 @@
    <FONT COLOR=green><EM>--  old mask, that means the event mask value before this call.</EM></FONT>
    <FONT COLOR=green><EM>--  Not Implemented: The library version</EM></FONT>
    <FONT COLOR=green><EM>--  returns a Mouse_Mask that tells which events are reported.</EM></FONT>
-   <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := All_Events)
-                         <b>return</b> Event_Mask;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_123_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_123_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A>)
+                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
-   <b>pragma</b> Inline (Start_Mouse);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>);
 
-   <b>procedure</b> End_Mouse (Mask : <b>in</b> Event_Mask := No_Events);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_126_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_128_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_126_25">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>);
    <FONT COLOR=green><EM>--  Terminates the mouse, restores the specified event mask</EM></FONT>
-   <b>pragma</b> Inline (End_Mouse);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>function</b> Get_Mouse <b>return</b> Mouse_Event;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_133_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_65_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Mouse);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A>);
 
-   <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Mouse_Event</A>;
-                        <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                        <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Column_Position</A>;
-                        <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
-                        State  : <b>out</b> Button_State);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_137_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_137_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
+                        <FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                        <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                        <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+                        <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>);
    <FONT COLOR=green><EM>--  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
    <FONT COLOR=green><EM>--  may not be identical to window coordinates.</EM></FONT>
    <FONT COLOR=green><EM>--  Not Implemented: Get_Event only reports one event, the C library</EM></FONT>
    <FONT COLOR=green><EM>--  version supports multiple events, e.g. {click-1, click-3}</EM></FONT>
-   <b>pragma</b> Inline (Get_Event);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>procedure</b> Unget_Mouse (Event : <b>in</b> Mouse_Event);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_149_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_187_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_149_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_187_27">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></FONT>
-   <b>pragma</b> Inline (Unget_Mouse);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Window</A> := Standard_Window;
-                                Event  : Mouse_Event) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_154_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_154_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                                <FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Event</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT>
    <FONT COLOR=green><EM>--  But : use event instead of screen coordinates.</EM></FONT>
-   <b>pragma</b> Inline (Enclosed_In_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>function</b> Mouse_Interval (Msec : Natural := 200) <b>return</b> Natural;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_161_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_212_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_161_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_212_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
-   <b>pragma</b> Inline (Mouse_Interval);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A>);
 
 <b>private</b>
-   <b>type</b> Event_Mask <b>is</b> <b>new</b> Interfaces.C.unsigned_long;
+   <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
 
-   <b>type</b> Mouse_Event <b>is</b>
+   <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A> <b>is</b>
       <b>record</b>
-         Id      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
-         <FONT COLOR=red><A NAME="ref_172_10"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_13"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_16"> </A></FONT>                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
-         X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
-         <FONT COLOR=red><A NAME="ref_174_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9"> </A>             Integer (Interfaces.C.int'Last);
-         Bstate  : Event_Mask;
+         <FONT COLOR=red><A NAME="ref_170_10">Id</A></FONT>      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
+                                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+         <FONT COLOR=red><A NAME="ref_172_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_172_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_172_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
+                                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last);
+         <FONT COLOR=red><A NAME="ref_174_10">Bstate</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Mouse_Event);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>);
 
-   <b>for</b> Mouse_Event <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A> <b>use</b>
       <b>record</b>
          Id      <b>at</b> 0 <b>range</b>   0 ..  15;
          X       <b>at</b> 0 <b>range</b>  32 ..  63;
@@ -192,45 +191,45 @@
       <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
 
-   Generation_Bit_Order : <b>constant</b> System.Bit_Order := System.Low_Order_First;
+   <FONT COLOR=red><A NAME="ref_189_4">Generation_Bit_Order</A></FONT> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
    <FONT COLOR=green><EM>--  This constant may be different on your system.</EM></FONT>
 
-   <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
-   <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
-   <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
-   <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
-   <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
-   <FONT COLOR=red><A NAME="ref_198_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
-   <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
-   <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
-   <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
-   <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
-   <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
-   <FONT COLOR=red><A NAME="ref_204_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
-   <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
-   <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
-   <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
-   <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
-   <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
-   <FONT COLOR=red><A NAME="ref_210_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
-   <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
-   <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
-   <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
-   <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
-   <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
-   <FONT COLOR=red><A NAME="ref_216_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
-   <FONT COLOR=red><A NAME="ref_217_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
-   <FONT COLOR=red><A NAME="ref_218_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
-   <FONT COLOR=red><A NAME="ref_219_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
-   <FONT COLOR=red><A NAME="ref_220_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
-   <FONT COLOR=red><A NAME="ref_221_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
-   <FONT COLOR=red><A NAME="ref_222_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
-   <FONT COLOR=red><A NAME="ref_223_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
-   <FONT COLOR=red><A NAME="ref_224_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
-   BUTTON4_EVENTS            : <b>constant</b> Event_Mask := 8#00077000000#;
+   <FONT COLOR=red><A NAME="ref_192_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
+   <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
+   <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
+   <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
+   <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
+   <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
+   <FONT COLOR=red><A NAME="ref_198_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
+   <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
+   <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
+   <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
+   <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
+   <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
+   <FONT COLOR=red><A NAME="ref_204_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
+   <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
+   <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
+   <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
+   <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
+   <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
+   <FONT COLOR=red><A NAME="ref_210_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
+   <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
+   <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
+   <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
+   <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
+   <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
+   <FONT COLOR=red><A NAME="ref_216_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
+   <FONT COLOR=red><A NAME="ref_217_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
+   <FONT COLOR=red><A NAME="ref_218_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
+   <FONT COLOR=red><A NAME="ref_219_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
+   <FONT COLOR=red><A NAME="ref_220_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
+   <FONT COLOR=red><A NAME="ref_221_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
+   <FONT COLOR=red><A NAME="ref_222_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
+   <FONT COLOR=red><A NAME="ref_223_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
+   <FONT COLOR=red><A NAME="ref_224_4">BUTTON4_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00077000000#;
 
-   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">0</A>;
-   All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
+   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 0;
+   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">ALL_MOUSE_EVENTS</A>;
 
-<b>end</b> Terminal_Interface.Curses.Mouse;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm	2006-09-23 16:31:31.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -46,31 +45,31 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>generic</b>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">User</A>;
-<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35"> </A><b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
-                            Data : <b>in</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT>
-   <b>pragma</b> Inline (Set_User_Data);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
-                            Data : <b>out</b> User_Access);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>function</b> Get_User_Data (Pan  : <b>in</b>  Panel) <b>return</b> User_Access;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_User_Data);
 
-<b>end</b> Terminal_Interface.Curses.Panels.User_Data;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-panels__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-panels__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-panels__ads.htm	2006-09-23 16:31:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-panels__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -47,108 +46,108 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
 
-<b>package</b> Terminal_Interface.Curses.Panels <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>);
    <b>pragma</b> Linker_Options ("-lpanel");
    <b>pragma</b> Linker_Options ("-lncurses");
 
-   <b>type</b> Panel <b>is</b> <b>private</b>;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_49_9">Panel</A></FONT> <b>is</b> <b>private</b>;
 
    <FONT COLOR=green><EM>---------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Interface constants  --</EM></FONT>
    <FONT COLOR=green><EM>---------------------------</EM></FONT>
-   Null_Panel : <b>constant</b> Panel;
+   <FONT COLOR=red><A NAME="ref_54_4">Null_Panel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
 
    <FONT COLOR=green><EM>-------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Exceptions   --</EM></FONT>
    <FONT COLOR=green><EM>-------------------</EM></FONT>
 
-   Panel_Exception : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_60_4">Panel_Exception</A></FONT> : <b>exception</b>;
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Create (Win : Window) <b>return</b> Panel;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
    <b>pragma</b> Inline (Create);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>function</b> New_Panel (Win : Window) <b>return</b> Panel <b>renames</b> Create;
+   <b>function</b> New_Panel (<FONT COLOR=red><A NAME="ref_72_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
    <FONT COLOR=green><EM>--  pragma Inline (New_Panel);</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>procedure</b> Bottom (Pan : <b>in</b> Panel);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Bottom);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>procedure</b> Top (Pan : <b>in</b> Panel);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Top);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>procedure</b> Show (Pan : <b>in</b> Panel);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Show);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>procedure</b> Update_Panels;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14">Update_Panels</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT>
    <b>pragma</b> Import (C, Update_Panels, "update_panels");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>procedure</b> Hide (Pan : <b>in</b> Panel);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Hide);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
-   <b>function</b> Get_Window (Pan : Panel) <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
-   <b>function</b> Panel_Window (Pan : Panel) <b>return</b> Window <b>renames</b> Get_Window;
+   <b>function</b> Panel_Window (<FONT COLOR=red><A NAME="ref_107_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
    <FONT COLOR=green><EM>--  pragma Inline (Panel_Window);</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>procedure</b> Replace (<FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Panel</A>;
-                      Win : <b>in</b> Window);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+                      <FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Replace);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Panel</A>;
-                   <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                   Column : <b>in</b> Column_Position);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+                   <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT>
-   <b>pragma</b> Inline (Move);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>function</b> Is_Hidden (Pan : Panel) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT>
-   <b>pragma</b> Inline (Is_Hidden);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>function</b> Above (Pan : Panel) <b>return</b> Panel;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_129_13">Above</A></FONT> (<FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT>
    <b>pragma</b> Import (C, Above, "panel_above");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
-   <b>function</b> Below (Pan : Panel) <b>return</b> Panel;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_134_13">Below</A></FONT> (<FONT COLOR=red><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT>
    <b>pragma</b> Import (C, Below, "panel_below");
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Delete (Pan : <b>in</b> <b>out</b> Panel);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT>
    <b>pragma</b> Inline (Delete);
 
 <b>private</b>
-      <b>type</b> Panel <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
-      Null_Panel : <b>constant</b> Panel := 0;
+      <b>type</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+      <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> := 0;
 
-<b>end</b> Terminal_Interface.Curses.Panels;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-terminfo__adb.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-terminfo__adb.htm	2006-09-23 16:31:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-terminfo__adb.htm	2008-06-18 06:49:44.000000000 -0400
@@ -71,13 +71,13 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
    <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></FONT> : String) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, tigetflag);
       <FONT COLOR=red><A NAME="ref_71_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length);
       <FONT COLOR=red><A NAME="ref_72_7">Length</A></FONT> : size_t;
    <b>begin</b>
       To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm	2006-09-23 16:31:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm	2008-06-18 06:49:44.000000000 -0400
@@ -76,7 +76,7 @@
             <b>end</b> <b>if</b>;
 
             <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A>);
-            <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
+            <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
             <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
                <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A> <b>then</b>
                   <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_134_4">Layout_Error</A>;
@@ -92,7 +92,7 @@
                      <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_84_22">Filler</A>);
                   <b>end</b>;
                <b>end</b> <b>if</b>;
-               <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
+               <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
                <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
                   <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>);
                <b>end</b> <b>if</b>;
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-text_io__adb.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io__adb.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-text_io__adb.htm	2006-09-23 16:31:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io__adb.htm	2008-06-18 06:49:44.000000000 -0400
@@ -58,7 +58,7 @@
    <b>is</b>
    <b>begin</b>
       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
       <b>else</b>
          <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A>;
       <b>end</b> <b>if</b>;
@@ -68,7 +68,7 @@
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A>;
 
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></FONT>
@@ -91,7 +91,7 @@
       <FONT COLOR=red><A NAME="ref_86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
       <FONT COLOR=red><A NAME="ref_87_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
       <FONT COLOR=green><EM>--  if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></FONT>
       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
       <FONT COLOR=green><EM>--  end if;</EM></FONT>
@@ -109,10 +109,10 @@
       <FONT COLOR=red><A NAME="ref_104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
       <FONT COLOR=red><A NAME="ref_105_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
          <b>return</b> 0;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
          <FONT COLOR=green><EM>--  if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></FONT>
          <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
          <FONT COLOR=green><EM>--  end if;</EM></FONT>
@@ -141,7 +141,7 @@
          <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> <b>then</b>
             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
          <b>else</b>
-            <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
+            <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>loop</b>;
    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>;
@@ -155,7 +155,7 @@
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A>;
 
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></FONT>
@@ -175,7 +175,7 @@
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1;
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
@@ -209,7 +209,7 @@
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
 
-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> - 1;
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>);
       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> <b>then</b>
@@ -233,7 +233,7 @@
       <FONT COLOR=red><A NAME="ref_228_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
       <FONT COLOR=red><A NAME="ref_229_7">N</A></FONT> : Natural;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> + 1;
       <FONT COLOR=green><EM>--  if N &gt; Natural (Count'Last) then</EM></FONT>
       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
@@ -253,7 +253,7 @@
       <FONT COLOR=red><A NAME="ref_248_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
       <FONT COLOR=red><A NAME="ref_249_7">N</A></FONT> : Natural;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> + 1;
       <FONT COLOR=green><EM>--  if N &gt; Natural (Count'Last) then</EM></FONT>
       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
@@ -280,13 +280,13 @@
       <FONT COLOR=red><A NAME="ref_275_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_271_7">P_Size</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
          <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A> <b>then</b>
             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A>);
    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>;
 
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_287_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_287_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : <b>in</b> Character)
@@ -308,13 +308,13 @@
       <FONT COLOR=red><A NAME="ref_303_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
    <b>begin</b>
       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_299_7">P_Size</A> &gt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
          <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A> <b>then</b>
             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
          <b>end</b> <b>if</b>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>);
    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>;
 
    <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_315_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : <b>in</b> String)
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-trace__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses-trace__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses-trace__ads.htm	2006-09-23 16:31:32.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses-trace__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -45,28 +44,28 @@
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-<b>package</b> Terminal_Interface.Curses.Trace <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Trace);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>);
 
    <b>pragma</b> Warnings (Off);
-   <b>type</b> Trace_Attribute_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Trace_Attribute_Set</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_49_10">Times</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="ref_50_10">Tputs</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="ref_51_10">Update</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="ref_52_10">Cursor_Move</A></FONT>      : Boolean;
-         <FONT COLOR=red><A NAME="ref_53_10">Character_Output</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="ref_54_10">Calls</A></FONT>            : Boolean;
-         <FONT COLOR=red><A NAME="ref_55_10">Virtual_Puts</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_56_10">Input_Events</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_57_10">TTY_State</A></FONT>        : Boolean;
-         <FONT COLOR=red><A NAME="ref_58_10">Internal_Calls</A></FONT>   : Boolean;
-         <FONT COLOR=red><A NAME="ref_59_10">Character_Calls</A></FONT>  : Boolean;
-         Termcap_TermInfo : Boolean;
+         <FONT COLOR=red><A NAME="ref_48_10">Times</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_49_10">Tputs</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_50_10">Update</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_51_10">Cursor_Move</A></FONT>      : Boolean;
+         <FONT COLOR=red><A NAME="ref_52_10">Character_Output</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_53_10">Calls</A></FONT>            : Boolean;
+         <FONT COLOR=red><A NAME="ref_54_10">Virtual_Puts</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_55_10">Input_Events</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_56_10">TTY_State</A></FONT>        : Boolean;
+         <FONT COLOR=red><A NAME="ref_57_10">Internal_Calls</A></FONT>   : Boolean;
+         <FONT COLOR=red><A NAME="ref_58_10">Character_Calls</A></FONT>  : Boolean;
+         <FONT COLOR=red><A NAME="ref_59_10">Termcap_TermInfo</A></FONT> : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Trace_Attribute_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
 
-   <b>for</b> Trace_Attribute_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> <b>use</b>
       <b>record</b>
          Times            <b>at</b> 0 <b>range</b>  0 ..  0;
          Tputs            <b>at</b> 0 <b>range</b>  1 ..  1;
@@ -81,22 +80,22 @@
          Character_Calls  <b>at</b> 0 <b>range</b> 10 .. 10;
          Termcap_TermInfo <b>at</b> 0 <b>range</b> 11 .. 11;
       <b>end</b> <b>record</b>;
-   <b>for</b> Trace_Attribute_Set'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> 32;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
 
    <b>pragma</b> Warnings (On);
 
-   Trace_Disable  : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; False);
+   <FONT COLOR=red><A NAME="ref_84_4">Trace_Disable</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False);
 
-   Trace_Ordinary : <b>constant</b> Trace_Attribute_Set :=
-     (<A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Times</A>            =&gt; True,
-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Tputs</A>            =&gt; True,
-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Update</A>           =&gt; True,
-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Cursor_Move</A>      =&gt; True,
-      Character_Output =&gt; True,
-   <FONT COLOR=red><A NAME="ref_93_4"> </A></FONT>  <b>others</b>           =&gt; False);
-   Trace_Maximum : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; True);
+   <FONT COLOR=red><A NAME="ref_86_4">Trace_Ordinary</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> :=
+     (<A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A>            =&gt; True,
+      <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A>            =&gt; True,
+      <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A>           =&gt; True,
+      <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A>      =&gt; True,
+      <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> =&gt; True,
+      <b>others</b>           =&gt; False);
+   <FONT COLOR=red><A NAME="ref_93_4">Trace_Maximum</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
@@ -105,15 +104,15 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>procedure</b> Trace_On (x : Trace_Attribute_Set);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_102_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_102_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
    <FONT COLOR=green><EM>--  The debugging library has trace.</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Trace_Put (str : String);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></FONT> : String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT>
 
-   Current_Trace_Setting : Trace_Attribute_Set;
-   <b>pragma</b> Import (C, Current_Trace_Setting, "_nc_tracing");
+   <FONT COLOR=red><A NAME="ref_109_4">Current_Trace_Setting</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_109_4">Current_Trace_Setting</A>, "_nc_tracing");
 
-<b>end</b> Terminal_Interface.Curses.Trace;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses__adb.htm ncurses-5.6/doc/html/ada/terminal_interface-curses__adb.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses__adb.htm	2006-09-23 16:31:33.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses__adb.htm	2008-06-18 06:49:44.000000000 -0400
@@ -12,7 +12,7 @@
 <FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
 <FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
@@ -40,8 +40,8 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  Author: Juergen Pfeifer, 1996</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.34 @</EM></FONT>
-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.4 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:09:10 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <b>with</b> System;
@@ -49,2522 +49,2512 @@
 <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
 <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;                  <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
 <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;          <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
 <b>with</b> Ada.Characters.Handling;       <b>use</b> Ada.Characters.Handling;
 <b>with</b> Ada.Strings.Fixed;
-<b>with</b> Ada.Unchecked_Conversion;
 
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_52_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
 
    <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
    <b>use</b> <b>type</b> System.Bit_Order;
 
-   <b>package</b> <FONT COLOR=red><A NAME="ref_57_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
+   <b>package</b> <FONT COLOR=red><A NAME="ref_55_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
 
-   <b>type</b> <FONT COLOR=red><A NAME="ref_59_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
+   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
       <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>);
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>generic</b>
-      <b>type</b> <FONT COLOR=red><A NAME="ref_65_12">Element</A></FONT> <b>is</b> (&lt;&gt;);
-   <b>function</b> <FONT COLOR=red><A NAME="ref_66_13" HREF="terminal_interface-curses__adb.htm#ref_69_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_66_28" HREF="terminal_interface-curses__adb.htm#ref_69_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_67_28" HREF="terminal_interface-curses__adb.htm#ref_70_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
-
-   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_70_28" HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A> <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="ref_71_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
-      <b>package</b> C_E_Array <b>is</b> <b>new</b>
-        <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#ref_71_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>'Val (0));
-      <b>use</b> C_E_Array;
-
-      <b>function</b> To_Pointer <b>is</b> <b>new</b>
-        Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>, Pointer);
-
-      P : Pointer := To_Pointer (<A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A>);
-   <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>else</b>
-         P := P + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A>);
-         <b>return</b> P.<b>all</b>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A>;
-
-   <b>function</b> W_Get_Int   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
-   <b>function</b> W_Get_Short <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>);
-   <b>function</b> W_Get_Byte  <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_char);
-
-   <b>function</b> <FONT COLOR=red><A NAME="ref_93_13" HREF="terminal_interface-curses__adb.htm#ref_96_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses__adb.htm#ref_96_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                      <FONT COLOR=red><A NAME="ref_94_23" HREF="terminal_interface-curses__adb.htm#ref_97_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
-
-   <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_96_23" HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                      <FONT COLOR=red><A NAME="ref_97_23" HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A></FONT> : Natural) <b>return</b> Boolean
-   <b>is</b>
-      <FONT COLOR=red><A NAME="ref_99_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-   <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Sizeof_bool</A> <b>is</b>
-         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Byte  (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
-         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
-         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Int   (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
-         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>case</b>;
-
-      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> <b>is</b>
-         <b>when</b> 0       =&gt; <b>return</b> False;
-         <b>when</b> <b>others</b>  =&gt; <b>return</b> True;
-      <b>end</b> <b>case</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A>;
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_115_13" HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_115_23" HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_117_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_117_25" HREF="terminal_interface-curses__adb.htm#ref_117_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Keyname, "keyname");
 
-      <FONT COLOR=red><A NAME="ref_120_7">Ch</A></FONT> : Character;
+      <FONT COLOR=red><A NAME="ref_67_7">Ch</A></FONT> : Character;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>);
-         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
-            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>,
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A>);
+         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
+            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>,
                                                      <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                                                      <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
-         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
+         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
             <b>declare</b>
-               <FONT COLOR=red><A NAME="ref_130_16">S</A></FONT> : String (1 .. 1);
+               <FONT COLOR=red><A NAME="ref_77_16">S</A></FONT> : String (1 .. 1);
             <b>begin</b>
-               <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>;
-               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A>;
+               <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>;
+               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A>;
             <b>end</b>;
          <b>else</b>
             <b>return</b> "";
          <b>end</b> <b>if</b>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_117_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>)));
+         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A>)));
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_143_14" HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_143_24" HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
-                       <FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A></FONT> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1610_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1610_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+                       <FONT COLOR=red><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1611_24">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_57_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1610_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1611_24">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_14">Key_Name</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_153_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_100_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Initscr, "initscr");
 
-      <FONT COLOR=red><A NAME="ref_156_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_103_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_153_16">Initscr</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_100_16">Initscr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_164_14" HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_166_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Endwin, "endwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_166_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_174_13" HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A></FONT> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_123_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Isendwin, "isendwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_186_14" HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_186_27" HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                          <FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                          <FONT COLOR=red><A NAME="ref_188_27" HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_190_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                      <FONT COLOR=red><A NAME="ref_191_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="ref_192_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_511_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                          <FONT COLOR=red><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_512_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_513_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_137_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
                      ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wmove, "wmove");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_511_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_512_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_513_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_201_14" HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_201_19" HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                  <FONT COLOR=red><A NAME="ref_202_19" HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_524_19">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_204_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_204_24" HREF="terminal_interface-curses__adb.htm#ref_204_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                       <FONT COLOR=red><A NAME="ref_205_24" HREF="terminal_interface-curses__adb.htm#ref_204_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Waddch, "waddch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_523_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_524_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_213_14" HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_213_19" HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                  <FONT COLOR=red><A NAME="ref_214_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A></FONT>  : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_528_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_529_19">Ch</A></FONT>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A>,
+      <A HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_528_19">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_529_19">Ch</A>,
                                  <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                                  <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_223_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_224_7" HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_225_7" HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_229_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_229_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_230_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_231_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_232_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_535_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_536_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, mvwaddch, "mvwaddch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A>),
-                   AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_535_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_536_7">Line</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Column</A>),
+                   AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_538_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_243_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_244_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_245_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_246_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT>     : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_189_14" HREF="terminal_interface-curses__ads.htm#ref_542_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_190_7" HREF="terminal_interface-curses__ads.htm#ref_543_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_544_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_545_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Ch</A></FONT>     : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>,
-           <A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>,
-           <A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>,
-           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>,
+      <A HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_543_7">Win</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_544_7">Line</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_545_7">Column</A>,
+           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_546_7">Ch</A>,
                                  <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                                  <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_542_14">Add</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_257_14" HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_258_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_259_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_204_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_205_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_261_27" HREF="terminal_interface-curses__adb.htm#ref_261_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                          <FONT COLOR=red><A NAME="ref_262_27" HREF="terminal_interface-curses__adb.htm#ref_261_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_208_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_208_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wechochar, "wechochar");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_208_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_271_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_272_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT>  : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_217_14" HREF="terminal_interface-curses__ads.htm#ref_557_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_218_7" HREF="terminal_interface-curses__ads.htm#ref_558_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_559_7">Ch</A></FONT>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>
-        (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>,
-         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>,
+      <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>
+        (<A HREF="terminal_interface-curses__ads.htm#ref_558_7">Win</A>,
+         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_559_7">Ch</A>,
                                <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                                <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_557_14">Add_With_Immediate_Echo</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_282_13" HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_282_21" HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-                    <FONT COLOR=red><A NAME="ref_283_21" HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
-                    <FONT COLOR=red><A NAME="ref_284_21" HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                    <FONT COLOR=red><A NAME="ref_285_21" HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_287_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="ref_288_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="ref_289_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="ref_290_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_229_13" HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_229_21" HREF="terminal_interface-curses__ads.htm#ref_570_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+                    <FONT COLOR=red><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_572_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_234_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Newwin, "newwin");
 
-      <FONT COLOR=red><A NAME="ref_293_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_240_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_287_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_234_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_570_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_572_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_305_14" HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_252_14" HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_252_22" HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_307_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_307_25" HREF="terminal_interface-curses__adb.htm#ref_307_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_254_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_254_25" HREF="terminal_interface-curses__adb.htm#ref_254_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wdelwin, "delwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_254_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_316_13" HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_317_7" HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_318_7" HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_319_7" HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_320_7" HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_321_7" HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_323_16">Subwin</A></FONT>
-        (<FONT COLOR=red><A NAME="ref_324_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-         <FONT COLOR=red><A NAME="ref_325_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_326_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_327_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_328_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_263_13" HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses__ads.htm#ref_595_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_596_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_598_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Subwin</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_271_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Subwin, "subwin");
 
-      <FONT COLOR=red><A NAME="ref_331_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_278_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A>;
-
-   <b>function</b> <FONT COLOR=red><A NAME="ref_344_13" HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_345_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_346_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_347_7" HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_348_7" HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_349_7" HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_351_16">Derwin</A></FONT>
-        (<FONT COLOR=red><A NAME="ref_352_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-         <FONT COLOR=red><A NAME="ref_353_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_354_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_355_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_356_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_270_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_595_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_596_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_598_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A>;
+
+   <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_292_7" HREF="terminal_interface-curses__ads.htm#ref_605_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_606_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_608_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_298_16">Derwin</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_299_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Derwin, "derwin");
 
-      <FONT COLOR=red><A NAME="ref_359_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_306_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_298_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_605_7">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_606_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_372_24" HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_319_13" HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_319_24" HREF="terminal_interface-curses__ads.htm#ref_614_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_374_24" HREF="terminal_interface-curses__adb.htm#ref_374_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_321_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses__adb.htm#ref_321_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Dupwin, "dupwin");
 
-      <FONT COLOR=red><A NAME="ref_377_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_374_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A>);
+      <FONT COLOR=red><A NAME="ref_324_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_321_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_614_24">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_385_14" HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_385_27" HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                          <FONT COLOR=red><A NAME="ref_386_27" HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                          <FONT COLOR=red><A NAME="ref_387_27" HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_332_14" HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_332_27" HREF="terminal_interface-curses__ads.htm#ref_619_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_620_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_621_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_389_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_389_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                      <FONT COLOR=red><A NAME="ref_390_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="ref_391_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_336_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_336_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mvwin, "mvwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_336_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_619_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_399_35" HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                                  <FONT COLOR=red><A NAME="ref_400_35" HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                                  <FONT COLOR=red><A NAME="ref_401_35" HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_346_14" HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_346_35" HREF="terminal_interface-curses__ads.htm#ref_626_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_627_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_628_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_403_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_403_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_404_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_405_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_350_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_350_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mvderwin, "mvderwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_350_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_626_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_627_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_628_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_413_30" HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                             <FONT COLOR=red><A NAME="ref_414_30" HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A></FONT> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_360_14" HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_360_30" HREF="terminal_interface-curses__ads.htm#ref_643_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                             <FONT COLOR=red><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_644_30">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_416_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_416_24" HREF="terminal_interface-curses__adb.htm#ref_416_16">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                       <FONT COLOR=red><A NAME="ref_417_24" HREF="terminal_interface-curses__adb.htm#ref_416_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_363_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_363_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Syncok, "syncok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_363_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_643_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_644_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_425_19" HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                  <FONT COLOR=red><A NAME="ref_426_19" HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A></FONT> : <b>in</b> String;
-                  <FONT COLOR=red><A NAME="ref_427_19" HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A></FONT> : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_372_19" HREF="terminal_interface-curses__ads.htm#ref_653_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A></FONT> : <b>in</b> String;
+                  <FONT COLOR=red><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_655_19">Len</A></FONT> : <b>in</b> Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_429_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_429_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_376_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Waddnstr, "waddnstr");
 
-      <FONT COLOR=red><A NAME="ref_434_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="ref_435_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_381_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_382_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_435_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_376_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_653_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_655_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A></FONT>    : <b>in</b> String;
-      <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A></FONT>    : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_390_14" HREF="terminal_interface-curses__ads.htm#ref_662_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_391_7" HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_663_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_664_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_665_19">Str</A></FONT>    : <b>in</b> String;
+      <FONT COLOR=red><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_666_19">Len</A></FONT>    : <b>in</b> Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_663_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_664_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_665_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_666_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_662_14">Add</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_456_7" HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_457_7" HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
-      <FONT COLOR=red><A NAME="ref_458_7" HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A></FONT> : <b>in</b> Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_402_14" HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_403_7" HREF="terminal_interface-curses__ads.htm#ref_677_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_679_19">Len</A></FONT> : <b>in</b> Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_460_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_460_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_461_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;
-                           <FONT COLOR=red><A NAME="ref_462_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_407_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_407_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>;
+                           <FONT COLOR=red><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Waddchnstr, "waddchnstr");
 
-      <FONT COLOR=red><A NAME="ref_465_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_412_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length);
    <b>begin</b>
-      <b>for</b> <FONT COLOR=red><A NAME="ref_467_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) <b>loop</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A>));
+      <b>for</b> <FONT COLOR=red><A NAME="ref_414_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length) <b>loop</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A>));
       <b>end</b> <b>loop</b>;
-      <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A>,
-                     <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A>;
-
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_480_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
-      <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A></FONT>    : <b>in</b> Integer := -1)
-   <b>is</b>
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A>;
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_491_7" HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_492_7" HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_493_7" HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_494_7" HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_495_7" HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_496_7" HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_497_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_498_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_499_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_501_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_501_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_502_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_503_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_504_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_505_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_506_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_507_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_508_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                        <FONT COLOR=red><A NAME="ref_509_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_407_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_677_19">Win</A>,
+                     <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A>,
+                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_686_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses__ads.htm#ref_687_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_688_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_689_19">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_690_19">Len</A></FONT>    : <b>in</b> Integer := -1)
+   <b>is</b>
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_687_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_688_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_689_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_690_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_686_14">Add</A>;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_437_14" HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_438_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_439_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_710_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_712_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_448_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_449_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                        <FONT COLOR=red><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wborder, "wborder");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A>,
-                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A>),
-                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A>)
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_448_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A>,
+                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Left_Side_Symbol</A>),
+                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Right_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Top_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_709_7">Bottom_Side_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_710_7">Upper_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Right_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_712_7">Lower_Left_Corner_Symbol</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Right_Corner_Symbol</A>)
                   ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A>
       <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_528_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_529_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
-   <b>is</b>
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A>,
-              <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>,
-              <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A>;
-
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A></FONT>   : <b>in</b> Natural;
-      <FONT COLOR=red><A NAME="ref_541_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_543_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_543_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                       <FONT COLOR=red><A NAME="ref_544_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="ref_545_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_475_7" HREF="terminal_interface-curses__ads.htm#ref_721_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+   <b>is</b>
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_721_7">Win</A>,
+              <A HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A>,
+              <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_485_14" HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_486_7" HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_730_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_490_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Whline, "whline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_490_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Symbol</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_730_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_556_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_557_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A></FONT>   : <b>in</b> Natural;
-      <FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_502_14" HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_503_7" HREF="terminal_interface-curses__ads.htm#ref_738_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_504_7" HREF="terminal_interface-curses__ads.htm#ref_739_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_560_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_560_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                       <FONT COLOR=red><A NAME="ref_561_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
-                       <FONT COLOR=red><A NAME="ref_562_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_507_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_508_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+                       <FONT COLOR=red><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wvline, "wvline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A>,
-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_507_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_738_7">Win</A>,
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Symbol</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_739_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_573_13" HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_573_28" HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_520_28" HREF="terminal_interface-curses__ads.htm#ref_751_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_576_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_576_24" HREF="terminal_interface-curses__adb.htm#ref_576_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_523_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_523_24" HREF="terminal_interface-curses__adb.htm#ref_523_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wgetch, "wgetch");
 
-      <FONT COLOR=red><A NAME="ref_579_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_576_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A>);
+      <FONT COLOR=red><A NAME="ref_526_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_523_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_751_28">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>;
       <b>else</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_588_30" HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_535_14" HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_535_30" HREF="terminal_interface-curses__ads.htm#ref_762_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_590_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_590_25" HREF="terminal_interface-curses__adb.htm#ref_590_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_537_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_537_25" HREF="terminal_interface-curses__adb.htm#ref_537_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Ungetch, "ungetch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_590_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_537_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_762_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_598_22" HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_545_13" HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_545_22" HREF="terminal_interface-curses__ads.htm#ref_767_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_600_24" HREF="terminal_interface-curses__adb.htm#ref_600_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_547_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_547_24" HREF="terminal_interface-curses__adb.htm#ref_547_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Haskey, "has_key");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_600_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_547_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_767_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_610_13" HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_557_13" HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_557_30" HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_612_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
-        Natural (<A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>'Last));
+      <FONT COLOR=red><A NAME="ref_559_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
+        Natural (<A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>'Last));
    <b>begin</b>
-      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_612_7">L</A>) <b>then</b>
+      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_559_7">L</A>) <b>then</b>
          <b>return</b> True;
       <b>else</b>
          <b>return</b> False;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_622_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
-                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>
    <b>is</b>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A>) <b>then</b>
-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A>) <b>then</b>
+         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
       <b>else</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_633_32" HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_580_13" HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_580_32" HREF="terminal_interface-curses__ads.htm#ref_786_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
    <b>is</b>
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_786_32">Key</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_639_14" HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_639_24" HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                       <FONT COLOR=red><A NAME="ref_640_24" HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A></FONT>  : Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_586_24" HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                       <FONT COLOR=red><A NAME="ref_587_24" HREF="terminal_interface-curses__ads.htm#ref_801_24">On</A></FONT>  : Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_642_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_642_27" HREF="terminal_interface-curses__adb.htm#ref_642_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_589_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_589_27" HREF="terminal_interface-curses__adb.htm#ref_589_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, wstandout, "wstandout");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_644_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27" HREF="terminal_interface-curses__adb.htm#ref_644_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_591_27" HREF="terminal_interface-curses__adb.htm#ref_591_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, wstandend, "wstandend");
 
-      <FONT COLOR=red><A NAME="ref_647_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_594_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_801_24">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_589_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A>);
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
+         <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_591_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A>);
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Standout</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_659_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_660_7" HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_661_7" HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
-      <FONT COLOR=red><A NAME="ref_662_7" HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A></FONT>   : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_606_14" HREF="terminal_interface-curses__ads.htm#ref_806_14">Switch_Character_Attribute</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__ads.htm#ref_808_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__ads.htm#ref_809_7">On</A></FONT>   : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_664_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_664_25" HREF="terminal_interface-curses__adb.htm#ref_664_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_665_25" HREF="terminal_interface-curses__adb.htm#ref_664_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_611_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_611_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_612_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wattron, "wattr_on");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26" HREF="terminal_interface-curses__adb.htm#ref_667_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_668_26" HREF="terminal_interface-curses__adb.htm#ref_667_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_614_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wattroff, "wattr_off");
       <FONT COLOR=green><EM>--  In Ada we use the On Boolean to control whether or not we want to</EM></FONT>
       <FONT COLOR=green><EM>--  switch on or off the attributes in the set.</EM></FONT>
-      <FONT COLOR=red><A NAME="ref_672_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="ref_673_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+      <FONT COLOR=red><A NAME="ref_619_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_620_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
                                               <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
-                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A>);
+                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_808_7">Attr</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_809_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_611_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_806_14">Switch_Character_Attribute</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_688_7" HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_689_7" HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
-      <FONT COLOR=red><A NAME="ref_690_7" HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_635_7" HREF="terminal_interface-curses__ads.htm#ref_818_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_636_7" HREF="terminal_interface-curses__ads.htm#ref_819_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_637_7" HREF="terminal_interface-curses__ads.htm#ref_820_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_692_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_692_26" HREF="terminal_interface-curses__adb.htm#ref_692_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_693_26" HREF="terminal_interface-curses__adb.htm#ref_692_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_639_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_639_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_640_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wattrset, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A>,
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_639_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_818_7">Win</A>,
                    AttrChar_To_AttrType (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'
                                          (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
-                                          <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A>,
-                                          <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+                                          <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_820_7">Color</A>,
+                                          <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_819_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_705_13" HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_705_38" HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_652_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_652_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
                                      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_708_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_708_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_709_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
-                         <FONT COLOR=red><A NAME="ref_710_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="ref_711_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_655_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_655_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_656_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+                         <FONT COLOR=red><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wattrget, "wattr_get");
 
-      <FONT COLOR=red><A NAME="ref_714_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
-      <FONT COLOR=red><A NAME="ref_715_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-      <FONT COLOR=red><A NAME="ref_716_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_708_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_715_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="ref_661_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+      <FONT COLOR=red><A NAME="ref_662_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_663_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_655_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_662_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="ref_718_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="ref_665_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_716_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
       <b>else</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_728_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_728_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_832_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_833_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
                                      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_731_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_731_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
-                         <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="ref_734_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_678_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+                         <FONT COLOR=red><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wattrget, "wattr_get");
 
-      <FONT COLOR=red><A NAME="ref_737_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
-      <FONT COLOR=red><A NAME="ref_738_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-      <FONT COLOR=red><A NAME="ref_739_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_731_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_738_7">Col</A>'<b>Access</b>,
+      <FONT COLOR=red><A NAME="ref_684_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+      <FONT COLOR=red><A NAME="ref_685_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_686_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>,
                                          System.Null_Address);
-      <FONT COLOR=red><A NAME="ref_741_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+      <FONT COLOR=red><A NAME="ref_688_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_739_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>);
-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>);
+         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
       <b>else</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_13">Get_Character_Attribute</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_751_14" HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_751_25" HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                        <FONT COLOR=red><A NAME="ref_752_25" HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_698_14" HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_698_25" HREF="terminal_interface-curses__ads.htm#ref_838_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                        <FONT COLOR=red><A NAME="ref_699_25" HREF="terminal_interface-curses__ads.htm#ref_839_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_754_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_754_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_755_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                           <FONT COLOR=red><A NAME="ref_756_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_701_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_702_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                           <FONT COLOR=red><A NAME="ref_703_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wset_Color, "wcolor_set");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A>,
-                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A>),
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_701_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_838_25">Win</A>,
+                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_839_25">Pair</A>),
                      <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_766_14" HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_767_7" HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_768_7" HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A></FONT> : <b>in</b> Integer := -1;
-      <FONT COLOR=red><A NAME="ref_769_7" HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
-      <FONT COLOR=red><A NAME="ref_770_7" HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_772_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_772_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                       <FONT COLOR=red><A NAME="ref_773_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                       <FONT COLOR=red><A NAME="ref_774_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
-                       <FONT COLOR=red><A NAME="ref_775_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                       <FONT COLOR=red><A NAME="ref_776_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Opts</A></FONT>  : System.Address := System.Null_Address)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_713_14" HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_846_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_847_7">Count</A></FONT> : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_848_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_719_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                       <FONT COLOR=red><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                       <FONT COLOR=red><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+                       <FONT COLOR=red><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                       <FONT COLOR=red><A NAME="ref_723_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Opts</A></FONT>  : System.Address := System.Null_Address)
                        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wchgat, "wchgat");
 
-      <FONT COLOR=red><A NAME="ref_780_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
-        (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A>);
+      <FONT COLOR=red><A NAME="ref_727_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
+        (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_848_7">Attr</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_780_7">Ch</A>),
-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_719_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_846_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_847_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_727_7">Ch</A>),
+                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_790_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_791_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
-      <FONT COLOR=red><A NAME="ref_792_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
-      <FONT COLOR=red><A NAME="ref_793_7" HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A></FONT>  : <b>in</b> Integer := -1;
-      <FONT COLOR=red><A NAME="ref_794_7" HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
-      <FONT COLOR=red><A NAME="ref_795_7" HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_736_14" HREF="terminal_interface-curses__ads.htm#ref_854_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_737_7" HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_856_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+      <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_857_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+      <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_858_7">Count</A></FONT>  : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_859_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_860_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_856_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_857_7">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_7">Color</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_854_14">Change_Attributes</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_749_14" HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_751_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Beeper, "beep");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_804_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_751_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_812_14" HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_759_14" HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_814_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_761_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Flash, "flash");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_761_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_822_14" HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_822_31" HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_769_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_769_31" HREF="terminal_interface-curses__ads.htm#ref_886_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_824_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_771_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Cbreak, "cbreak");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_826_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_773_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, NoCbreak, "nocbreak");
 
-      <FONT COLOR=red><A NAME="ref_829_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_776_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_824_16">Cbreak</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_31">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_771_16">Cbreak</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_826_16">NoCbreak</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_773_16">NoCbreak</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_841_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_841_28" HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_788_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_788_28" HREF="terminal_interface-curses__ads.htm#ref_892_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_843_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_790_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Raw, "raw");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_792_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, NoRaw, "noraw");
 
-      <FONT COLOR=red><A NAME="ref_848_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_795_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_843_16">Raw</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_28">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_790_16">Raw</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_845_16">NoRaw</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_792_16">NoRaw</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_860_29" HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_807_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_807_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_862_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_809_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Echo, "echo");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_811_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, NoEcho, "noecho");
 
-      <FONT COLOR=red><A NAME="ref_867_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_814_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_862_16">Echo</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_29">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_809_16">Echo</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_864_16">NoEcho</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_811_16">NoEcho</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_879_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                            <FONT COLOR=red><A NAME="ref_880_29" HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_826_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_826_29" HREF="terminal_interface-curses__ads.htm#ref_904_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                            <FONT COLOR=red><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_905_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_882_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_882_22" HREF="terminal_interface-curses__adb.htm#ref_882_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_882_34" HREF="terminal_interface-curses__adb.htm#ref_882_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_829_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_829_22" HREF="terminal_interface-curses__adb.htm#ref_829_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_829_34" HREF="terminal_interface-curses__adb.htm#ref_829_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Meta, "meta");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_890_31" HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                              <FONT COLOR=red><A NAME="ref_891_31" HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_837_14" HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_837_31" HREF="terminal_interface-curses__ads.htm#ref_910_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                              <FONT COLOR=red><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_911_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_893_24" HREF="terminal_interface-curses__adb.htm#ref_893_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_893_36" HREF="terminal_interface-curses__adb.htm#ref_893_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_840_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_840_24" HREF="terminal_interface-curses__adb.htm#ref_840_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_840_36" HREF="terminal_interface-curses__adb.htm#ref_840_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Keypad, "keypad");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_840_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_910_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_911_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_901_13" HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_901_30" HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_848_13" HREF="terminal_interface-curses__ads.htm#ref_915_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_848_30" HREF="terminal_interface-curses__ads.htm#ref_915_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
                              <b>return</b> Boolean
    <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_851_16">Is_Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_851_27" HREF="terminal_interface-curses__adb.htm#ref_851_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, Is_Keypad, "is_keypad");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Offset_use_keypad</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A>;
+      <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_851_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_915_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_915_13">Get_KeyPad_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_908_14" HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_908_26" HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_914_9">Half_Delay_Amount</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_857_14" HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_857_26" HREF="terminal_interface-curses__ads.htm#ref_923_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_920_9">Half_Delay_Amount</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_910_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_910_27" HREF="terminal_interface-curses__adb.htm#ref_910_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_859_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_859_27" HREF="terminal_interface-curses__adb.htm#ref_859_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Halfdelay, "halfdelay");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_910_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_859_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_918_14" HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_919_7" HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_920_7" HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_867_14" HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_868_7" HREF="terminal_interface-curses__ads.htm#ref_929_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Mode</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_922_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_922_27" HREF="terminal_interface-curses__adb.htm#ref_922_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_922_41" HREF="terminal_interface-curses__adb.htm#ref_922_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_871_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_871_27" HREF="terminal_interface-curses__adb.htm#ref_871_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_871_41" HREF="terminal_interface-curses__adb.htm#ref_871_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Intrflush, "intrflush");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_871_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_929_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_930_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_880_7" HREF="terminal_interface-curses__ads.htm#ref_936_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_937_7">Flush</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_934_17">Qiflush</A></FONT>;
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_883_17">Qiflush</A></FONT>;
       <b>pragma</b> Import (C, Qiflush, "qiflush");
-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_936_17">No_Qiflush</A></FONT>;
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_885_17">No_Qiflush</A></FONT>;
       <b>pragma</b> Import (C, No_Qiflush, "noqiflush");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_936_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_7">Flush</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_883_17">Qiflush</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_885_17">No_Qiflush</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_949_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_950_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_951_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_899_7" HREF="terminal_interface-curses__ads.htm#ref_944_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_945_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_953_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_953_25" HREF="terminal_interface-curses__adb.htm#ref_953_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_953_39" HREF="terminal_interface-curses__adb.htm#ref_953_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_902_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_902_25" HREF="terminal_interface-curses__adb.htm#ref_902_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_902_39" HREF="terminal_interface-curses__adb.htm#ref_902_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Nodelay, "nodelay");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_902_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_944_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_945_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_961_14" HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_961_32" HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                               <FONT COLOR=red><A NAME="ref_962_32" HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Timeout_Mode</A>;
-                               <FONT COLOR=red><A NAME="ref_963_32" HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A></FONT> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__ads.htm#ref_952_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_32" HREF="terminal_interface-curses__ads.htm#ref_952_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                               <FONT COLOR=red><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_953_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_9">Timeout_Mode</A>;
+                               <FONT COLOR=red><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_965_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_965_26" HREF="terminal_interface-curses__adb.htm#ref_965_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_965_40" HREF="terminal_interface-curses__adb.htm#ref_965_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_914_17">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_914_27" HREF="terminal_interface-curses__adb.htm#ref_914_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_914_41" HREF="terminal_interface-curses__adb.htm#ref_914_17">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
       <b>pragma</b> Import (C, Wtimeout, "wtimeout");
 
-      <FONT COLOR=red><A NAME="ref_968_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_917_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := -1;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := 0;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_50">Delayed</A>      =&gt;
-            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A> = 0 <b>then</b>
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_953_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := -1;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := 0;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_50">Delayed</A>      =&gt;
+            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A> = 0 <b>then</b>
                <b>raise</b> Constraint_Error;
             <b>end</b> <b>if</b>;
-            <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A>);
+            <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A>);
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_914_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_952_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_952_14">Set_Timeout_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_984_14" HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_986_7" HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_931_14" HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_965_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_966_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_988_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_988_27" HREF="terminal_interface-curses__adb.htm#ref_988_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_988_41" HREF="terminal_interface-curses__adb.htm#ref_988_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_935_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_935_27" HREF="terminal_interface-curses__adb.htm#ref_935_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_935_41" HREF="terminal_interface-curses__adb.htm#ref_935_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Notimeout, "notimeout");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A>)))
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_935_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_965_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_966_7">Timer_Off</A>)))
         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_998_27" HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_945_27" HREF="terminal_interface-curses__ads.htm#ref_975_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1000_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_947_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, NL, "nl");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_949_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, NoNL, "nonl");
 
-      <FONT COLOR=red><A NAME="ref_1005_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_952_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1000_16">NL</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_27">SwitchOn</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_947_16">NL</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">NoNL</A>;
+         <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NoNL</A>;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1017_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__ads.htm#ref_982_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1021_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1021_26" HREF="terminal_interface-curses__adb.htm#ref_1021_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1021_38" HREF="terminal_interface-curses__adb.htm#ref_1021_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_968_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_968_26" HREF="terminal_interface-curses__adb.htm#ref_968_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_968_38" HREF="terminal_interface-curses__adb.htm#ref_968_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Clear_Ok, "clearok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_968_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_982_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_976_14" HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_978_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1033_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1033_24" HREF="terminal_interface-curses__adb.htm#ref_1033_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1033_36" HREF="terminal_interface-curses__adb.htm#ref_1033_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_980_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_980_24" HREF="terminal_interface-curses__adb.htm#ref_980_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_980_36" HREF="terminal_interface-curses__adb.htm#ref_980_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, IDL_Ok, "idlok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_980_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__ads.htm#ref_996_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1045_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_24" HREF="terminal_interface-curses__adb.htm#ref_1045_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1045_36" HREF="terminal_interface-curses__adb.htm#ref_1045_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_17">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_992_25" HREF="terminal_interface-curses__adb.htm#ref_992_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_992_37" HREF="terminal_interface-curses__adb.htm#ref_992_17">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
       <b>pragma</b> Import (C, IDC_Ok, "idcok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_992_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_996_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Do_Idc</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1054_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1000_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1057_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1057_26" HREF="terminal_interface-curses__adb.htm#ref_1057_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1057_38" HREF="terminal_interface-curses__adb.htm#ref_1057_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1002_26" HREF="terminal_interface-curses__adb.htm#ref_1002_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1002_38" HREF="terminal_interface-curses__adb.htm#ref_1002_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Leave_Ok, "leaveok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1066_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1067_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1010_14" HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__ads.htm#ref_1010_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_25" HREF="terminal_interface-curses__adb.htm#ref_1069_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1069_39" HREF="terminal_interface-curses__adb.htm#ref_1069_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1014_17">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1014_26" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1014_40" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
       <b>pragma</b> Import (C, Immedok, "immedok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_1014_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1010_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Mode</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1079_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1020_14" HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1021_7" HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1022_7" HREF="terminal_interface-curses__ads.htm#ref_1018_7">Mode</A></FONT> : <b>in</b> Boolean := False)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1081_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1081_26" HREF="terminal_interface-curses__adb.htm#ref_1081_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1081_40" HREF="terminal_interface-curses__adb.htm#ref_1081_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1024_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_26" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1024_40" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Scrollok, "scrollok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1024_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1018_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1089_13" HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1089_32" HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1032_13" HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1032_32" HREF="terminal_interface-curses__ads.htm#ref_1022_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
                                <b>return</b> Boolean
    <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1035_16">Is_Scroll_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1035_30" HREF="terminal_interface-curses__adb.htm#ref_1035_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+      <b>pragma</b> Import (C, Is_Scroll_Ok, "is_scrollok");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1921_4">Offset_scroll</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A>;
+      <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1035_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1098_7" HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1101_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1101_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_1028_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_1029_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1046_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1046_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_1047_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wsetscrreg, "wsetscrreg");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A>))
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1046_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1028_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1029_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Bottom_Line</A>))
         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1112_14" HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1057_14" HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1114_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1059_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Do_Update, "doupdate");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1114_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1059_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1122_14" HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1122_23" HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1067_14" HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1067_23" HREF="terminal_interface-curses__ads.htm#ref_1045_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1124_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1124_26" HREF="terminal_interface-curses__adb.htm#ref_1124_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_26" HREF="terminal_interface-curses__adb.htm#ref_1069_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wrefresh, "wrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1045_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1132_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1133_7" HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1052_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1053_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1135_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_30" HREF="terminal_interface-curses__adb.htm#ref_1135_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1080_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1080_30" HREF="terminal_interface-curses__adb.htm#ref_1080_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wnoutrefresh, "wnoutrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1080_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1052_14">Refresh_Without_Update</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_22" HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1088_14" HREF="terminal_interface-curses__ads.htm#ref_1059_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1088_22" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1145_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_27" HREF="terminal_interface-curses__adb.htm#ref_1145_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1090_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1090_27" HREF="terminal_interface-curses__adb.htm#ref_1090_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Redrawwin, "redrawwin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1090_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1059_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1059_14">Redraw</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1153_14" HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1154_7" HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1155_7" HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A></FONT> : <b>in</b> Positive)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1098_14" HREF="terminal_interface-curses__ads.htm#ref_1063_14">Redraw</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1063_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1100_7" HREF="terminal_interface-curses__ads.htm#ref_1064_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1101_7" HREF="terminal_interface-curses__ads.htm#ref_1065_22">Line_Count</A></FONT> : <b>in</b> Positive)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1158_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1158_27" HREF="terminal_interface-curses__adb.htm#ref_1158_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1158_41" HREF="terminal_interface-curses__adb.htm#ref_1158_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1158_56" HREF="terminal_interface-curses__adb.htm#ref_1158_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1103_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1103_27" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1103_41" HREF="terminal_interface-curses__adb.htm#ref_1103_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1103_56" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
                           <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wredrawln, "wredrawln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A>,
-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1103_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1063_22">Win</A>,
+                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1064_22">Begin_Line</A>),
+                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1065_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1063_14">Redraw</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1170_14" HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1170_21" HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1115_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1115_21" HREF="terminal_interface-curses__ads.htm#ref_1074_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1172_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1172_24" HREF="terminal_interface-curses__adb.htm#ref_1172_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1117_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_24" HREF="terminal_interface-curses__adb.htm#ref_1117_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Werase, "werase");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1117_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1074_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1180_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_21" HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1125_14" HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_21" HREF="terminal_interface-curses__ads.htm#ref_1081_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1182_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1182_24" HREF="terminal_interface-curses__adb.htm#ref_1182_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1127_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_24" HREF="terminal_interface-curses__adb.htm#ref_1127_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wclear, "wclear");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1127_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1081_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_38" HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1135_14" HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_38" HREF="terminal_interface-curses__ads.htm#ref_1088_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1192_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1192_27" HREF="terminal_interface-curses__adb.htm#ref_1192_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1137_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1137_27" HREF="terminal_interface-curses__adb.htm#ref_1137_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wclearbot, "wclrtobot");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1137_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1088_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1200_14" HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1200_36" HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_36" HREF="terminal_interface-curses__ads.htm#ref_1095_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1202_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1202_27" HREF="terminal_interface-curses__adb.htm#ref_1202_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1147_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_27" HREF="terminal_interface-curses__adb.htm#ref_1147_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wcleareol, "wclrtoeol");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1147_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1095_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1210_14" HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1211_7" HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1212_7" HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1155_14" HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1109_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1157_7" HREF="terminal_interface-curses__ads.htm#ref_1110_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_30" HREF="terminal_interface-curses__adb.htm#ref_1214_17">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1214_45" HREF="terminal_interface-curses__adb.htm#ref_1214_17">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1159_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1159_30" HREF="terminal_interface-curses__adb.htm#ref_1159_17">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1159_45" HREF="terminal_interface-curses__adb.htm#ref_1159_17">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
       <b>pragma</b> Import (C, WBackground, "wbkgdset");
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_1159_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1109_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1110_7">Ch</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1221_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1222_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1165_14" HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1166_7" HREF="terminal_interface-curses__ads.htm#ref_1117_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1167_7" HREF="terminal_interface-curses__ads.htm#ref_1118_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1224_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1224_29" HREF="terminal_interface-curses__adb.htm#ref_1224_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1224_41" HREF="terminal_interface-curses__adb.htm#ref_1224_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1169_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1169_29" HREF="terminal_interface-curses__adb.htm#ref_1169_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1169_41" HREF="terminal_interface-curses__adb.htm#ref_1169_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, WChangeBkgd, "wbkgd");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1169_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1117_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1118_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1232_13" HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1232_29" HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1177_13" HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1177_29" HREF="terminal_interface-curses__ads.htm#ref_1125_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_26" HREF="terminal_interface-curses__adb.htm#ref_1235_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1180_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_26" HREF="terminal_interface-curses__adb.htm#ref_1180_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Wgetbkgd, "getbkgd");
    <b>begin</b>
-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A>;
+      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1180_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1125_29">Win</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1241_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1241_35" HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                                  <FONT COLOR=red><A NAME="ref_1242_35" HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                                  <FONT COLOR=red><A NAME="ref_1243_35" HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A></FONT> : <b>in</b> Positive;
-                                  <FONT COLOR=red><A NAME="ref_1244_35" HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A></FONT> : <b>in</b> Boolean)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_1247_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_1248_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_1249_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1186_14" HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1186_35" HREF="terminal_interface-curses__ads.htm#ref_1152_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_1187_35" HREF="terminal_interface-curses__ads.htm#ref_1153_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_1188_35" HREF="terminal_interface-curses__ads.htm#ref_1154_35">Count</A></FONT> : <b>in</b> Positive;
+                                  <FONT COLOR=red><A NAME="ref_1189_35" HREF="terminal_interface-curses__ads.htm#ref_1155_35">State</A></FONT> : <b>in</b> Boolean)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1191_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1191_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1192_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1193_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1194_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wtouchln, "wtouchln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1191_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1152_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1153_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_35">Count</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1155_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1258_21" HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1203_14" HREF="terminal_interface-curses__ads.htm#ref_1141_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1203_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_1260_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1261_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1205_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1206_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1261_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>), True);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>), True);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1141_14">Touch</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1267_14" HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_23" HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1212_14" HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1212_23" HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_1269_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1270_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1214_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1215_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1270_7">X</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>), False);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1214_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1215_7">X</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1214_7">Y</A>), False);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1276_14" HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1276_21" HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                    <FONT COLOR=red><A NAME="ref_1277_21" HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-                    <FONT COLOR=red><A NAME="ref_1278_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A></FONT> : <b>in</b> Positive)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1221_14" HREF="terminal_interface-curses__ads.htm#ref_1145_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1221_21" HREF="terminal_interface-curses__ads.htm#ref_1145_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                    <FONT COLOR=red><A NAME="ref_1222_21" HREF="terminal_interface-curses__ads.htm#ref_1146_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_1223_21" HREF="terminal_interface-curses__ads.htm#ref_1147_21">Count</A></FONT> : <b>in</b> Positive)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A>, True);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1145_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1146_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1147_21">Count</A>, True);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1145_14">Touch</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1284_13" HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1229_13" HREF="terminal_interface-curses__ads.htm#ref_1160_13">Is_Touched</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1230_7" HREF="terminal_interface-curses__ads.htm#ref_1160_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__ads.htm#ref_1161_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1288_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1288_30" HREF="terminal_interface-curses__adb.htm#ref_1288_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1288_42" HREF="terminal_interface-curses__adb.htm#ref_1288_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1233_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1233_30" HREF="terminal_interface-curses__adb.htm#ref_1233_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1233_42" HREF="terminal_interface-curses__adb.htm#ref_1233_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, WLineTouched, "is_linetouched");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1233_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1160_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1161_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1160_13">Is_Touched</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1298_13" HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1243_13" HREF="terminal_interface-curses__ads.htm#ref_1165_13">Is_Touched</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1244_7" HREF="terminal_interface-curses__ads.htm#ref_1165_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1301_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1301_29" HREF="terminal_interface-curses__adb.htm#ref_1301_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_29" HREF="terminal_interface-curses__adb.htm#ref_1246_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, WWinTouched, "is_wintouched");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1165_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1165_13">Is_Touched</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1311_14" HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1312_7" HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1317_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1322_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_1323_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_1324_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1325_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1326_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1327_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1328_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1329_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1330_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1256_14" HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1257_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1258_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1259_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1260_7" HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1261_7" HREF="terminal_interface-curses__ads.htm#ref_1179_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1262_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1263_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1264_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1183_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1267_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1268_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1269_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1270_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1271_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1272_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1273_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1274_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Copywin, "copywin");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A>,
-                  <A HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A>),
-                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A>)
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1267_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Source_Window</A>,
+                  <A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Window</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Top_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Left_Column</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1179_7">Destination_Top_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Left_Column</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Bottom_Row</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Right_Column</A>),
+                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1183_7">Non_Destructive_Mode</A>)
                 ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1347_14" HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1348_7" HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1349_7" HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1292_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__ads.htm#ref_1188_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__ads.htm#ref_1189_25">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1351_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1351_27" HREF="terminal_interface-curses__adb.htm#ref_1351_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1351_41" HREF="terminal_interface-curses__adb.htm#ref_1351_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1296_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1296_27" HREF="terminal_interface-curses__adb.htm#ref_1296_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1296_41" HREF="terminal_interface-curses__adb.htm#ref_1296_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Overwrite, "overwrite");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1296_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1359_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1304_14" HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1305_7" HREF="terminal_interface-curses__ads.htm#ref_1194_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1306_7" HREF="terminal_interface-curses__ads.htm#ref_1195_23">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1363_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1363_25" HREF="terminal_interface-curses__adb.htm#ref_1363_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1363_39" HREF="terminal_interface-curses__adb.htm#ref_1363_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1308_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1308_25" HREF="terminal_interface-curses__adb.htm#ref_1308_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1308_39" HREF="terminal_interface-curses__adb.htm#ref_1308_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Overlay, "overlay");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1308_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1194_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1195_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1372_14" HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1373_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1374_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A></FONT> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1317_14" HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1205_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1206_7">Lines</A></FONT> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1376_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1376_27" HREF="terminal_interface-curses__adb.htm#ref_1376_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1376_39" HREF="terminal_interface-curses__adb.htm#ref_1376_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1321_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1321_27" HREF="terminal_interface-curses__adb.htm#ref_1321_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1321_39" HREF="terminal_interface-curses__adb.htm#ref_1321_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Winsdelln, "winsdelln");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1321_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1205_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1384_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1384_27" HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1329_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1329_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A>, -1);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, -1);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1390_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1390_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1335_14" HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1335_27" HREF="terminal_interface-curses__ads.htm#ref_1218_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, 1);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1218_27">Win</A>, 1);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1397_14" HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1398_7" HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1342_14" HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1343_7" HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1344_7" HREF="terminal_interface-curses__ads.htm#ref_1230_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1345_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
    <b>is</b>
-      <FONT COLOR=green><EM>--  Please note: in ncurses they are one off.</EM></FONT>
-      <FONT COLOR=green><EM>--  This might be different in other implementations of curses</EM></FONT>
-      <FONT COLOR=red><A NAME="ref_1404_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1909_4">Offset_maxy</A>))
-                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Offset_XY</A>);
-      <FONT COLOR=red><A NAME="ref_1406_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1910_4">Offset_maxx</A>))
-                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Offset_XY</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1347_16">GetMaxY</A></FONT> (<FONT COLOR=red><A NAME="ref_1347_25" HREF="terminal_interface-curses__adb.htm#ref_1347_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetMaxY, "getmaxy");
+
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1350_16">GetMaxX</A></FONT> (<FONT COLOR=red><A NAME="ref_1350_25" HREF="terminal_interface-curses__adb.htm#ref_1350_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetMaxX, "getmaxx");
+
+      <FONT COLOR=red><A NAME="ref_1353_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1347_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A>)
+                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1924_4">Offset_XY</A>);
+      <FONT COLOR=red><A NAME="ref_1355_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1350_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A>)
+                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1924_4">Offset_XY</A>);
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1404_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1406_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1230_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1353_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1355_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1413_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1414_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1415_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1416_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1362_14" HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1364_7" HREF="terminal_interface-curses__ads.htm#ref_1238_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1365_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_1418_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1911_4">Offset_begy</A>);
-      <FONT COLOR=red><A NAME="ref_1419_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1912_4">Offset_begx</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1367_16">GetBegY</A></FONT> (<FONT COLOR=red><A NAME="ref_1367_25" HREF="terminal_interface-curses__adb.htm#ref_1367_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetBegY, "getbegy");
+
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1370_16">GetBegX</A></FONT> (<FONT COLOR=red><A NAME="ref_1370_25" HREF="terminal_interface-curses__adb.htm#ref_1370_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetBegX, "getbegx");
+
+      <FONT COLOR=red><A NAME="ref_1373_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1367_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A>));
+      <FONT COLOR=red><A NAME="ref_1374_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1370_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A>));
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1418_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1419_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1238_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1373_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1425_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1426_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1427_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1428_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1380_14" HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1381_7" HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1382_7" HREF="terminal_interface-curses__ads.htm#ref_1246_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1383_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_1430_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1913_4">Offset_cury</A>);
-      <FONT COLOR=red><A NAME="ref_1431_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_71_12">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1914_4">Offset_curx</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1385_16">GetCurY</A></FONT> (<FONT COLOR=red><A NAME="ref_1385_25" HREF="terminal_interface-curses__adb.htm#ref_1385_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetCurY, "getcury");
+
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1388_16">GetCurX</A></FONT> (<FONT COLOR=red><A NAME="ref_1388_25" HREF="terminal_interface-curses__adb.htm#ref_1388_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetCurX, "getcurx");
+
+      <FONT COLOR=red><A NAME="ref_1391_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1385_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A>));
+      <FONT COLOR=red><A NAME="ref_1392_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1388_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A>));
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1430_7">Y</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1431_7">X</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_1246_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1391_7">Y</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_7">X</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1437_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1438_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1439_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1402_7" HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_1443_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := W_Get_Int (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1916_4">Offset_pary</A>);
-      <FONT COLOR=red><A NAME="ref_1444_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := W_Get_Int (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1917_4">Offset_parx</A>);
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1404_16">GetParY</A></FONT> (<FONT COLOR=red><A NAME="ref_1404_25" HREF="terminal_interface-curses__adb.htm#ref_1404_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetParY, "getpary");
+
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1407_16">GetParX</A></FONT> (<FONT COLOR=red><A NAME="ref_1407_25" HREF="terminal_interface-curses__adb.htm#ref_1407_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, GetParX, "getparx");
+
+      <FONT COLOR=red><A NAME="ref_1410_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1404_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A>);
+      <FONT COLOR=red><A NAME="ref_1411_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1407_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1443_7">Y</A> = -1 <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
-         <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
-         <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := True;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A> = -1 <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A> := True;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1443_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1444_7">X</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := False;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1411_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A> := False;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1457_13" HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1457_22" HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-                     <FONT COLOR=red><A NAME="ref_1458_22" HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1424_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1424_22" HREF="terminal_interface-curses__ads.htm#ref_1267_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_1425_22" HREF="terminal_interface-curses__ads.htm#ref_1268_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1460_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1460_24" HREF="terminal_interface-curses__adb.htm#ref_1460_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1460_39" HREF="terminal_interface-curses__adb.htm#ref_1460_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1427_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1427_24" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1427_39" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Newpad, "newpad");
 
-      <FONT COLOR=red><A NAME="ref_1463_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1430_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1460_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1427_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1267_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_22">Columns</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1472_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1479_16">Subpad</A></FONT>
-        (<FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-         <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1484_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1439_13" HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1274_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1275_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1443_7" HREF="terminal_interface-curses__ads.htm#ref_1277_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1444_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1446_16">Subpad</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1447_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1448_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1449_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1450_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1451_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
       <b>pragma</b> Import (C, Subpad, "subpad");
 
-      <FONT COLOR=red><A NAME="ref_1487_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1454_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1479_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A>;
-
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1500_14" HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1505_7" HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1509_16">Prefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-         <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1514_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1515_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1516_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1446_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1274_7">Pad</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1275_7">Number_Of_Lines</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Columns</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1277_7">First_Line_Position</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Column_Position</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1467_14" HREF="terminal_interface-curses__ads.htm#ref_1283_14">Refresh</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1468_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1469_7" HREF="terminal_interface-curses__ads.htm#ref_1285_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1470_7" HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1471_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1472_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1476_16">Prefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1477_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1478_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1479_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Prefresh, "prefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1509_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A>;
-
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1530_14" HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1531_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1532_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1533_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1534_7" HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1535_7" HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1536_7" HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1539_16">Pnoutrefresh</A></FONT>
-        (<FONT COLOR=red><A NAME="ref_1540_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-         <FONT COLOR=red><A NAME="ref_1541_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1542_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1543_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1544_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1545_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-         <FONT COLOR=red><A NAME="ref_1546_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1476_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1284_7">Pad</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1285_7">Source_Top_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Left_Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Destination_Top_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Left_Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Bottom_Row</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1283_14">Refresh</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1497_14" HREF="terminal_interface-curses__ads.htm#ref_1295_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1498_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1499_7" HREF="terminal_interface-curses__ads.htm#ref_1297_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1299_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1506_16">Pnoutrefresh</A></FONT>
+        (<FONT COLOR=red><A NAME="ref_1507_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+         <FONT COLOR=red><A NAME="ref_1508_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1509_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+         <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Pnoutrefresh, "pnoutrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1539_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A>,
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A>),
-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
-      <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A>;
-
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1560_14" HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1561_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1562_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_7">Pad</A>,
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1297_7">Source_Top_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Left_Column</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1299_7">Destination_Top_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Left_Column</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Bottom_Row</A>),
+                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+      <b>end</b> <b>if</b>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1295_14">Refresh_Without_Update</A>;
+
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1527_14" HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1528_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1529_7" HREF="terminal_interface-curses__ads.htm#ref_1309_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1564_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1564_27" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1564_41" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1531_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1531_27" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1531_41" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
                           <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Pechochar, "pechochar");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1564_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1309_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1573_14" HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1574_7" HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1575_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A></FONT>  : <b>in</b> Character)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__ads.htm#ref_1312_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1541_7" HREF="terminal_interface-curses__ads.htm#ref_1313_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1542_7" HREF="terminal_interface-curses__ads.htm#ref_1314_7">Ch</A></FONT>  : <b>in</b> Character)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>
-        (<A HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A>,
-         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A>,
+      <A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A>
+        (<A HREF="terminal_interface-curses__ads.htm#ref_1313_7">Pad</A>,
+         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1314_7">Ch</A>,
                                <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                                <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1312_14">Add_Character_To_Pad_And_Echo_It</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1585_14" HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1585_22" HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                     <FONT COLOR=red><A NAME="ref_1586_22" HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A></FONT> : <b>in</b> Integer := 1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1552_14" HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1552_22" HREF="terminal_interface-curses__ads.htm#ref_1322_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1553_22" HREF="terminal_interface-curses__ads.htm#ref_1323_22">Amount</A></FONT> : <b>in</b> Integer := 1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1588_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1588_23" HREF="terminal_interface-curses__adb.htm#ref_1588_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1588_37" HREF="terminal_interface-curses__adb.htm#ref_1588_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1555_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1555_23" HREF="terminal_interface-curses__adb.htm#ref_1555_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1555_37" HREF="terminal_interface-curses__adb.htm#ref_1555_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wscrl, "wscrl");
 
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1588_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1555_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1322_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1323_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1598_14" HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1598_32" HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1565_14" HREF="terminal_interface-curses__ads.htm#ref_1334_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_32" HREF="terminal_interface-curses__ads.htm#ref_1334_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1600_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1600_24" HREF="terminal_interface-curses__adb.htm#ref_1600_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1567_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1567_24" HREF="terminal_interface-curses__adb.htm#ref_1567_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wdelch, "wdelch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1600_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1567_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1334_14">Delete_Character</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1608_14" HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1609_7" HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1575_14" HREF="terminal_interface-curses__ads.htm#ref_1339_14">Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1340_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1577_7" HREF="terminal_interface-curses__ads.htm#ref_1341_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1578_7" HREF="terminal_interface-curses__ads.htm#ref_1342_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1613_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1613_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_1614_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_1615_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1580_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1580_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1582_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mvwdelch, "mvwdelch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1613_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1580_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1340_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1341_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1342_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1339_14">Delete_Character</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1623_13" HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1623_19" HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1590_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1590_19" HREF="terminal_interface-curses__ads.htm#ref_1352_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1626_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1626_23" HREF="terminal_interface-curses__adb.htm#ref_1626_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1593_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1593_23" HREF="terminal_interface-curses__adb.htm#ref_1593_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Winch, "winch");
    <b>begin</b>
-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1626_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A>));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A>;
+      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1593_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1352_19">Win</A>));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1632_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1633_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1637_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1637_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_1638_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1639_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1358_13">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1600_7" HREF="terminal_interface-curses__ads.htm#ref_1359_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1601_7" HREF="terminal_interface-curses__ads.htm#ref_1360_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1602_7" HREF="terminal_interface-curses__ads.htm#ref_1361_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1604_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1604_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1605_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1606_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Mvwinch, "mvwinch");
    <b>begin</b>
-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1637_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
+      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1604_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1359_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1360_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1361_7">Column</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1358_13">Peek</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1645_14" HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                     <FONT COLOR=red><A NAME="ref_1646_22" HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_22" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1613_22" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1648_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1648_24" HREF="terminal_interface-curses__adb.htm#ref_1648_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1648_38" HREF="terminal_interface-curses__adb.htm#ref_1648_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1615_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1615_24" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1615_38" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Winsch, "winsch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1648_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1615_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1656_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1657_7" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1658_7" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1659_7" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1660_7" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1662_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1662_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_1663_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_1664_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                         <FONT COLOR=red><A NAME="ref_1665_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1623_14" HREF="terminal_interface-curses__ads.htm#ref_1377_14">Insert</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1624_7" HREF="terminal_interface-curses__ads.htm#ref_1377_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1625_7" HREF="terminal_interface-curses__ads.htm#ref_1378_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1626_7" HREF="terminal_interface-curses__ads.htm#ref_1379_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1627_7" HREF="terminal_interface-curses__ads.htm#ref_1380_22">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1629_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1630_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1631_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                         <FONT COLOR=red><A NAME="ref_1632_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mvwinsch, "mvwinsch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1662_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A>,
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A>),
-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1629_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1377_22">Win</A>,
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1378_22">Line</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1379_22">Column</A>),
+                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1380_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1377_14">Insert</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1676_14" HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1676_22" HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                     <FONT COLOR=red><A NAME="ref_1677_22" HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A></FONT> : <b>in</b> String;
-                     <FONT COLOR=red><A NAME="ref_1678_22" HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A></FONT> : <b>in</b> Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1680_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1680_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_1681_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="ref_1682_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1643_14" HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1643_22" HREF="terminal_interface-curses__ads.htm#ref_1389_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1644_22" HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A></FONT> : <b>in</b> String;
+                     <FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1391_22">Len</A></FONT> : <b>in</b> Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1647_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1647_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1648_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_1649_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Winsnstr, "winsnstr");
 
-      <FONT COLOR=red><A NAME="ref_1685_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="ref_1686_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_1652_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1653_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1680_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1653_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1647_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1389_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1694_14" HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1695_7" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1696_7" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1697_7" HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1698_7" HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A></FONT>    : <b>in</b> String;
-      <FONT COLOR=red><A NAME="ref_1699_7" HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A></FONT>    : <b>in</b> Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1701_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1701_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                           <FONT COLOR=red><A NAME="ref_1702_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="ref_1703_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="ref_1704_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Str</A></FONT>    : char_array;
-                           <FONT COLOR=red><A NAME="ref_1705_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1661_14" HREF="terminal_interface-curses__ads.htm#ref_1398_14">Insert</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1662_7" HREF="terminal_interface-curses__ads.htm#ref_1398_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1663_7" HREF="terminal_interface-curses__ads.htm#ref_1399_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1664_7" HREF="terminal_interface-curses__ads.htm#ref_1400_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1665_7" HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A></FONT>    : <b>in</b> String;
+      <FONT COLOR=red><A NAME="ref_1666_7" HREF="terminal_interface-curses__ads.htm#ref_1402_22">Len</A></FONT>    : <b>in</b> Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1668_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1668_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                           <FONT COLOR=red><A NAME="ref_1669_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1670_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_1671_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Str</A></FONT>    : char_array;
+                           <FONT COLOR=red><A NAME="ref_1672_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Mvwinsnstr, "mvwinsnstr");
 
-      <FONT COLOR=red><A NAME="ref_1708_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>'Length);
-      <FONT COLOR=red><A NAME="ref_1709_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_1675_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1676_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1708_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1709_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1701_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1708_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A>))
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1676_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1668_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1398_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1399_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Len</A>))
         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Insert</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1718_14" HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1718_20" HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                   <FONT COLOR=red><A NAME="ref_1719_20" HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A></FONT> : <b>out</b> String;
-                   <FONT COLOR=red><A NAME="ref_1720_20" HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A></FONT> : <b>in</b>  Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1722_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1722_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_1723_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Str</A></FONT> : char_array;
-                        <FONT COLOR=red><A NAME="ref_1724_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1685_14" HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1685_20" HREF="terminal_interface-curses__ads.htm#ref_1414_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1686_20" HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A></FONT> : <b>out</b> String;
+                   <FONT COLOR=red><A NAME="ref_1687_20" HREF="terminal_interface-curses__ads.htm#ref_1416_20">Len</A></FONT> : <b>in</b>  Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1689_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1690_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Str</A></FONT> : char_array;
+                        <FONT COLOR=red><A NAME="ref_1691_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Winnstr, "winnstr");
 
-      <FONT COLOR=red><A NAME="ref_1727_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A>;
-      <FONT COLOR=red><A NAME="ref_1728_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length);
-      <FONT COLOR=red><A NAME="ref_1729_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_1694_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1695_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1696_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1722_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1414_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1747_14" HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1748_7" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1749_7" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1750_7" HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1751_7" HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A></FONT>    : <b>out</b> String;
-      <FONT COLOR=red><A NAME="ref_1752_7" HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A></FONT>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__ads.htm#ref_1423_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1715_7" HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1716_7" HREF="terminal_interface-curses__ads.htm#ref_1424_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1717_7" HREF="terminal_interface-curses__ads.htm#ref_1425_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1718_7" HREF="terminal_interface-curses__ads.htm#ref_1426_20">Str</A></FONT>    : <b>out</b> String;
+      <FONT COLOR=red><A NAME="ref_1719_7" HREF="terminal_interface-curses__ads.htm#ref_1427_20">Len</A></FONT>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1424_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1426_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1427_20">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1423_14">Peek</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1759_14" HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1760_7" HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1761_7" HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
-      <FONT COLOR=red><A NAME="ref_1762_7" HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A></FONT> : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1726_14" HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1438_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1440_20">Len</A></FONT> : <b>in</b>  Integer := -1)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1764_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1764_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                          <FONT COLOR=red><A NAME="ref_1765_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
-                          <FONT COLOR=red><A NAME="ref_1766_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1731_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_1732_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
+                          <FONT COLOR=red><A NAME="ref_1733_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Winchnstr, "winchnstr");
 
-      <FONT COLOR=red><A NAME="ref_1769_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A>;
-      <FONT COLOR=red><A NAME="ref_1770_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length)
+      <FONT COLOR=red><A NAME="ref_1736_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1737_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length)
           := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
-      <FONT COLOR=red><A NAME="ref_1772_7">Cnt</A></FONT> : Natural := 0;
+      <FONT COLOR=red><A NAME="ref_1739_7">Cnt</A></FONT> : Natural := 0;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1764_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1731_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1438_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      <b>for</b> <FONT COLOR=red><A NAME="ref_1783_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'<b>Range</b> <b>loop</b>
-         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1783_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>));
-         <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> + 1;
+      <b>for</b> <FONT COLOR=red><A NAME="ref_1750_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'<b>Range</b> <b>loop</b>
+         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+         <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1750_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> + 1;
       <b>end</b> <b>loop</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Last) :=
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Last) :=
            (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; ' ',
                        <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
                        <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1796_14" HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1797_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1798_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1799_7" HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1800_7" HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
-      <FONT COLOR=red><A NAME="ref_1801_7" HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A></FONT>    : <b>in</b> Integer := -1)
-   <b>is</b>
-   <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A>;
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1808_14" HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1808_19" HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                  <FONT COLOR=red><A NAME="ref_1809_19" HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A></FONT> : <b>out</b> String;
-                  <FONT COLOR=red><A NAME="ref_1810_19" HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A></FONT> : <b>in</b>  Integer := -1)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1812_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1812_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                         <FONT COLOR=red><A NAME="ref_1813_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Str</A></FONT> : char_array;
-                         <FONT COLOR=red><A NAME="ref_1814_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1763_14" HREF="terminal_interface-curses__ads.htm#ref_1447_14">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1764_7" HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1765_7" HREF="terminal_interface-curses__ads.htm#ref_1448_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1766_7" HREF="terminal_interface-curses__ads.htm#ref_1449_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1767_7" HREF="terminal_interface-curses__ads.htm#ref_1450_20">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+      <FONT COLOR=red><A NAME="ref_1768_7" HREF="terminal_interface-curses__ads.htm#ref_1451_20">Len</A></FONT>    : <b>in</b> Integer := -1)
+   <b>is</b>
+   <b>begin</b>
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1448_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1450_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1451_20">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1447_14">Peek</A>;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1775_14" HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1775_19" HREF="terminal_interface-curses__ads.htm#ref_1463_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_1776_19" HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A></FONT> : <b>out</b> String;
+                  <FONT COLOR=red><A NAME="ref_1777_19" HREF="terminal_interface-curses__ads.htm#ref_1465_19">Len</A></FONT> : <b>in</b>  Integer := -1)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1779_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1779_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                         <FONT COLOR=red><A NAME="ref_1780_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Str</A></FONT> : char_array;
+                         <FONT COLOR=red><A NAME="ref_1781_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Wgetnstr, "wgetnstr");
 
-      <FONT COLOR=red><A NAME="ref_1817_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A>;
-      <FONT COLOR=red><A NAME="ref_1818_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length);
-      <FONT COLOR=red><A NAME="ref_1819_7">Cnt</A></FONT> : Natural;
+      <FONT COLOR=red><A NAME="ref_1784_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Len</A>;
+      <FONT COLOR=red><A NAME="ref_1785_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1786_7">Cnt</A></FONT> : Natural;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> &lt; 0 <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &lt; 0 <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1812_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1463_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A>, True);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>, True);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1837_14" HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1838_7" HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_1839_7" HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1840_7" HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1841_7" HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A></FONT>    : <b>out</b> String;
-      <FONT COLOR=red><A NAME="ref_1842_7" HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A></FONT>    : <b>in</b>  Integer := -1)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1804_14" HREF="terminal_interface-curses__ads.htm#ref_1474_14">Get</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1805_7" HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1806_7" HREF="terminal_interface-curses__ads.htm#ref_1475_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1807_7" HREF="terminal_interface-curses__ads.htm#ref_1476_19">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1808_7" HREF="terminal_interface-curses__ads.htm#ref_1477_19">Str</A></FONT>    : <b>out</b> String;
+      <FONT COLOR=red><A NAME="ref_1809_7" HREF="terminal_interface-curses__ads.htm#ref_1478_19">Len</A></FONT>    : <b>in</b>  Integer := -1)
    <b>is</b>
    <b>begin</b>
-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A>);
-      <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A>;
+      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1475_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Column</A>);
+      <A HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1477_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1478_19">Len</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1474_14">Get</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1849_14" HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1850_7" HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1485_35">Three_Two_Three</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1500_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1491_35">Three_Two_Three</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1852_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1852_26" HREF="terminal_interface-curses__adb.htm#ref_1852_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1819_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1819_26" HREF="terminal_interface-curses__adb.htm#ref_1819_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Init, "slk_init");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1852_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1500_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1860_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1860_34" HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
-                                 <FONT COLOR=red><A NAME="ref_1861_34" HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A></FONT>  : <b>in</b> String;
-                                 <FONT COLOR=red><A NAME="ref_1862_34" HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1490_33">Left</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1505_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1827_34" HREF="terminal_interface-curses__ads.htm#ref_1505_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1828_34" HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A></FONT>  : <b>in</b> String;
+                                 <FONT COLOR=red><A NAME="ref_1829_34" HREF="terminal_interface-curses__ads.htm#ref_1507_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1496_33">Left</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1864_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1864_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_1865_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Txt</A></FONT>   : char_array;
-                        <FONT COLOR=red><A NAME="ref_1866_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1831_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1831_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_1832_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Txt</A></FONT>   : char_array;
+                        <FONT COLOR=red><A NAME="ref_1833_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Set, "slk_set");
 
-      <FONT COLOR=red><A NAME="ref_1869_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>'Length);
-      <FONT COLOR=red><A NAME="ref_1870_7">Len</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_1836_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A>'Length);
+      <FONT COLOR=red><A NAME="ref_1837_7">Len</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1869_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1870_7">Len</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1864_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1869_7">Txt</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1837_7">Len</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1831_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1505_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1505_14">Set_Soft_Label_Key</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1879_14" HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1846_14" HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1881_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1848_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Refresh, "slk_refresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1881_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1848_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1889_14" HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1856_14" HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1891_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1858_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Noutrefresh, "slk_noutrefresh");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1891_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1858_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1899_14" HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1899_34" HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
-                                 <FONT COLOR=red><A NAME="ref_1900_34" HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A></FONT>  : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1866_14" HREF="terminal_interface-curses__ads.htm#ref_1522_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1866_34" HREF="terminal_interface-curses__ads.htm#ref_1522_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1867_34" HREF="terminal_interface-curses__ads.htm#ref_1523_34">Text</A></FONT>  : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1902_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1902_27" HREF="terminal_interface-curses__adb.htm#ref_1902_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1869_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_27" HREF="terminal_interface-curses__adb.htm#ref_1869_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Slk_Label, "slk_label");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1902_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A>;
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1869_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1522_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1523_34">Text</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1522_14">Get_Soft_Label_Key</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1908_13" HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1908_33" HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1875_13" HREF="terminal_interface-curses__ads.htm#ref_1527_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_33" HREF="terminal_interface-curses__ads.htm#ref_1527_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1910_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1910_27" HREF="terminal_interface-curses__adb.htm#ref_1910_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1877_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_27" HREF="terminal_interface-curses__adb.htm#ref_1877_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Slk_Label, "slk_label");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1910_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1877_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1527_33">Label</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_13">Get_Soft_Label_Key</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1916_14" HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1883_14" HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1918_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1885_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Clear, "slk_clear");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1918_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1885_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1926_14" HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1893_14" HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1928_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1895_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Restore, "slk_restore");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1928_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1895_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1936_14" HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1903_14" HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1938_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1905_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Touch, "slk_touch");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1938_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1905_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1946_14" HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1947_7" HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
-      <FONT COLOR=red><A NAME="ref_1948_7" HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A></FONT>   : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1914_7" HREF="terminal_interface-curses__ads.htm#ref_1549_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+      <FONT COLOR=red><A NAME="ref_1915_7" HREF="terminal_interface-curses__ads.htm#ref_1550_7">On</A></FONT>   : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1950_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1950_28" HREF="terminal_interface-curses__adb.htm#ref_1950_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1917_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1917_28" HREF="terminal_interface-curses__adb.htm#ref_1917_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Attron, "slk_attron");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1952_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1952_29" HREF="terminal_interface-curses__adb.htm#ref_1952_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1919_29" HREF="terminal_interface-curses__adb.htm#ref_1919_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Attroff, "slk_attroff");
 
-      <FONT COLOR=red><A NAME="ref_1955_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <FONT COLOR=red><A NAME="ref_1956_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
-                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A>,
+      <FONT COLOR=red><A NAME="ref_1922_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_1923_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1549_7">Attr</A>,
                                               <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1950_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_7">On</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
       <b>else</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1952_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>));
+         <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1970_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_1971_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
-      <FONT COLOR=red><A NAME="ref_1972_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1938_7" HREF="terminal_interface-curses__ads.htm#ref_1557_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_1939_7" HREF="terminal_interface-curses__ads.htm#ref_1558_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1974_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1974_29" HREF="terminal_interface-curses__adb.htm#ref_1974_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1941_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1941_29" HREF="terminal_interface-curses__adb.htm#ref_1941_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Attrset, "slk_attrset");
 
-      <FONT COLOR=red><A NAME="ref_1977_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
-                                             <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>,
-                                             <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A>);
+      <FONT COLOR=red><A NAME="ref_1944_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+                                             <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1557_7">Attr</A>,
+                                             <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1558_7">Color</A>);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1974_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1977_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1941_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1944_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1986_13" HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1953_13" HREF="terminal_interface-curses__ads.htm#ref_1563_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1988_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1955_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
 
-      <FONT COLOR=red><A NAME="ref_1991_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1988_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="ref_1958_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1955_16">Slk_Attr</A>;
    <b>begin</b>
-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1991_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A>;
+      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1958_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1563_13">Get_Soft_Label_Key_Attributes</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_1996_13" HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1963_13" HREF="terminal_interface-curses__ads.htm#ref_1567_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_1998_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1965_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
 
-      <FONT COLOR=red><A NAME="ref_2001_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1998_16">Slk_Attr</A>;
+      <FONT COLOR=red><A NAME="ref_1968_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1965_16">Slk_Attr</A>;
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2001_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1968_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1567_13">Get_Soft_Label_Key_Attributes</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2006_14" HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2006_40" HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1973_14" HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1973_40" HREF="terminal_interface-curses__ads.htm#ref_1572_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2008_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2008_27" HREF="terminal_interface-curses__adb.htm#ref_2008_16">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_27" HREF="terminal_interface-curses__adb.htm#ref_1975_16">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Slk_Color, "slk_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2008_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1572_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2017_14" HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2017_26" HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
-                         <FONT COLOR=red><A NAME="ref_2018_26" HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A></FONT> : <b>in</b> Boolean := True)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1984_14" HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1984_26" HREF="terminal_interface-curses__ads.htm#ref_1586_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+                         <FONT COLOR=red><A NAME="ref_1985_26" HREF="terminal_interface-curses__ads.htm#ref_1587_26">Enable</A></FONT> : <b>in</b> Boolean := True)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2020_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_2020_23" HREF="terminal_interface-curses__adb.htm#ref_2020_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                      <FONT COLOR=red><A NAME="ref_2021_23" HREF="terminal_interface-curses__adb.htm#ref_2020_16">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_1987_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_1987_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                      <FONT COLOR=red><A NAME="ref_1988_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Keyok, "keyok");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2020_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A>)))
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1586_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1587_26">Enable</A>)))
         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_26" HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A></FONT> : <b>in</b> String;
-                         <FONT COLOR=red><A NAME="ref_2031_26" HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1997_14" HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A></FONT> : <b>in</b> String;
+                         <FONT COLOR=red><A NAME="ref_1998_26" HREF="terminal_interface-curses__ads.htm#ref_1597_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2033_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2033_24" HREF="terminal_interface-curses__adb.htm#ref_2033_16">Def</A></FONT> : char_array;
-                       <FONT COLOR=red><A NAME="ref_2034_24" HREF="terminal_interface-curses__adb.htm#ref_2033_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2000_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2000_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Def</A></FONT> : char_array;
+                       <FONT COLOR=red><A NAME="ref_2001_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Defkey, "define_key");
 
-      <FONT COLOR=red><A NAME="ref_2037_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>'Length);
-      <FONT COLOR=red><A NAME="ref_2038_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2004_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2005_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2037_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2038_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2033_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2037_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2005_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2000_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1597_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2046_14" HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2046_26" HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
-                         <FONT COLOR=red><A NAME="ref_2047_26" HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A></FONT> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2013_14" HREF="terminal_interface-curses__ads.htm#ref_1622_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2013_26" HREF="terminal_interface-curses__ads.htm#ref_1622_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+                         <FONT COLOR=red><A NAME="ref_2014_26" HREF="terminal_interface-curses__ads.htm#ref_1623_26">Str</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2049_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2049_24" HREF="terminal_interface-curses__adb.htm#ref_2049_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2016_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2016_24" HREF="terminal_interface-curses__adb.htm#ref_2016_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Unctrl, "unctrl");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2049_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A>;
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2016_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1622_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1623_26">Str</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1622_14">Un_Control</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2055_13" HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2055_25" HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2022_13" HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2022_25" HREF="terminal_interface-curses__ads.htm#ref_1627_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2057_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2057_24" HREF="terminal_interface-curses__adb.htm#ref_2057_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2024_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2024_24" HREF="terminal_interface-curses__adb.htm#ref_2024_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Unctrl, "unctrl");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2057_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A>)));
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2024_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1627_25">Ch</A>)));
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2063_14" HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2063_28" HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A></FONT> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_28" HREF="terminal_interface-curses__ads.htm#ref_1633_28">Msecs</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2065_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2065_29" HREF="terminal_interface-curses__adb.htm#ref_2065_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2032_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2032_29" HREF="terminal_interface-curses__adb.htm#ref_2032_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Delayoutput, "delay_output");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2065_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2032_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1633_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2073_14" HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2040_14" HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2075_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2042_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Flushinp, "flushinp");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2075_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>  <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2042_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>  <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2083_13" HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A></FONT> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2050_13" HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2085_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2052_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Baud, "baudrate");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2085_16">Baud</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A>;
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2052_16">Baud</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2091_13" HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A></FONT> <b>return</b> Character
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2058_13" HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A></FONT> <b>return</b> Character
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2093_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2060_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Erasechar, "erasechar");
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2093_16">Erasechar</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A>;
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2060_16">Erasechar</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2099_13" HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A></FONT> <b>return</b> Character
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2066_13" HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A></FONT> <b>return</b> Character
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2101_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2068_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Killchar, "killchar");
    <b>begin</b>
-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2101_16">Killchar</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A>;
+      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2068_16">Killchar</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2107_13" HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2074_13" HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2109_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Has_Ic, "has_ic");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2109_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2119_13" HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2086_13" HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2121_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2088_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Has_Il, "has_il");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2121_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2088_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2131_13" HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2098_13" HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2133_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2100_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
       <b>pragma</b> Import (C, Termattrs, "termattrs");
 
-      <FONT COLOR=red><A NAME="ref_2136_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2133_16">Termattrs</A>);
+      <FONT COLOR=red><A NAME="ref_2103_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2100_16">Termattrs</A>);
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2136_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2103_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2141_14" HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A></FONT> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2108_14" HREF="terminal_interface-curses__ads.htm#ref_1677_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2108_25" HREF="terminal_interface-curses__ads.htm#ref_1677_25">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2143_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Longname</A></FONT> <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Longname, "longname");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2143_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A>;
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1677_25">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1677_14">Long_Name</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2149_13" HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A></FONT> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2116_13" HREF="terminal_interface-curses__ads.htm#ref_1681_13">Long_Name</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2151_16">Longname</A></FONT> <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2118_16">Longname</A></FONT> <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Longname, "longname");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2151_16">Longname</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2118_16">Longname</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_13">Long_Name</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2157_14" HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2157_29" HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A></FONT> : <b>out</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2124_14" HREF="terminal_interface-curses__ads.htm#ref_1687_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2124_29" HREF="terminal_interface-curses__ads.htm#ref_1687_29">Name</A></FONT> : <b>out</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2159_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2126_16">Termname</A></FONT> <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Termname, "termname");
    <b>begin</b>
-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2159_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A>;
+      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2126_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1687_29">Name</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1687_14">Terminal_Name</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2165_13" HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A></FONT> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1691_13">Terminal_Name</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2167_16">Termname</A></FONT> <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termname</A></FONT> <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, Termname, "termname");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2167_16">Termname</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termname</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1691_13">Terminal_Name</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2173_14" HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2173_25" HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
-                        <FONT COLOR=red><A NAME="ref_2174_25" HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                        <FONT COLOR=red><A NAME="ref_2175_25" HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2177_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2177_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="ref_2178_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                         <FONT COLOR=red><A NAME="ref_2179_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2140_14" HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2140_25" HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+                        <FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                        <FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2144_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_2145_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                         <FONT COLOR=red><A NAME="ref_2146_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Initpair, "init_pair");
    <b>begin</b>
-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A> <b>then</b>
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A> <b>then</b>
          <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
-        Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
+      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+        Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
       <b>end</b> <b>if</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2177_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>))
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A>))
         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2194_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2194_28" HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
-                           <FONT COLOR=red><A NAME="ref_2195_28" HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                           <FONT COLOR=red><A NAME="ref_2196_28" HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="ref_2198_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2199_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2199_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                            <FONT COLOR=red><A NAME="ref_2200_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2198_12">C_Short_Access</A>;
-                            <FONT COLOR=red><A NAME="ref_2201_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2198_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2161_14" HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2161_28" HREF="terminal_interface-curses__ads.htm#ref_1719_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+                           <FONT COLOR=red><A NAME="ref_2162_28" HREF="terminal_interface-curses__ads.htm#ref_1720_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                           <FONT COLOR=red><A NAME="ref_2163_28" HREF="terminal_interface-curses__ads.htm#ref_1721_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2165_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2166_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2166_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                            <FONT COLOR=red><A NAME="ref_2167_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2165_12">C_Short_Access</A>;
+                            <FONT COLOR=red><A NAME="ref_2168_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2165_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Paircontent, "pair_content");
 
-      <FONT COLOR=red><A NAME="ref_2204_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2204_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_2171_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2171_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2204_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2204_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2166_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1719_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2171_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2171_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2204_7">F</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2204_10">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1720_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2171_7">F</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1721_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2171_10">B</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2214_13" HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A></FONT> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2181_13" HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2216_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2183_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Hascolors, "has_colors");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2216_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2183_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2226_14" HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2226_26" HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                         <FONT COLOR=red><A NAME="ref_2227_26" HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                         <FONT COLOR=red><A NAME="ref_2228_26" HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                         <FONT COLOR=red><A NAME="ref_2229_26" HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
-   <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2231_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2231_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="ref_2232_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="ref_2233_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
-                          <FONT COLOR=red><A NAME="ref_2234_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2193_14" HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2193_26" HREF="terminal_interface-curses__ads.htm#ref_1731_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                         <FONT COLOR=red><A NAME="ref_2194_26" HREF="terminal_interface-curses__ads.htm#ref_1732_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_2195_26" HREF="terminal_interface-curses__ads.htm#ref_1733_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_2196_26" HREF="terminal_interface-curses__ads.htm#ref_1734_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
+   <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2198_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2198_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2199_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2200_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+                          <FONT COLOR=red><A NAME="ref_2201_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Initcolor, "init_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2231_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A>),
-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2198_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1731_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1732_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1733_26">Green</A>),
+                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1734_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
             <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2243_13" HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2210_13" HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2245_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2212_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
       <b>pragma</b> Import (C, Canchangecolor, "can_change_color");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2245_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2212_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2255_14" HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2255_29" HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                            <FONT COLOR=red><A NAME="ref_2256_29" HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                            <FONT COLOR=red><A NAME="ref_2257_29" HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                            <FONT COLOR=red><A NAME="ref_2258_29" HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2222_14" HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2222_29" HREF="terminal_interface-curses__ads.htm#ref_1744_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                            <FONT COLOR=red><A NAME="ref_2223_29" HREF="terminal_interface-curses__ads.htm#ref_1745_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                            <FONT COLOR=red><A NAME="ref_2224_29" HREF="terminal_interface-curses__ads.htm#ref_1746_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                            <FONT COLOR=red><A NAME="ref_2225_29" HREF="terminal_interface-curses__ads.htm#ref_1747_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
    <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="ref_2260_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2227_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
 
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2262_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2262_30" HREF="terminal_interface-curses__adb.htm#ref_2262_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2262_47" HREF="terminal_interface-curses__adb.htm#ref_2262_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2262_50" HREF="terminal_interface-curses__adb.htm#ref_2262_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2262_53" HREF="terminal_interface-curses__adb.htm#ref_2262_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2260_12">C_Short_Access</A>)
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2229_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2229_30" HREF="terminal_interface-curses__adb.htm#ref_2229_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2229_47" HREF="terminal_interface-curses__adb.htm#ref_2229_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2229_50" HREF="terminal_interface-curses__adb.htm#ref_2229_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2229_53" HREF="terminal_interface-curses__adb.htm#ref_2229_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2227_12">C_Short_Access</A>)
                              <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Colorcontent, "color_content");
 
-      <FONT COLOR=red><A NAME="ref_2266_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2266_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2266_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+      <FONT COLOR=red><A NAME="ref_2233_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2233_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2233_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2262_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2266_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2266_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2266_13">B</A>'<b>Access</b>) =
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2229_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1744_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2233_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2233_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2233_13">B</A>'<b>Access</b>) =
         <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_7">R</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_10">G</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_13">B</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1745_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_7">R</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1746_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_10">G</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1747_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_13">B</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2279_14" HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2279_32" HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2246_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2246_32" HREF="terminal_interface-curses__ads.htm#ref_1759_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2281_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2248_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Def_Prog_Mode, "def_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2283_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2250_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Def_Shell_Mode, "def_shell_mode");
 
-      <FONT COLOR=red><A NAME="ref_2286_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2253_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2281_16">Def_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2283_16">Def_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_32">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2248_16">Def_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2250_16">Def_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2297_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2297_33" HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2264_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2264_33" HREF="terminal_interface-curses__ads.htm#ref_1765_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2299_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2266_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Reset_Prog_Mode, "reset_prog_mode");
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2301_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2268_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Reset_Shell_Mode, "reset_shell_mode");
 
-      <FONT COLOR=red><A NAME="ref_2304_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2271_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A> <b>is</b>
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2299_16">Reset_Prog_Mode</A>;
-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2301_16">Reset_Shell_Mode</A>;
+      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_33">Mode</A> <b>is</b>
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2266_16">Reset_Prog_Mode</A>;
+         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2268_16">Reset_Shell_Mode</A>;
       <b>end</b> <b>case</b>;
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2315_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2282_14" HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2317_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2284_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Savetty, "savetty");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2317_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2325_14" HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2292_14" HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A></FONT>
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2327_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2294_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Resetty, "resetty");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2327_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2294_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2335_14" HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2335_29" HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A></FONT> : <b>in</b> Integer;
-                            <FONT COLOR=red><A NAME="ref_2336_29" HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2302_14" HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2302_29" HREF="terminal_interface-curses__ads.htm#ref_1789_29">Lines</A></FONT> : <b>in</b> Integer;
+                            <FONT COLOR=red><A NAME="ref_2303_29" HREF="terminal_interface-curses__ads.htm#ref_1790_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2338_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2338_28" HREF="terminal_interface-curses__adb.htm#ref_2338_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                           <FONT COLOR=red><A NAME="ref_2339_28" HREF="terminal_interface-curses__adb.htm#ref_2338_16">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2305_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2305_28" HREF="terminal_interface-curses__adb.htm#ref_2305_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                           <FONT COLOR=red><A NAME="ref_2306_28" HREF="terminal_interface-curses__adb.htm#ref_2305_16">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Ripoffline, "_nc_ripoffline");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2338_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2305_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1789_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1790_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2347_14" HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2347_37" HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2314_14" HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2314_37" HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2349_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2349_26" HREF="terminal_interface-curses__adb.htm#ref_2349_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2316_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2316_26" HREF="terminal_interface-curses__adb.htm#ref_2316_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Curs_Set, "curs_set");
 
-      <FONT COLOR=red><A NAME="ref_2352_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2319_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2349_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A>));
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A>);
+      <A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2316_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A>));
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+         <A HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2360_14" HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2360_33" HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A></FONT> : <b>in</b> Natural)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2327_14" HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2327_33" HREF="terminal_interface-curses__ads.htm#ref_1806_33">Ms</A></FONT> : <b>in</b> Natural)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2362_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2362_23" HREF="terminal_interface-curses__adb.htm#ref_2362_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2329_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2329_23" HREF="terminal_interface-curses__adb.htm#ref_2329_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Napms, "napms");
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2362_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2329_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1806_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2338_13" HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+   <b>is</b>
+      <FONT COLOR=red><A NAME="ref_2340_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2340_7">Result</A>, "stdscr");
+   <b>begin</b>
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2340_7">Result</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2346_13" HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2373_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Stdscr</A>, "stdscr");
+      <FONT COLOR=red><A NAME="ref_2348_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2348_7">Result</A>, "curscr");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Stdscr</A>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2348_7">Result</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2379_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2354_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2381_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2381_7">C_Lines</A>, "LINES");
+      <FONT COLOR=red><A NAME="ref_2356_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2356_7">Result</A>, "LINES");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2381_7">C_Lines</A>);
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2356_7">Result</A>);
    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2387_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2362_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2389_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2389_7">C_Columns</A>, "COLS");
+      <FONT COLOR=red><A NAME="ref_2364_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2364_7">Result</A>, "COLS");
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2389_7">C_Columns</A>);
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2364_7">Result</A>);
    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2395_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2370_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2397_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2397_7">C_Tab_Size</A>, "TABSIZE");
+      <FONT COLOR=red><A NAME="ref_2372_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2372_7">Result</A>, "TABSIZE");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2397_7">C_Tab_Size</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2372_7">Result</A>);
    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2403_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2378_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2405_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2405_7">C_Number_Of_Colors</A>, "COLORS");
+      <FONT COLOR=red><A NAME="ref_2380_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2380_7">Result</A>, "COLORS");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2405_7">C_Number_Of_Colors</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2380_7">Result</A>);
    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>;
 
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2411_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2386_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
    <b>is</b>
-      <FONT COLOR=red><A NAME="ref_2413_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2413_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
+      <FONT COLOR=red><A NAME="ref_2388_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2388_7">Result</A>, "COLOR_PAIRS");
    <b>begin</b>
-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2413_7">C_Number_Of_Color_Pairs</A>);
+      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2388_7">Result</A>);
    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>;
+
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2419_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A></FONT>
-     (<FONT COLOR=red><A NAME="ref_2420_7" HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-      <FONT COLOR=red><A NAME="ref_2421_7" HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_2422_7" HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_2423_7" HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1807_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1807_33">From_Screen</A>)
-   <b>is</b>
-      <b>type</b> <FONT COLOR=red><A NAME="ref_2425_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2426_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2426_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                          <FONT COLOR=red><A NAME="ref_2427_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2427_30" HREF="terminal_interface-curses__adb.htm#ref_2426_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2425_12">Int_Access</A>;
-                          <FONT COLOR=red><A NAME="ref_2428_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2395_14" HREF="terminal_interface-curses__ads.htm#ref_1814_14">Transform_Coordinates</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_2396_7" HREF="terminal_interface-curses__ads.htm#ref_1815_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1818_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1813_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1813_33">From_Screen</A>)
+   <b>is</b>
+      <b>type</b> <FONT COLOR=red><A NAME="ref_2401_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2402_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2402_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2403_30" HREF="terminal_interface-curses__adb.htm#ref_2402_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2401_12">Int_Access</A>;
+                          <FONT COLOR=red><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, Transform, "wmouse_trafo");
 
-      <FONT COLOR=red><A NAME="ref_2431_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A>);
-      <FONT COLOR=red><A NAME="ref_2432_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>);
-      <FONT COLOR=red><A NAME="ref_2433_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A>;
-      <FONT COLOR=red><A NAME="ref_2434_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <FONT COLOR=red><A NAME="ref_2407_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A>);
+      <FONT COLOR=red><A NAME="ref_2408_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A>);
+      <FONT COLOR=red><A NAME="ref_2409_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>;
+      <FONT COLOR=red><A NAME="ref_2410_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1807_46">To_Screen</A> <b>then</b>
-         <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">D</A> := 1;
+      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1813_46">To_Screen</A> <b>then</b>
+         <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">D</A> := 1;
       <b>end</b> <b>if</b>;
-      <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2432_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2431_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">D</A>);
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+      <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2402_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1815_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2407_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">D</A>);
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>else</b>
-         <A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2432_7">Y</A>);
-         <A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2431_7">X</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">Y</A>);
+         <A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2407_7">X</A>);
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1814_14">Transform_Coordinates</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2448_14" HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A></FONT> <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2449_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2424_14" HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A></FONT> <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2425_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, C_Use_Default_Colors, "use_default_colors");
-      <FONT COLOR=red><A NAME="ref_2451_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2449_16">C_Use_Default_Colors</A>;
+      <FONT COLOR=red><A NAME="ref_2427_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2425_16">C_Use_Default_Colors</A>;
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2451_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2427_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2458_14" HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2458_37" HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
-                                    <FONT COLOR=red><A NAME="ref_2459_37" HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2434_14" HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2434_37" HREF="terminal_interface-curses__ads.htm#ref_1836_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+                                    <FONT COLOR=red><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_1837_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2461_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2461_41" HREF="terminal_interface-curses__adb.htm#ref_2461_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                                        <FONT COLOR=red><A NAME="ref_2462_41" HREF="terminal_interface-curses__adb.htm#ref_2461_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2437_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2437_41" HREF="terminal_interface-curses__adb.htm#ref_2437_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                                        <FONT COLOR=red><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2437_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, C_Assume_Default_Colors, "assume_default_colors");
 
-      <FONT COLOR=red><A NAME="ref_2465_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2461_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A>),
-                                                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A>));
+      <FONT COLOR=red><A NAME="ref_2441_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2437_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1836_37">Fore</A>),
+                                                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1837_37">Back</A>));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2465_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2441_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A></FONT> <b>return</b> String
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2449_13" HREF="terminal_interface-curses__ads.htm#ref_1846_13">Curses_Version</A></FONT> <b>return</b> String
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2475_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2451_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
       <b>pragma</b> Import (C, curses_versionC, "curses_version");
-      <FONT COLOR=red><A NAME="ref_2477_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">curses_versionC</A>;
+      <FONT COLOR=red><A NAME="ref_2453_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2451_16">curses_versionC</A>;
    <b>begin</b>
-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2477_7">Result</A>);
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A>;
+      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2453_7">Result</A>);
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1846_13">Curses_Version</A>;
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2458_14" HREF="terminal_interface-curses__ads.htm#ref_1859_14">Curses_Free_All</A></FONT> <b>is</b>
+      <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_17">curses_freeall</A></FONT>;
+      <b>pragma</b> Import (C, curses_freeall, "_nc_freeall");
+   <b>begin</b>
+      <FONT COLOR=green><EM>--  Use this only for testing: you cannot use curses after calling it,</EM></FONT>
+      <FONT COLOR=green><EM>--  so it has to be the "last" thing done before exiting the program.</EM></FONT>
+      <FONT COLOR=green><EM>--  This will not really free ALL of memory used by curses.  That is</EM></FONT>
+      <FONT COLOR=green><EM>--  because it cannot free the memory used for stdout's setbuf.  The</EM></FONT>
+      <FONT COLOR=green><EM>--  _nc_free_and_exit() procedure can do that, but it can be invoked</EM></FONT>
+      <FONT COLOR=green><EM>--  safely only from C - and again, that only as the "last" thing done</EM></FONT>
+      <FONT COLOR=green><EM>--  before exiting the program.</EM></FONT>
+      <A HREF="terminal_interface-curses__adb.htm#ref_2459_17">curses_freeall</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1859_14">Curses_Free_All</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>function</b> <FONT COLOR=red><A NAME="ref_2482_13" HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2482_33" HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
+   <b>function</b> <FONT COLOR=red><A NAME="ref_2472_13" HREF="terminal_interface-curses__ads.htm#ref_1851_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2472_33" HREF="terminal_interface-curses__ads.htm#ref_1851_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2484_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2484_37" HREF="terminal_interface-curses__adb.htm#ref_2484_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2474_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2474_37" HREF="terminal_interface-curses__adb.htm#ref_2474_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, use_extended_namesC, "use_extended_names");
 
-      <FONT COLOR=red><A NAME="ref_2487_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
-         <A HREF="terminal_interface-curses__adb.htm#ref_2484_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A>)));
+      <FONT COLOR=red><A NAME="ref_2477_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
+         <A HREF="terminal_interface-curses__adb.htm#ref_2474_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1851_33">Enable</A>)));
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2487_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A>) <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2477_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>) <b>then</b>
          <b>return</b> False;
       <b>else</b>
          <b>return</b> True;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1851_13">Use_Extended_Names</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2497_14" HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2497_35" HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A></FONT> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2487_14" HREF="terminal_interface-curses__ads.htm#ref_1867_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2487_35" HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2499_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2499_26" HREF="terminal_interface-curses__adb.htm#ref_2499_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2489_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2489_26" HREF="terminal_interface-curses__adb.htm#ref_2489_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, scr_dump, "scr_dump");
-      <FONT COLOR=red><A NAME="ref_2501_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="ref_2502_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2491_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2492_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2501_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2499_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2501_7">Txt</A>) <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2491_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2489_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2491_7">Txt</A>) <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1867_14">Screen_Dump_To_File</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2510_14" HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2510_40" HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A></FONT> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2500_14" HREF="terminal_interface-curses__ads.htm#ref_1871_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2500_40" HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2512_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2512_29" HREF="terminal_interface-curses__adb.htm#ref_2512_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2502_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2502_29" HREF="terminal_interface-curses__adb.htm#ref_2502_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, scr_restore, "scr_restore");
-      <FONT COLOR=red><A NAME="ref_2514_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="ref_2515_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2504_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2505_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2514_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2512_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2514_7">Txt</A>)  <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2504_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2502_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2504_7">Txt</A>)  <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1871_14">Screen_Restore_From_File</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2523_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2523_37" HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A></FONT> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2513_14" HREF="terminal_interface-curses__ads.htm#ref_1875_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2513_37" HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2525_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2525_26" HREF="terminal_interface-curses__adb.htm#ref_2525_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2515_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2515_26" HREF="terminal_interface-curses__adb.htm#ref_2515_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, scr_init, "scr_init");
-      <FONT COLOR=red><A NAME="ref_2527_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="ref_2528_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2517_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2518_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2527_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2525_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2527_7">Txt</A>) <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2517_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2515_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2517_7">Txt</A>) <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1875_14">Screen_Init_From_File</A>;
 
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2536_14" HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2536_31" HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A></FONT> : <b>in</b> String)
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2526_14" HREF="terminal_interface-curses__ads.htm#ref_1879_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2526_31" HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A></FONT> : <b>in</b> String)
    <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2538_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2538_25" HREF="terminal_interface-curses__adb.htm#ref_2538_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2528_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2528_25" HREF="terminal_interface-curses__adb.htm#ref_2528_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, scr_set, "scr_set");
-      <FONT COLOR=red><A NAME="ref_2540_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>'Length);
-      <FONT COLOR=red><A NAME="ref_2541_7">Length</A></FONT> : size_t;
+      <FONT COLOR=red><A NAME="ref_2530_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A>'Length);
+      <FONT COLOR=red><A NAME="ref_2531_7">Length</A></FONT> : size_t;
    <b>begin</b>
-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2540_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Length</A>);
-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2538_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2540_7">Txt</A>) <b>then</b>
+      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2530_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Length</A>);
+      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2528_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2530_7">Txt</A>) <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1879_14">Screen_Set_File</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2549_14" HREF="terminal_interface-curses__ads.htm#ref_1897_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2549_22" HREF="terminal_interface-curses__ads.htm#ref_1897_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
-                     <FONT COLOR=red><A NAME="ref_2550_22" HREF="terminal_interface-curses__ads.htm#ref_1898_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
-                     <FONT COLOR=red><A NAME="ref_2551_22" HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
-      <b>function</b> <FONT COLOR=red><A NAME="ref_2552_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2552_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        <FONT COLOR=red><A NAME="ref_2553_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
-                        <FONT COLOR=red><A NAME="ref_2554_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2539_14" HREF="terminal_interface-curses__ads.htm#ref_1911_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2539_22" HREF="terminal_interface-curses__ads.htm#ref_1911_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_1912_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
+      <b>function</b> <FONT COLOR=red><A NAME="ref_2542_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2542_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+                        <FONT COLOR=red><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
       <b>pragma</b> Import (C, wresize);
    <b>begin</b>
-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2552_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1897_22">Win</A>,
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1898_22">Number_Of_Lines</A>),
-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2542_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1911_22">Win</A>,
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1912_22">Number_Of_Lines</A>),
+                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
       <b>end</b> <b>if</b>;
-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1897_14">Resize</A>;
+   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1911_14">Resize</A>;
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
 <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
diff -Naur ncurses-5.6.orig/doc/html/ada/terminal_interface-curses__ads.htm ncurses-5.6/doc/html/ada/terminal_interface-curses__ads.htm
--- ncurses-5.6.orig/doc/html/ada/terminal_interface-curses__ads.htm	2006-09-23 16:31:33.000000000 -0400
+++ ncurses-5.6/doc/html/ada/terminal_interface-curses__ads.htm	2008-06-18 06:49:44.000000000 -0400
@@ -3,7 +3,6 @@
 <BODY>
 <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
 <PRE>
-
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
@@ -13,7 +12,7 @@
 <FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --</EM></FONT>
 <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
 <FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
 <FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
@@ -41,296 +40,296 @@
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  Author:  Juergen Pfeifer, 1996</EM></FONT>
 <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
-<FONT COLOR=green><EM>--  @Revision: 1.37 @</EM></FONT>
-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Revision: 1.41 @</EM></FONT>
+<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:33:52 @</EM></FONT>
 <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 <FONT COLOR=green><EM>--  curses binding.</EM></FONT>
 <FONT COLOR=green><EM>--  This module is generated. Please don't change it manually!</EM></FONT>
 <FONT COLOR=green><EM>--  Run the generator instead.</EM></FONT>
 <FONT COLOR=green><EM>--  |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">System</A>.Storage_Elements;
-<b>with</b> Interfaces.C;   <FONT COLOR=green><EM>--  We need this for some assertions.</EM></FONT>
+<b>with</b> System.Storage_Elements;
+<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;   <FONT COLOR=green><EM>--  We need this for some assertions.</EM></FONT>
 
-<b>package</b> Terminal_Interface.Curses <b>is</b>
-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></FONT> <b>is</b>
+   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>);
    <b>pragma</b> Linker_Options ("-lncurses");
 
-   <FONT COLOR=red><A NAME="ref_54_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Major version of the library</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_55_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
-   NC_Version : <b>constant</b> String := "5.5";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Major version of the library</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 6; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.6";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
 
-   <b>type</b> Window <b>is</b> <b>private</b>;
-   Null_Window : <b>constant</b> Window;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Window</A></FONT> <b>is</b> <b>private</b>;
+   <FONT COLOR=red><A NAME="ref_58_4">Null_Window</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
 
-   <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
-   <b>type</b> Column_Position <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  column coordinate</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Column_Position</A></FONT> <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  column coordinate</EM></FONT>
 
-   <b>subtype</b> Line_Count   <b>is</b> Line_Position   <b>range</b> 1 .. Line_Position'Last;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_63_12">Line_Count</A></FONT>   <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>   <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
    <FONT COLOR=green><EM>--  Type to count lines. We do not allow null windows, so must be positive</EM></FONT>
-   <b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Column_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
    <FONT COLOR=green><EM>--  Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
 
-   <b>type</b> Key_Code <b>is</b> <b>new</b> Integer;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Key_Code</A></FONT> <b>is</b> <b>new</b> Integer;
    <FONT COLOR=green><EM>--  That is anything including real characters, special keys and logical</EM></FONT>
    <FONT COLOR=green><EM>--  request codes.</EM></FONT>
 
    <FONT COLOR=green><EM>--  FIXME: The "-1" should be Curses_Err</EM></FONT>
-   <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> -1 .. 8#777#;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Real_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> -1 .. 8#777#;
    <FONT COLOR=green><EM>--  This are the codes that potentially represent a real keystroke.</EM></FONT>
    <FONT COLOR=green><EM>--  Not all codes may be possible on a specific terminal. To check the</EM></FONT>
    <FONT COLOR=green><EM>--  availability of a special key, the Has_Key function is provided.</EM></FONT>
 
-   <b>subtype</b> Special_Key_Code <b>is</b> Real_Key_Code
-     <b>range</b> 8#400# .. Real_Key_Code'Last;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Special_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
+     <b>range</b> 8#400# .. <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>'Last;
    <FONT COLOR=green><EM>--  Type for a function- or special key number</EM></FONT>
 
-   <b>subtype</b> Normal_Key_Code <b>is</b> Real_Key_Code <b>range</b>
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_82_12">Normal_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> <b>range</b>
      Character'Pos (Character'First) .. Character'Pos (Character'Last);
    <FONT COLOR=green><EM>--  This are the codes for regular (incl. non-graphical) characters.</EM></FONT>
 
    <FONT COLOR=green><EM>--  Constants for function- and special keys</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_89_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
-   <FONT COLOR=red><A NAME="ref_90_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
-   <FONT COLOR=red><A NAME="ref_91_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
-   <FONT COLOR=red><A NAME="ref_92_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
-   <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
-   <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
-   <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
-   <FONT COLOR=red><A NAME="ref_96_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
-   <FONT COLOR=red><A NAME="ref_97_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
-   <FONT COLOR=red><A NAME="ref_98_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
-   <FONT COLOR=red><A NAME="ref_99_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
-   <FONT COLOR=red><A NAME="ref_100_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
-   <FONT COLOR=red><A NAME="ref_101_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
-   <FONT COLOR=red><A NAME="ref_102_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
-   <FONT COLOR=red><A NAME="ref_103_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
-   <FONT COLOR=red><A NAME="ref_104_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
-   <FONT COLOR=red><A NAME="ref_105_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
-   <FONT COLOR=red><A NAME="ref_106_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
-   <FONT COLOR=red><A NAME="ref_107_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
-   <FONT COLOR=red><A NAME="ref_108_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
-   <FONT COLOR=red><A NAME="ref_109_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
-   <FONT COLOR=red><A NAME="ref_110_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
-   <FONT COLOR=red><A NAME="ref_111_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
-   <FONT COLOR=red><A NAME="ref_112_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
-   <FONT COLOR=red><A NAME="ref_113_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
-   <FONT COLOR=red><A NAME="ref_114_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
-   <FONT COLOR=red><A NAME="ref_115_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
-   <FONT COLOR=red><A NAME="ref_116_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
-   <FONT COLOR=red><A NAME="ref_117_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
-   <FONT COLOR=red><A NAME="ref_118_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
-   <FONT COLOR=red><A NAME="ref_119_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
-   <FONT COLOR=red><A NAME="ref_120_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
-   <FONT COLOR=red><A NAME="ref_121_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
-   <FONT COLOR=red><A NAME="ref_122_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
-   <FONT COLOR=red><A NAME="ref_123_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
-   <FONT COLOR=red><A NAME="ref_124_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
-   <FONT COLOR=red><A NAME="ref_125_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
-   <FONT COLOR=red><A NAME="ref_126_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
-   <FONT COLOR=red><A NAME="ref_127_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
-   <FONT COLOR=red><A NAME="ref_128_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
-   <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
-   <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
-   <FONT COLOR=red><A NAME="ref_131_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
-   <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
-   <FONT COLOR=red><A NAME="ref_133_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
-   <FONT COLOR=red><A NAME="ref_134_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
-   <FONT COLOR=red><A NAME="ref_135_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
-   <FONT COLOR=red><A NAME="ref_136_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
-   <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
-   <FONT COLOR=red><A NAME="ref_138_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
-   <FONT COLOR=red><A NAME="ref_139_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
-   <FONT COLOR=red><A NAME="ref_140_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
-   <FONT COLOR=red><A NAME="ref_141_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
-   <FONT COLOR=red><A NAME="ref_142_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
-   <FONT COLOR=red><A NAME="ref_143_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
-   <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
-   <FONT COLOR=red><A NAME="ref_145_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
-   <FONT COLOR=red><A NAME="ref_146_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
-   <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
-   <FONT COLOR=red><A NAME="ref_148_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
-   <FONT COLOR=red><A NAME="ref_149_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
-   <FONT COLOR=red><A NAME="ref_150_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
-   <FONT COLOR=red><A NAME="ref_151_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
-   <FONT COLOR=red><A NAME="ref_152_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
-   <FONT COLOR=red><A NAME="ref_153_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
-   <FONT COLOR=red><A NAME="ref_154_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
-   <FONT COLOR=red><A NAME="ref_155_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
-   <FONT COLOR=red><A NAME="ref_156_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
-   <FONT COLOR=red><A NAME="ref_157_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
-   <FONT COLOR=red><A NAME="ref_158_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
-   <FONT COLOR=red><A NAME="ref_159_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
-   <FONT COLOR=red><A NAME="ref_160_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
-   <FONT COLOR=red><A NAME="ref_161_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
-   <FONT COLOR=red><A NAME="ref_162_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
-   <FONT COLOR=red><A NAME="ref_163_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
-   <FONT COLOR=red><A NAME="ref_164_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
-   <FONT COLOR=red><A NAME="ref_165_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
-   <FONT COLOR=red><A NAME="ref_166_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
-   <FONT COLOR=red><A NAME="ref_167_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
-   <FONT COLOR=red><A NAME="ref_168_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
-   <FONT COLOR=red><A NAME="ref_169_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
-   <FONT COLOR=red><A NAME="ref_170_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
-   <FONT COLOR=red><A NAME="ref_171_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
-   <FONT COLOR=red><A NAME="ref_172_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
-   <FONT COLOR=red><A NAME="ref_173_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
-   <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
-   <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
-   <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
-   <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
-   <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
-   <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
-   <FONT COLOR=red><A NAME="ref_180_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
-   <FONT COLOR=red><A NAME="ref_181_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
-   <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
-   <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
-   <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
-   <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
-   <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
-   <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
-   <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
-   <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
-   <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
-   <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
-   <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
-   <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
-   <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
-   <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
-   <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
-   <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
-   <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
-   <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
-   <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
-   <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
-   <FONT COLOR=red><A NAME="ref_202_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
-   <FONT COLOR=red><A NAME="ref_203_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
-   <FONT COLOR=red><A NAME="ref_204_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
-   <FONT COLOR=red><A NAME="ref_205_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
-   Key_Resize                     : <b>constant</b> Special_Key_Code := 8#632#;
+   <FONT COLOR=red><A NAME="ref_88_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+   <FONT COLOR=red><A NAME="ref_89_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+   <FONT COLOR=red><A NAME="ref_90_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+   <FONT COLOR=red><A NAME="ref_91_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+   <FONT COLOR=red><A NAME="ref_92_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
+   <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
+   <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
+   <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
+   <FONT COLOR=red><A NAME="ref_96_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
+   <FONT COLOR=red><A NAME="ref_97_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
+   <FONT COLOR=red><A NAME="ref_98_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
+   <FONT COLOR=red><A NAME="ref_99_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
+   <FONT COLOR=red><A NAME="ref_100_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
+   <FONT COLOR=red><A NAME="ref_101_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
+   <FONT COLOR=red><A NAME="ref_102_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
+   <FONT COLOR=red><A NAME="ref_103_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
+   <FONT COLOR=red><A NAME="ref_104_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
+   <FONT COLOR=red><A NAME="ref_105_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
+   <FONT COLOR=red><A NAME="ref_106_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
+   <FONT COLOR=red><A NAME="ref_107_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
+   <FONT COLOR=red><A NAME="ref_108_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
+   <FONT COLOR=red><A NAME="ref_109_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
+   <FONT COLOR=red><A NAME="ref_110_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
+   <FONT COLOR=red><A NAME="ref_111_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
+   <FONT COLOR=red><A NAME="ref_112_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
+   <FONT COLOR=red><A NAME="ref_113_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
+   <FONT COLOR=red><A NAME="ref_114_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
+   <FONT COLOR=red><A NAME="ref_115_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
+   <FONT COLOR=red><A NAME="ref_116_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
+   <FONT COLOR=red><A NAME="ref_117_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
+   <FONT COLOR=red><A NAME="ref_118_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
+   <FONT COLOR=red><A NAME="ref_119_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
+   <FONT COLOR=red><A NAME="ref_120_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
+   <FONT COLOR=red><A NAME="ref_121_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
+   <FONT COLOR=red><A NAME="ref_122_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
+   <FONT COLOR=red><A NAME="ref_123_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
+   <FONT COLOR=red><A NAME="ref_124_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
+   <FONT COLOR=red><A NAME="ref_125_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
+   <FONT COLOR=red><A NAME="ref_126_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
+   <FONT COLOR=red><A NAME="ref_127_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
+   <FONT COLOR=red><A NAME="ref_128_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
+   <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
+   <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
+   <FONT COLOR=red><A NAME="ref_131_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
+   <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
+   <FONT COLOR=red><A NAME="ref_133_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
+   <FONT COLOR=red><A NAME="ref_134_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
+   <FONT COLOR=red><A NAME="ref_135_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
+   <FONT COLOR=red><A NAME="ref_136_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
+   <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
+   <FONT COLOR=red><A NAME="ref_138_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
+   <FONT COLOR=red><A NAME="ref_139_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
+   <FONT COLOR=red><A NAME="ref_140_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
+   <FONT COLOR=red><A NAME="ref_141_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
+   <FONT COLOR=red><A NAME="ref_142_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
+   <FONT COLOR=red><A NAME="ref_143_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
+   <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
+   <FONT COLOR=red><A NAME="ref_145_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
+   <FONT COLOR=red><A NAME="ref_146_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
+   <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
+   <FONT COLOR=red><A NAME="ref_148_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
+   <FONT COLOR=red><A NAME="ref_149_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
+   <FONT COLOR=red><A NAME="ref_150_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
+   <FONT COLOR=red><A NAME="ref_151_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
+   <FONT COLOR=red><A NAME="ref_152_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
+   <FONT COLOR=red><A NAME="ref_153_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
+   <FONT COLOR=red><A NAME="ref_154_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
+   <FONT COLOR=red><A NAME="ref_155_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
+   <FONT COLOR=red><A NAME="ref_156_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
+   <FONT COLOR=red><A NAME="ref_157_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
+   <FONT COLOR=red><A NAME="ref_158_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
+   <FONT COLOR=red><A NAME="ref_159_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
+   <FONT COLOR=red><A NAME="ref_160_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
+   <FONT COLOR=red><A NAME="ref_161_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
+   <FONT COLOR=red><A NAME="ref_162_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
+   <FONT COLOR=red><A NAME="ref_163_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
+   <FONT COLOR=red><A NAME="ref_164_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
+   <FONT COLOR=red><A NAME="ref_165_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
+   <FONT COLOR=red><A NAME="ref_166_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
+   <FONT COLOR=red><A NAME="ref_167_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
+   <FONT COLOR=red><A NAME="ref_168_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
+   <FONT COLOR=red><A NAME="ref_169_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
+   <FONT COLOR=red><A NAME="ref_170_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
+   <FONT COLOR=red><A NAME="ref_171_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
+   <FONT COLOR=red><A NAME="ref_172_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
+   <FONT COLOR=red><A NAME="ref_173_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
+   <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
+   <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
+   <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
+   <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
+   <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
+   <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
+   <FONT COLOR=red><A NAME="ref_180_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
+   <FONT COLOR=red><A NAME="ref_181_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
+   <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
+   <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
+   <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
+   <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
+   <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
+   <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
+   <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
+   <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
+   <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
+   <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
+   <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
+   <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
+   <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
+   <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
+   <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
+   <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
+   <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
+   <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
+   <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
+   <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
+   <FONT COLOR=red><A NAME="ref_202_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
+   <FONT COLOR=red><A NAME="ref_203_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
+   <FONT COLOR=red><A NAME="ref_204_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
+   <FONT COLOR=red><A NAME="ref_205_4">Key_Resize</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#632#;
 
-   Key_Max                        : <b>constant</b> Special_Key_Code
-     := Special_Key_Code'Last;
+   <FONT COLOR=red><A NAME="ref_207_4">Key_Max</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>
+     := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>'Last;
 
-   <b>subtype</b> User_Key_Code <b>is</b> Key_Code
-     <b>range</b> (Key_Max + 129) .. Key_Code'Last;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_210_12">User_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
+     <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>'Last;
    <FONT COLOR=green><EM>--  This is reserved for user defined key codes. The range between Key_Max</EM></FONT>
    <FONT COLOR=green><EM>--  and the first user code is reserved for subsystems like menu and forms.</EM></FONT>
 
    <FONT COLOR=green><EM>--  For those who like to use the original key names we produce them were</EM></FONT>
    <FONT COLOR=green><EM>--  they differ from the original. Please note that they may differ in</EM></FONT>
    <FONT COLOR=green><EM>--  lower/upper case.</EM></FONT>
-   KEY_DOWN         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Down</A>;
-   KEY_UP           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Up</A>;
-   KEY_LEFT         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Left</A>;
-   KEY_RIGHT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Cursor_Right</A>;
-   KEY_DL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Delete_Line</A>;
-   KEY_IL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Insert_Line</A>;
-   KEY_DC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Delete_Char</A>;
-   KEY_IC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Insert_Char</A>;
-   KEY_EIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Exit_Insert_Mode</A>;
-   KEY_CLEAR        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_Screen</A>;
-   KEY_EOS          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Screen</A>;
-   KEY_EOL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Clear_End_Of_Line</A>;
-   KEY_SF           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Forward</A>;
-   KEY_SR           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Scroll_1_Backward</A>;
-   KEY_NPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Next_Page</A>;
-   KEY_PPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Previous_Page</A>;
-   KEY_STAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Set_Tab</A>;
-   KEY_CTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_Tab</A>;
-   KEY_CATAB        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Clear_All_Tabs</A>;
-   KEY_ENTER        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Enter_Or_Send</A>;
-   KEY_SRESET       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Soft_Reset</A>;
-   KEY_LL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Bottom</A>;
-   KEY_A1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Left_Of_Keypad</A>;
-   KEY_A3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Upper_Right_Of_Keypad</A>;
-   KEY_B2           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Center_Of_Keypad</A>;
-   KEY_C1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Left_Of_Keypad</A>;
-   KEY_C3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Lower_Right_Of_Keypad</A>;
-   KEY_BTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Back_Tab</A>;
-   KEY_BEG          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Beginning</A>;
-   KEY_SBEG         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Begin</A>;
-   KEY_SCANCEL      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Cancel</A>;
-   KEY_SCOMMAND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Command</A>;
-   KEY_SCOPY        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Copy</A>;
-   KEY_SCREATE      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Create</A>;
-   KEY_SDC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Char</A>;
-   KEY_SDL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_Delete_Line</A>;
-   KEY_SEND         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_End</A>;
-   KEY_SEOL         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Clear_End_Of_Line</A>;
-   KEY_SEXIT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Exit</A>;
-   KEY_SFIND        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Find</A>;
-   KEY_SHELP        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Help</A>;
-   KEY_SHOME        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Home</A>;
-   KEY_SIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Insert_Char</A>;
-   KEY_SLEFT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Cursor_Left</A>;
-   KEY_SMESSAGE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Message</A>;
-   KEY_SMOVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Move</A>;
-   KEY_SNEXT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Next_Page</A>;
-   KEY_SOPTIONS     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Options</A>;
-   KEY_SPREVIOUS    : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Previous_Page</A>;
-   KEY_SPRINT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Print</A>;
-   KEY_SREDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Redo</A>;
-   KEY_SREPLACE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Replace</A>;
-   KEY_SRIGHT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Cursor_Right</A>;
-   KEY_SRSUME       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Resume</A>;
-   KEY_SSAVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Save</A>;
-   KEY_SSUSPEND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Suspend</A>;
-   KEY_SUNDO        : Special_Key_Code <b>renames</b> Key_Shift_Undo;
+   KEY_DOWN         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_92_4">Key_Cursor_Down</A>;
+   KEY_UP           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Up</A>;
+   KEY_LEFT         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Left</A>;
+   KEY_RIGHT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Right</A>;
+   KEY_DL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Delete_Line</A>;
+   KEY_IL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Insert_Line</A>;
+   KEY_DC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Delete_Char</A>;
+   KEY_IC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Insert_Char</A>;
+   KEY_EIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Exit_Insert_Mode</A>;
+   KEY_CLEAR        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Clear_Screen</A>;
+   KEY_EOS          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_End_Of_Screen</A>;
+   KEY_EOL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Line</A>;
+   KEY_SF           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Scroll_1_Forward</A>;
+   KEY_SR           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Backward</A>;
+   KEY_NPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Next_Page</A>;
+   KEY_PPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Previous_Page</A>;
+   KEY_STAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Set_Tab</A>;
+   KEY_CTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Clear_Tab</A>;
+   KEY_CATAB        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_All_Tabs</A>;
+   KEY_ENTER        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Enter_Or_Send</A>;
+   KEY_SRESET       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Soft_Reset</A>;
+   KEY_LL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Bottom</A>;
+   KEY_A1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Upper_Left_Of_Keypad</A>;
+   KEY_A3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Right_Of_Keypad</A>;
+   KEY_B2           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Center_Of_Keypad</A>;
+   KEY_C1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Lower_Left_Of_Keypad</A>;
+   KEY_C3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Right_Of_Keypad</A>;
+   KEY_BTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Back_Tab</A>;
+   KEY_BEG          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Beginning</A>;
+   KEY_SBEG         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Shift_Begin</A>;
+   KEY_SCANCEL      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Cancel</A>;
+   KEY_SCOMMAND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Command</A>;
+   KEY_SCOPY        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Copy</A>;
+   KEY_SCREATE      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Create</A>;
+   KEY_SDC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Delete_Char</A>;
+   KEY_SDL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Line</A>;
+   KEY_SEND         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_End</A>;
+   KEY_SEOL         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_Clear_End_Of_Line</A>;
+   KEY_SEXIT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Exit</A>;
+   KEY_SFIND        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Find</A>;
+   KEY_SHELP        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Help</A>;
+   KEY_SHOME        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Home</A>;
+   KEY_SIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Insert_Char</A>;
+   KEY_SLEFT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Cursor_Left</A>;
+   KEY_SMESSAGE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Message</A>;
+   KEY_SMOVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Move</A>;
+   KEY_SNEXT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Next_Page</A>;
+   KEY_SOPTIONS     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Options</A>;
+   KEY_SPREVIOUS    : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Previous_Page</A>;
+   KEY_SPRINT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Print</A>;
+   KEY_SREDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Redo</A>;
+   KEY_SREPLACE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Replace</A>;
+   KEY_SRIGHT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Cursor_Right</A>;
+   KEY_SRSUME       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Resume</A>;
+   KEY_SSAVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Save</A>;
+   KEY_SSUSPEND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Suspend</A>;
+   KEY_SUNDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Undo</A>;
 
 <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_278_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_38_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
-   <b>for</b> Color_Number'Size <b>use</b> Interfaces.C.short'Size;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
    <FONT COLOR=green><EM>--  (n)curses uses a short for the color index</EM></FONT>
    <FONT COLOR=green><EM>--  The model is, that a Color_Number is an index into an array of</EM></FONT>
    <FONT COLOR=green><EM>--  (potentially) definable colors. Some of those indices are</EM></FONT>
    <FONT COLOR=green><EM>--  predefined (see below), although they may not really exist.</EM></FONT>
 
-   <FONT COLOR=red><A NAME="ref_286_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
-   <FONT COLOR=red><A NAME="ref_287_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
-   <FONT COLOR=red><A NAME="ref_288_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
-   <FONT COLOR=red><A NAME="ref_289_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
-   <FONT COLOR=red><A NAME="ref_290_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
-   <FONT COLOR=red><A NAME="ref_291_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
-   <FONT COLOR=red><A NAME="ref_292_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
-   <FONT COLOR=red><A NAME="ref_293_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
-   White            : <b>constant</b> Color_Number := 7;
+   <FONT COLOR=red><A NAME="ref_285_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
+   <FONT COLOR=red><A NAME="ref_286_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
+   <FONT COLOR=red><A NAME="ref_287_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
+   <FONT COLOR=red><A NAME="ref_288_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
+   <FONT COLOR=red><A NAME="ref_289_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
+   <FONT COLOR=red><A NAME="ref_290_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
+   <FONT COLOR=red><A NAME="ref_291_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
+   <FONT COLOR=red><A NAME="ref_292_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
+   <FONT COLOR=red><A NAME="ref_293_4">White</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7;
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_295_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_38_9"> </A>0 .. Integer (Interfaces.C.short'Last);
-   <b>for</b> RGB_Value'Size <b>use</b> Interfaces.C.short'Size;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
    <FONT COLOR=green><EM>--  Some system may allow to redefine a color by setting RGB values.</EM></FONT>
 
-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_299_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
-   <b>for</b> Color_Pair'Size <b>use</b> 8;
-   <b>subtype</b> Redefinable_Color_Pair <b>is</b> Color_Pair <b>range</b> 1 .. 255;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_299_9">Color_Pair</A></FONT> <b>is</b> <b>range</b> 0 .. 255;
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'Size <b>use</b> 8;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_301_12">Redefinable_Color_Pair</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> <b>range</b> 1 .. 255;
    <FONT COLOR=green><EM>--  (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT>
    <FONT COLOR=green><EM>--  is fixed (Black &amp; White). A color pair is simply a combination of</EM></FONT>
    <FONT COLOR=green><EM>--  two colors described by Color_Numbers, one for the foreground and</EM></FONT>
    <FONT COLOR=green><EM>--  the other for the background</EM></FONT>
 
-   <b>type</b> Character_Attribute_Set <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_307_9">Character_Attribute_Set</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_310_10">Stand_Out</A></FONT>               : Boolean;
-         <FONT COLOR=red><A NAME="ref_311_10">Under_Line</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="ref_312_10">Reverse_Video</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="ref_313_10">Blink</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="ref_314_10">Dim_Character</A></FONT>           : Boolean;
-         <FONT COLOR=red><A NAME="ref_315_10">Bold_Character</A></FONT>          : Boolean;
-         <FONT COLOR=red><A NAME="ref_316_10">Alternate_Character_Set</A></FONT> : Boolean;
-         <FONT COLOR=red><A NAME="ref_317_10">Invisible_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_318_10">Protected_Character</A></FONT>     : Boolean;
-         <FONT COLOR=red><A NAME="ref_319_10">Horizontal</A></FONT>              : Boolean;
-         <FONT COLOR=red><A NAME="ref_320_10">Left</A></FONT>                    : Boolean;
-         <FONT COLOR=red><A NAME="ref_321_10">Low</A></FONT>                     : Boolean;
-         <FONT COLOR=red><A NAME="ref_322_10">Right</A></FONT>                   : Boolean;
-         <FONT COLOR=red><A NAME="ref_323_10">Top</A></FONT>                     : Boolean;
-         Vertical                : Boolean;
+         <FONT COLOR=red><A NAME="ref_309_10">Stand_Out</A></FONT>               : Boolean;
+         <FONT COLOR=red><A NAME="ref_310_10">Under_Line</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="ref_311_10">Reverse_Video</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_312_10">Blink</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="ref_313_10">Dim_Character</A></FONT>           : Boolean;
+         <FONT COLOR=red><A NAME="ref_314_10">Bold_Character</A></FONT>          : Boolean;
+         <FONT COLOR=red><A NAME="ref_315_10">Alternate_Character_Set</A></FONT> : Boolean;
+         <FONT COLOR=red><A NAME="ref_316_10">Invisible_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_317_10">Protected_Character</A></FONT>     : Boolean;
+         <FONT COLOR=red><A NAME="ref_318_10">Horizontal</A></FONT>              : Boolean;
+         <FONT COLOR=red><A NAME="ref_319_10">Left</A></FONT>                    : Boolean;
+         <FONT COLOR=red><A NAME="ref_320_10">Low</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="ref_321_10">Right</A></FONT>                   : Boolean;
+         <FONT COLOR=red><A NAME="ref_322_10">Top</A></FONT>                     : Boolean;
+         <FONT COLOR=red><A NAME="ref_323_10">Vertical</A></FONT>                : Boolean;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Character_Attribute_Set);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
 
-   <b>for</b> Character_Attribute_Set <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> <b>use</b>
       <b>record</b>
          Stand_Out               <b>at</b> 0 <b>range</b>  0 ..  0;
          Under_Line              <b>at</b> 0 <b>range</b>  1 ..  1;
@@ -348,64 +347,64 @@
          Top                     <b>at</b> 0 <b>range</b> 13 .. 13;
          Vertical                <b>at</b> 0 <b>range</b> 14 .. 14;
       <b>end</b> <b>record</b>;
-   <b>for</b> Character_Attribute_Set'Size <b>use</b> 16;
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>'Size <b>use</b> 16;
    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
    <FONT COLOR=green><EM>--  (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT>
 
-   Normal_Video : <b>constant</b> Character_Attribute_Set := (<b>others</b> =&gt; False);
+   <FONT COLOR=red><A NAME="ref_350_4">Normal_Video</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False);
 
-   <b>type</b> Attributed_Character <b>is</b>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_352_9">Attributed_Character</A></FONT> <b>is</b>
       <b>record</b>
-         <FONT COLOR=red><A NAME="ref_355_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
-         <FONT COLOR=red><A NAME="ref_356_10">Color</A></FONT> : Color_Pair;
-         Ch    : Character;
+         <FONT COLOR=red><A NAME="ref_354_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+         <FONT COLOR=red><A NAME="ref_355_10">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+         <FONT COLOR=red><A NAME="ref_356_10">Ch</A></FONT>    : Character;
       <b>end</b> <b>record</b>;
-   <b>pragma</b> Convention (C, Attributed_Character);
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  This is the counterpart for the chtype in C.</EM></FONT>
 
-   <b>for</b> Attributed_Character <b>use</b>
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> <b>use</b>
       <b>record</b>
          Ch    <b>at</b> 0 <b>range</b>  0 ..  7;
          Color <b>at</b> 0 <b>range</b>  8 .. 15;
          Attr  <b>at</b> 0 <b>range</b> 16 .. 31;
       <b>end</b> <b>record</b>;
-   <b>for</b> Attributed_Character'Size <b>use</b> 32;
+   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'Size <b>use</b> 32;
       <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
 
-   Default_Character : <b>constant</b> Attributed_Character
-     := (<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character</A>'First,
-         <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Color</A> =&gt; Color_Pair'First,
-         Attr  =&gt; (<b>others</b> =&gt; False));  <FONT COLOR=green><EM>--  preelaboratable Normal_Video</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_371_4">Default_Character</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
+     := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+         <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+         <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; (<b>others</b> =&gt; False));  <FONT COLOR=green><EM>--  preelaboratable Normal_Video</EM></FONT>
 
-   <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> Attributed_Character;
-   <b>pragma</b> Pack (Attributed_String);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_376_9">Attributed_String</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+   <b>pragma</b> Pack (<A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>);
    <FONT COLOR=green><EM>--  In this binding we allow strings of attributed characters.</EM></FONT>
 
    <FONT COLOR=green><EM>------------------</EM></FONT>
    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
    <FONT COLOR=green><EM>------------------</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_384_4">Curses_Exception</A></FONT>     : <b>exception</b>;
-   Wrong_Curses_Version : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_383_4">Curses_Exception</A></FONT>     : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_384_4">Wrong_Curses_Version</A></FONT> : <b>exception</b>;
 
    <FONT COLOR=green><EM>--  Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
    <FONT COLOR=green><EM>--  subpackets for Menu and Forms handling.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_390_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_391_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_392_4">Eti_Posted</A></FONT>          : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_393_4">Eti_Connected</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_394_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_395_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_396_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_397_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_398_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_401_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
-   <FONT COLOR=red><A NAME="ref_402_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
-   Eti_Current         : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_389_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_390_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_391_4">Eti_Posted</A></FONT>          : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_392_4">Eti_Connected</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_393_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_394_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_395_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_396_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_397_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_398_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_400_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_401_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
+   <FONT COLOR=red><A NAME="ref_402_4">Eti_Current</A></FONT>         : <b>exception</b>;
 
    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
    <FONT COLOR=green><EM>--  External C variables</EM></FONT>
@@ -415,28 +414,29 @@
    <FONT COLOR=green><EM>--  this is to use functions.</EM></FONT>
    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
 
-   <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#ref_412_13"> </A>          <b>return</b> Line_Count;
-   <b>pragma</b> Inline (Lines);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_412_13" HREF="terminal_interface-curses__adb.htm#ref_2354_13">Lines</A></FONT>            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>);
 
-   <b>function</b> Columns          <b>return</b> Column_Count;
-   <b>pragma</b> Inline (Columns);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_415_13" HREF="terminal_interface-curses__adb.htm#ref_2362_13">Columns</A></FONT>          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>);
 
-   <b>function</b> Tab_Size         <b>return</b> Natural;
-   <b>pragma</b> Inline (Tab_Size);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_418_13" HREF="terminal_interface-curses__adb.htm#ref_2370_13">Tab_Size</A></FONT>         <b>return</b> Natural;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>);
 
-   <b>function</b> Number_Of_Colors <b>return</b> Natural;
-   <b>pragma</b> Inline (Number_Of_Colors);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_421_13" HREF="terminal_interface-curses__adb.htm#ref_2378_13">Number_Of_Colors</A></FONT> <b>return</b> Natural;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>);
 
-   <b>function</b> Number_Of_Color_Pairs <b>return</b> Natural;
-   <b>pragma</b> Inline (Number_Of_Color_Pairs);
+   <b>function</b> <FONT COLOR=red><A NAME="ref_424_13" HREF="terminal_interface-curses__adb.htm#ref_2386_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>);
 
-   ACS_Map : <b>array</b> (Character'Val (0) .. Character'Val (127)) <b>of</b>
-     Attributed_Character;
-   <b>pragma</b> Import (C, ACS_Map, "acs_map");
+   <b>type</b> <FONT COLOR=red><A NAME="ref_427_9">C_ACS_Map</A></FONT> <b>is</b> <b>array</b> (Character'Val (0) .. Character'Val (127))
+        <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+   <FONT COLOR=red><A NAME="ref_429_4">ACS_Map</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_427_9">C_ACS_Map</A>;
+   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__ads.htm#ref_429_4">ACS_Map</A>, "acs_map");
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=green><EM>--  Constants for several characters from the Alternate Character Set</EM></FONT>
-   <FONT COLOR=green><EM>--  You must use this constants as indices into the ACS_Map array</EM></FONT>
+   <FONT COLOR=green><EM>--  You must use these constants as indices into the ACS_Map array</EM></FONT>
    <FONT COLOR=green><EM>--  to get the corresponding attributed character at runtime.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
    <FONT COLOR=red><A NAME="ref_437_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
@@ -470,93 +470,98 @@
    <FONT COLOR=red><A NAME="ref_465_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
    <FONT COLOR=red><A NAME="ref_466_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
    <FONT COLOR=red><A NAME="ref_467_4">ACS_Not_Equal</A></FONT>            : <b>constant</b> Character := '|';
-   ACS_Sterling             : <b>constant</b> Character := '}';
+   <FONT COLOR=red><A NAME="ref_468_4">ACS_Sterling</A></FONT>             : <b>constant</b> Character := '}';
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen, curscr</EM></FONT>
+   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen</EM></FONT>
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
-   <b>function</b> Standard_Window <b>return</b> Window;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_476_13" HREF="terminal_interface-curses__adb.htm#ref_2338_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT>
-   <b>pragma</b> Inline (Standard_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
-   <b>procedure</b> Init_Screen;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_481_13" HREF="terminal_interface-curses__adb.htm#ref_2346_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A>);
 
    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
-   <b>procedure</b> Init_Windows <b>renames</b> Init_Screen;
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_486_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></FONT>;
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_489_14">Init_Windows</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></FONT>
-   <b>pragma</b> Inline (Init_Screen);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>);
    <FONT COLOR=green><EM>--  pragma Inline (Init_Windows);</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
-   <b>procedure</b> End_Windows;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_495_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
-   <b>procedure</b> End_Screen <b>renames</b> End_Windows;
-   <b>pragma</b> Inline (End_Windows);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14">End_Screen</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>;
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>);
    <FONT COLOR=green><EM>--  pragma Inline (End_Screen);</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
-   <b>function</b> Is_End_Window <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_502_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Is_End_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
-   <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses__adb.htm#ref_187_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                          <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses__adb.htm#ref_188_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                          Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_511_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_511_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                          <FONT COLOR=red><A NAME="ref_512_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_513_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: move()</EM></FONT>
-   <b>pragma</b> Inline (Move_Cursor);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_518_19" HREF="terminal_interface-curses__adb.htm#ref_202_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-                  Ch  :  <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_523_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_524_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></FONT>  :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: addch()</EM></FONT>
 
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_214_19">Win</A></FONT> :  <b>in</b> Window := Standard_Window;
-                  Ch  :  <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_528_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_528_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_529_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></FONT>  :  <b>in</b> Character);
    <FONT COLOR=green><EM>--  Add a single character at the current logical cursor position to</EM></FONT>
    <FONT COLOR=green><EM>--  the window. Use the current windows attributes.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
-   <b>procedure</b> Add
-     (<FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__adb.htm#ref_225_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_531_7" HREF="terminal_interface-curses__adb.htm#ref_226_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_532_7" HREF="terminal_interface-curses__adb.htm#ref_227_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
-      Ch     : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_534_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_535_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_536_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_537_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvaddch()</EM></FONT>
 
-   <b>procedure</b> Add
-     (<FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_244_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_245_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_246_7">Column</A></FONT> : <b>in</b> Column_Position;
-      Ch     : <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_542_14" HREF="terminal_interface-curses__adb.htm#ref_189_14">Add</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_543_7" HREF="terminal_interface-curses__adb.htm#ref_190_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_544_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_545_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_546_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Ch</A></FONT>     : <b>in</b> Character);
    <FONT COLOR=green><EM>--  Move to the position and add a single character into the window</EM></FONT>
    <FONT COLOR=green><EM>--  There are more Add routines, so the Inline pragma follows later</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
-   <b>procedure</b> Add_With_Immediate_Echo
-     (<FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_259_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-      Ch  : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses__adb.htm#ref_204_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_552_7" HREF="terminal_interface-curses__adb.htm#ref_205_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: echochar()</EM></FONT>
 
-   <b>procedure</b> Add_With_Immediate_Echo
-     (<FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_272_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-      Ch  : <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_557_14" HREF="terminal_interface-curses__adb.htm#ref_217_14">Add_With_Immediate_Echo</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__adb.htm#ref_218_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_559_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Ch</A></FONT>  : <b>in</b> Character);
    <FONT COLOR=green><EM>--  Add a character and do an immediate refresh of the screen.</EM></FONT>
    <b>pragma</b> Inline (Add_With_Immediate_Echo);
 
@@ -565,105 +570,105 @@
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  Not Implemented: wcursyncup</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
-   <b>function</b> Create
-     (<FONT COLOR=red><A NAME="ref_565_7" HREF="terminal_interface-curses__adb.htm#ref_283_21">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_566_7" HREF="terminal_interface-curses__adb.htm#ref_284_21">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_567_7" HREF="terminal_interface-curses__adb.htm#ref_285_21">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      First_Column_Position : Column_Position) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__adb.htm#ref_229_13">Create</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_570_7" HREF="terminal_interface-curses__adb.htm#ref_229_21">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_571_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_572_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_573_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></FONT>
    <FONT COLOR=green><EM>--  the C version lets them be 0, see the man page.</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Create);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>);
 
    <b>function</b> New_Window
-     (<FONT COLOR=red><A NAME="ref_575_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_576_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_577_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      First_Column_Position : Column_Position) <b>return</b> Window
-     <b>renames</b> Create;
+     (<FONT COLOR=red><A NAME="ref_580_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_581_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_582_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_583_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+     <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>;
    <FONT COLOR=green><EM>--  pragma Inline (New_Window);</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
-   <b>procedure</b> Delete (Win : <b>in</b> <b>out</b> Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__adb.htm#ref_252_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_588_22" HREF="terminal_interface-curses__adb.htm#ref_252_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Reset Win to Null_Window</EM></FONT>
-   <b>pragma</b> Inline (Delete);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
-   <b>function</b> Sub_Window
-     (<FONT COLOR=red><A NAME="ref_590_7" HREF="terminal_interface-curses__adb.htm#ref_318_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_591_7" HREF="terminal_interface-curses__adb.htm#ref_319_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_592_7" HREF="terminal_interface-curses__adb.htm#ref_320_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_593_7" HREF="terminal_interface-curses__adb.htm#ref_321_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      First_Column_Position : Column_Position) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_594_13" HREF="terminal_interface-curses__adb.htm#ref_263_13">Sub_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_595_7" HREF="terminal_interface-curses__adb.htm#ref_264_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_596_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_597_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_598_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_599_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Sub_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
-   <b>function</b> Derived_Window
-     (<FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_346_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_347_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_602_7" HREF="terminal_interface-curses__adb.htm#ref_348_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_603_7" HREF="terminal_interface-curses__adb.htm#ref_349_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      First_Column_Position : Column_Position) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_604_13" HREF="terminal_interface-curses__adb.htm#ref_291_13">Derived_Window</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_605_7" HREF="terminal_interface-curses__adb.htm#ref_292_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_606_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Derived_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
-   <b>function</b> Duplicate (Win : Window) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_614_13" HREF="terminal_interface-curses__adb.htm#ref_319_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses__adb.htm#ref_319_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Duplicate);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
-   <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="ref_614_27" HREF="terminal_interface-curses__adb.htm#ref_386_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-                          <FONT COLOR=red><A NAME="ref_615_27" HREF="terminal_interface-curses__adb.htm#ref_387_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                          Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_619_14" HREF="terminal_interface-curses__adb.htm#ref_332_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_619_27" HREF="terminal_interface-curses__adb.htm#ref_332_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                          <FONT COLOR=red><A NAME="ref_620_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                          <FONT COLOR=red><A NAME="ref_621_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Move_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
-   <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="ref_621_35" HREF="terminal_interface-curses__adb.htm#ref_400_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-                                  <FONT COLOR=red><A NAME="ref_622_35" HREF="terminal_interface-curses__adb.htm#ref_401_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                                  Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_626_14" HREF="terminal_interface-curses__adb.htm#ref_346_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_35" HREF="terminal_interface-curses__adb.htm#ref_346_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_627_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_628_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Move_Derived_Window);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
-   <b>procedure</b> Synchronize_Upwards (Win : <b>in</b> Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_633_14">Synchronize_Upwards</A></FONT> (<FONT COLOR=red><A NAME="ref_633_35" HREF="terminal_interface-curses__ads.htm#ref_633_14">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT>
    <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
-   <b>procedure</b> Synchronize_Downwards (Win : <b>in</b> Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14">Synchronize_Downwards</A></FONT> (<FONT COLOR=red><A NAME="ref_638_37" HREF="terminal_interface-curses__ads.htm#ref_638_14">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></FONT>
    <b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
-   <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="ref_638_30" HREF="terminal_interface-curses__adb.htm#ref_414_30">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
-                             Mode : <b>in</b> Boolean := False);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_643_14" HREF="terminal_interface-curses__adb.htm#ref_360_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_643_30" HREF="terminal_interface-curses__adb.htm#ref_360_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                             <FONT COLOR=red><A NAME="ref_644_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Mode</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Synch_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_648_19" HREF="terminal_interface-curses__adb.htm#ref_426_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_649_19" HREF="terminal_interface-curses__adb.htm#ref_427_19">Str</A></FONT> : <b>in</b> String;
-                  Len : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses__adb.htm#ref_372_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_653_19" HREF="terminal_interface-curses__adb.htm#ref_372_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_654_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Str</A></FONT> : <b>in</b> String;
+                  <FONT COLOR=red><A NAME="ref_655_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Len</A></FONT> : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: waddstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: addnstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: addstr()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_445_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_658_19" HREF="terminal_interface-curses__adb.htm#ref_446_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="ref_659_19" HREF="terminal_interface-curses__adb.htm#ref_447_7">Column</A></FONT> : <b>in</b> Column_Position;
-                  <FONT COLOR=red><A NAME="ref_660_19" HREF="terminal_interface-curses__adb.htm#ref_448_7">Str</A></FONT>    : <b>in</b> String;
-                  Len    : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses__adb.htm#ref_390_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_662_19" HREF="terminal_interface-curses__adb.htm#ref_391_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_663_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_664_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_665_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Str</A></FONT>    : <b>in</b> String;
+                  <FONT COLOR=red><A NAME="ref_666_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Len</A></FONT>    : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwaddstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvaddnstr()</EM></FONT>
@@ -673,21 +678,21 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_672_19" HREF="terminal_interface-curses__adb.htm#ref_457_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_673_19" HREF="terminal_interface-curses__adb.htm#ref_458_7">Str</A></FONT> : <b>in</b> Attributed_String;
-                  Len : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_677_14" HREF="terminal_interface-curses__adb.htm#ref_402_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_677_19" HREF="terminal_interface-curses__adb.htm#ref_403_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_678_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+                  <FONT COLOR=red><A NAME="ref_679_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Len</A></FONT> : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: waddchstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: addchnstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: addchstr()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_480_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_682_19" HREF="terminal_interface-curses__adb.htm#ref_481_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="ref_683_19" HREF="terminal_interface-curses__adb.htm#ref_482_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
-                  <FONT COLOR=red><A NAME="ref_684_19" HREF="terminal_interface-curses__adb.htm#ref_483_7">Str</A></FONT>    : <b>in</b> Attributed_String;
-                  Len    : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_686_14" HREF="terminal_interface-curses__adb.htm#ref_425_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_686_19" HREF="terminal_interface-curses__adb.htm#ref_426_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_687_19" HREF="terminal_interface-curses__adb.htm#ref_427_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_688_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_689_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+                  <FONT COLOR=red><A NAME="ref_690_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Len</A></FONT>    : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwaddchstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvaddchnstr()</EM></FONT>
@@ -700,92 +705,92 @@
    <FONT COLOR=green><EM>--  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline</EM></FONT>
    <FONT COLOR=green><EM>--  | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
-   <b>procedure</b> Border
-     (<FONT COLOR=red><A NAME="ref_700_7" HREF="terminal_interface-curses__adb.htm#ref_492_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_701_7" HREF="terminal_interface-curses__adb.htm#ref_493_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_702_7" HREF="terminal_interface-curses__adb.htm#ref_494_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_703_7" HREF="terminal_interface-curses__adb.htm#ref_495_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_704_7" HREF="terminal_interface-curses__adb.htm#ref_496_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_497_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_498_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_499_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      Lower_Right_Corner_Symbol : <b>in</b> Attributed_Character := Default_Character
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_704_14" HREF="terminal_interface-curses__adb.htm#ref_437_14">Border</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_438_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_439_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_710_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_711_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_712_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>
      );
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: border()</EM></FONT>
-   <b>pragma</b> Inline (Border);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
-   <b>procedure</b> Box
-     (<FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_529_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__adb.htm#ref_530_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
-      Horizontal_Symbol : <b>in</b> Attributed_Character := Default_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_720_14" HREF="terminal_interface-curses__adb.htm#ref_474_14">Box</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_721_7" HREF="terminal_interface-curses__adb.htm#ref_475_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_722_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+      <FONT COLOR=red><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT>
-   <b>pragma</b> Inline (Box);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
-   <b>procedure</b> Horizontal_Line
-     (<FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_540_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_541_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
-      Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_728_14" HREF="terminal_interface-curses__adb.htm#ref_485_14">Horizontal_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_729_7" HREF="terminal_interface-curses__adb.htm#ref_486_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_730_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_731_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: hline()</EM></FONT>
-   <b>pragma</b> Inline (Horizontal_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
-   <b>procedure</b> Vertical_Line
-     (<FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_557_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_734_7" HREF="terminal_interface-curses__adb.htm#ref_558_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
-      Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_737_14" HREF="terminal_interface-curses__adb.htm#ref_502_14">Vertical_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__adb.htm#ref_503_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__adb.htm#ref_504_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+      <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: vline()</EM></FONT>
-   <b>pragma</b> Inline (Vertical_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  Not implemented: mvgetch, mvwgetch</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
-   <b>function</b> Get_Keystroke (Win : Window := Standard_Window)
-                           <b>return</b> Real_Key_Code;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_751_13" HREF="terminal_interface-curses__adb.htm#ref_520_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_751_28" HREF="terminal_interface-curses__adb.htm#ref_520_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                           <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: getch()</EM></FONT>
    <FONT COLOR=green><EM>--  Get a character from the keyboard and echo it - if enabled - to the</EM></FONT>
    <FONT COLOR=green><EM>--  window.</EM></FONT>
    <FONT COLOR=green><EM>--  If for any reason (i.e. a timeout) we couldn't get a character the</EM></FONT>
    <FONT COLOR=green><EM>--  returned keycode is Key_None.</EM></FONT>
-   <b>pragma</b> Inline (Get_Keystroke);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
-   <b>procedure</b> Undo_Keystroke (Key : <b>in</b> Real_Key_Code);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_762_14" HREF="terminal_interface-curses__adb.htm#ref_535_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_762_30" HREF="terminal_interface-curses__adb.htm#ref_535_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT>
-   <b>pragma</b> Inline (Undo_Keystroke);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
-   <b>function</b> Has_Key (Key : Special_Key_Code) <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_767_13" HREF="terminal_interface-curses__adb.htm#ref_545_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_767_22" HREF="terminal_interface-curses__adb.htm#ref_545_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT>
-   <b>pragma</b> Inline (Has_Key);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A>);
 
    <FONT COLOR=green><EM>--  |</EM></FONT>
    <FONT COLOR=green><EM>--  | Some helper functions</EM></FONT>
    <FONT COLOR=green><EM>--  |</EM></FONT>
-   <b>function</b> Is_Function_Key (Key : Special_Key_Code) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_774_13" HREF="terminal_interface-curses__adb.htm#ref_557_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_774_30" HREF="terminal_interface-curses__adb.htm#ref_557_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT>
-   <b>pragma</b> Inline (Is_Function_Key);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A>);
 
-   <b>subtype</b> Function_Key_Number <b>is</b> Integer <b>range</b> 0 .. 63;
+   <b>subtype</b> <FONT COLOR=red><A NAME="ref_778_12">Function_Key_Number</A></FONT> <b>is</b> Integer <b>range</b> 0 .. 63;
    <FONT COLOR=green><EM>--  (n)curses allows for 64 function keys.</EM></FONT>
 
-   <b>function</b> Function_Key (Key : Real_Key_Code) <b>return</b> Function_Key_Number;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_781_13" HREF="terminal_interface-curses__adb.htm#ref_569_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_781_27" HREF="terminal_interface-curses__adb.htm#ref_569_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>;
    <FONT COLOR=green><EM>--  Return the number of the function key. If the code is not a</EM></FONT>
    <FONT COLOR=green><EM>--  function key, a CONSTRAINT_ERROR will be raised.</EM></FONT>
-   <b>pragma</b> Inline (Function_Key);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A>);
 
-   <b>function</b> Function_Key_Code (Key : Function_Key_Number) <b>return</b> Real_Key_Code;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_786_13" HREF="terminal_interface-curses__adb.htm#ref_580_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_786_32" HREF="terminal_interface-curses__adb.htm#ref_580_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
    <FONT COLOR=green><EM>--  Return the key code for a given function-key number.</EM></FONT>
-   <b>pragma</b> Inline (Function_Key_Code);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT>
@@ -796,68 +801,68 @@
    <FONT COLOR=green><EM>--  PAIR_NUMBER</EM></FONT>
    <FONT COLOR=green><EM>--  PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
-   <b>procedure</b> Standout (<FONT COLOR=red><A NAME="ref_795_24" HREF="terminal_interface-curses__adb.htm#ref_640_24">Win</A></FONT> : Window  := Standard_Window;
-                       On  : Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_800_14" HREF="terminal_interface-curses__adb.htm#ref_586_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_800_24" HREF="terminal_interface-curses__adb.htm#ref_586_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                       <FONT COLOR=red><A NAME="ref_801_24" HREF="terminal_interface-curses__adb.htm#ref_587_24">On</A></FONT>  : Boolean := True);
    <FONT COLOR=green><EM>--  AKA: wstandout()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: wstandend()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
-   <b>procedure</b> Switch_Character_Attribute
-     (<FONT COLOR=red><A NAME="ref_802_7" HREF="terminal_interface-curses__adb.htm#ref_661_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_803_7" HREF="terminal_interface-curses__adb.htm#ref_662_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
-      On   : <b>in</b> Boolean := True); <FONT COLOR=green><EM>--  if False we switch Off.</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_806_14" HREF="terminal_interface-curses__adb.htm#ref_606_14">Switch_Character_Attribute</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_807_7" HREF="terminal_interface-curses__adb.htm#ref_607_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_808_7" HREF="terminal_interface-curses__adb.htm#ref_608_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_809_7" HREF="terminal_interface-curses__adb.htm#ref_609_7">On</A></FONT>   : <b>in</b> Boolean := True); <FONT COLOR=green><EM>--  if False we switch Off.</EM></FONT>
    <FONT COLOR=green><EM>--  Switches those Attributes set to true in the list.</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: wattroff()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: attron()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: attroff()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
-   <b>procedure</b> Set_Character_Attributes
-     (<FONT COLOR=red><A NAME="ref_813_7" HREF="terminal_interface-curses__adb.htm#ref_689_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_814_7" HREF="terminal_interface-curses__adb.htm#ref_690_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_817_14" HREF="terminal_interface-curses__adb.htm#ref_634_14">Set_Character_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_818_7" HREF="terminal_interface-curses__adb.htm#ref_635_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_819_7" HREF="terminal_interface-curses__adb.htm#ref_636_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_820_7" HREF="terminal_interface-curses__adb.htm#ref_637_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: attrset()</EM></FONT>
-   <b>pragma</b> Inline (Set_Character_Attributes);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
-   <b>function</b> Get_Character_Attribute
-     (Win : <b>in</b> Window := Standard_Window) <b>return</b> Character_Attribute_Set;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_826_13" HREF="terminal_interface-curses__adb.htm#ref_652_13">Get_Character_Attribute</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_827_7" HREF="terminal_interface-curses__adb.htm#ref_652_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: attr_get()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
-   <b>function</b> Get_Character_Attribute
-     (Win : <b>in</b> Window := Standard_Window) <b>return</b> Color_Pair;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_832_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_833_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Character_Attribute);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
-   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="ref_833_25" HREF="terminal_interface-curses__adb.htm#ref_752_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Window</A> := Standard_Window;
-                        Pair : <b>in</b> Color_Pair);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_838_14" HREF="terminal_interface-curses__adb.htm#ref_698_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_838_25" HREF="terminal_interface-curses__adb.htm#ref_698_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                        <FONT COLOR=red><A NAME="ref_839_25" HREF="terminal_interface-curses__adb.htm#ref_699_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: color_set()</EM></FONT>
-   <b>pragma</b> Inline (Set_Color);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
-   <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="ref_841_7" HREF="terminal_interface-curses__adb.htm#ref_768_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_842_7" HREF="terminal_interface-curses__adb.htm#ref_769_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="ref_843_7" HREF="terminal_interface-curses__adb.htm#ref_770_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_845_14" HREF="terminal_interface-curses__adb.htm#ref_713_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_846_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_847_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Count</A></FONT> : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_848_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_849_7" HREF="terminal_interface-curses__adb.htm#ref_717_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: chgat()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
-   <b>procedure</b> Change_Attributes
-     (<FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_791_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_792_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A> := Line_Position'First;
-      <FONT COLOR=red><A NAME="ref_852_7" HREF="terminal_interface-curses__adb.htm#ref_793_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
-      <FONT COLOR=red><A NAME="ref_853_7" HREF="terminal_interface-curses__adb.htm#ref_794_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
-      <FONT COLOR=red><A NAME="ref_854_7" HREF="terminal_interface-curses__adb.htm#ref_795_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color  : <b>in</b> Color_Pair := Color_Pair'First);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_854_14" HREF="terminal_interface-curses__adb.htm#ref_736_14">Change_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_855_7" HREF="terminal_interface-curses__adb.htm#ref_737_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_856_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+      <FONT COLOR=red><A NAME="ref_857_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+      <FONT COLOR=red><A NAME="ref_858_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Count</A></FONT>  : <b>in</b> Integer := -1;
+      <FONT COLOR=red><A NAME="ref_859_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_860_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvchgat()</EM></FONT>
    <b>pragma</b> Inline (Change_Attributes);
@@ -866,15 +871,15 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
-   <b>procedure</b> Beep;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_870_14" HREF="terminal_interface-curses__adb.htm#ref_749_14">Beep</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT>
-   <b>pragma</b> Inline (Beep);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
-   <b>procedure</b> Flash_Screen;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_875_14" HREF="terminal_interface-curses__adb.htm#ref_759_14">Flash_Screen</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT>
-   <b>pragma</b> Inline (Flash_Screen);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT>
@@ -882,76 +887,76 @@
 
    <FONT COLOR=green><EM>--  | Not implemented : typeahead</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
-   <b>procedure</b> Set_Cbreak_Mode (SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses__adb.htm#ref_769_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_886_31" HREF="terminal_interface-curses__adb.htm#ref_769_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nocbreak()</EM></FONT>
-   <b>pragma</b> Inline (Set_Cbreak_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
-   <b>procedure</b> Set_Raw_Mode (SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_892_14" HREF="terminal_interface-curses__adb.htm#ref_788_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_892_28" HREF="terminal_interface-curses__adb.htm#ref_788_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noraw()</EM></FONT>
-   <b>pragma</b> Inline (Set_Raw_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
-   <b>procedure</b> Set_Echo_Mode (SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__adb.htm#ref_807_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_898_29" HREF="terminal_interface-curses__adb.htm#ref_807_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noecho()</EM></FONT>
-   <b>pragma</b> Inline (Set_Echo_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
-   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="ref_899_29" HREF="terminal_interface-curses__adb.htm#ref_880_29">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
-                            SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_904_14" HREF="terminal_interface-curses__adb.htm#ref_826_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_904_29" HREF="terminal_interface-curses__adb.htm#ref_826_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                            <FONT COLOR=red><A NAME="ref_905_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Meta_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
-   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="ref_905_31" HREF="terminal_interface-curses__adb.htm#ref_891_31">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
-                              SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__adb.htm#ref_837_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_31" HREF="terminal_interface-curses__adb.htm#ref_837_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                              <FONT COLOR=red><A NAME="ref_911_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_KeyPad_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A>);
 
-   <b>function</b> Get_KeyPad_Mode (Win : <b>in</b> Window := Standard_Window)
+   <b>function</b> <FONT COLOR=red><A NAME="ref_915_13" HREF="terminal_interface-curses__adb.htm#ref_848_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_915_30" HREF="terminal_interface-curses__adb.htm#ref_848_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
                              <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  This has no pendant in C. There you've to look into the WINDOWS</EM></FONT>
    <FONT COLOR=green><EM>--  structure to get the value. Bad practice, not repeated in Ada.</EM></FONT>
 
-   <b>type</b> Half_Delay_Amount <b>is</b> <b>range</b> 1 .. 255;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_920_9">Half_Delay_Amount</A></FONT> <b>is</b> <b>range</b> 1 .. 255;
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
-   <b>procedure</b> Half_Delay (Amount : <b>in</b> Half_Delay_Amount);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_923_14" HREF="terminal_interface-curses__adb.htm#ref_857_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_923_26" HREF="terminal_interface-curses__adb.htm#ref_857_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_920_9">Half_Delay_Amount</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT>
-   <b>pragma</b> Inline (Half_Delay);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
-   <b>procedure</b> Set_Flush_On_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="ref_924_7" HREF="terminal_interface-curses__adb.htm#ref_920_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
-      Mode : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_928_14" HREF="terminal_interface-curses__adb.htm#ref_867_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_929_7" HREF="terminal_interface-curses__adb.htm#ref_868_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_930_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Mode</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Flush_On_Interrupt_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
-   <b>procedure</b> Set_Queue_Interrupt_Mode
-     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
-      Flush : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_935_14" HREF="terminal_interface-curses__adb.htm#ref_879_14">Set_Queue_Interrupt_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_936_7" HREF="terminal_interface-curses__adb.htm#ref_880_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_937_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Flush</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: noqiflush()</EM></FONT>
-   <b>pragma</b> Inline (Set_Queue_Interrupt_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
-   <b>procedure</b> Set_NoDelay_Mode
-     (<FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_951_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
-      Mode : <b>in</b> Boolean := False);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_943_14" HREF="terminal_interface-curses__adb.htm#ref_898_14">Set_NoDelay_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_944_7" HREF="terminal_interface-curses__adb.htm#ref_899_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_945_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Mode</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_NoDelay_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A>);
 
-   <b>type</b> Timeout_Mode <b>is</b> (Blocking, Non_Blocking, Delayed);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_949_9">Timeout_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_949_26">Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_949_36">Non_Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_949_50">Delayed</A></FONT>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
-   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="ref_947_32" HREF="terminal_interface-curses__adb.htm#ref_962_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Window</A> := Standard_Window;
-                               <FONT COLOR=red><A NAME="ref_948_32" HREF="terminal_interface-curses__adb.htm#ref_963_32">Mode</A></FONT>   : <b>in</b> Timeout_Mode;
-                               Amount : <b>in</b> Natural); <FONT COLOR=green><EM>--  in Milliseconds</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_952_14" HREF="terminal_interface-curses__adb.htm#ref_910_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_952_32" HREF="terminal_interface-curses__adb.htm#ref_910_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                               <FONT COLOR=red><A NAME="ref_953_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_9">Timeout_Mode</A>;
+                               <FONT COLOR=red><A NAME="ref_954_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Amount</A></FONT> : <b>in</b> Natural); <FONT COLOR=green><EM>--  in Milliseconds</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: timeout()</EM></FONT>
    <FONT COLOR=green><EM>--  Instead of overloading the semantic of the sign of amount, we</EM></FONT>
@@ -960,109 +965,109 @@
    <FONT COLOR=green><EM>--  evaluated.</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
-   <b>procedure</b> Set_Escape_Timer_Mode
-     (<FONT COLOR=red><A NAME="ref_960_7" HREF="terminal_interface-curses__adb.htm#ref_986_7">Win</A></FONT>       : <b>in</b> Window := Standard_Window;
-      Timer_Off : <b>in</b> Boolean := False);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__adb.htm#ref_931_14">Set_Escape_Timer_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Escape_Timer_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
-   <b>procedure</b> Set_NL_Mode (SwitchOn : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_975_14" HREF="terminal_interface-curses__adb.htm#ref_945_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_975_27" HREF="terminal_interface-curses__adb.htm#ref_945_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: nonl()</EM></FONT>
-   <b>pragma</b> Inline (Set_NL_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
-   <b>procedure</b> Clear_On_Next_Update
-     (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__adb.htm#ref_1019_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
-      Do_Clear : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_981_14" HREF="terminal_interface-curses__adb.htm#ref_964_14">Clear_On_Next_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_982_7" HREF="terminal_interface-curses__adb.htm#ref_965_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_983_7" HREF="terminal_interface-curses__adb.htm#ref_966_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
-   <b>pragma</b> Inline (Clear_On_Next_Update);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
-   <b>procedure</b> Use_Insert_Delete_Line
-     (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_1031_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
-      Do_Idl : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__adb.htm#ref_976_14">Use_Insert_Delete_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__adb.htm#ref_977_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__adb.htm#ref_978_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
-   <b>pragma</b> Inline (Use_Insert_Delete_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
-   <b>procedure</b> Use_Insert_Delete_Character
-     (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
-      Do_Idc : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_995_14" HREF="terminal_interface-curses__adb.htm#ref_988_14">Use_Insert_Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_996_7" HREF="terminal_interface-curses__adb.htm#ref_989_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_997_7" HREF="terminal_interface-curses__adb.htm#ref_990_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
-   <b>pragma</b> Inline (Use_Insert_Delete_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
-   <b>procedure</b> Leave_Cursor_After_Update
-     (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_1055_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
-      Do_Leave : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1002_14" HREF="terminal_interface-curses__adb.htm#ref_998_14">Leave_Cursor_After_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1003_7" HREF="terminal_interface-curses__adb.htm#ref_999_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1004_7" HREF="terminal_interface-curses__adb.htm#ref_1000_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
-   <b>pragma</b> Inline (Leave_Cursor_After_Update);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
-   <b>procedure</b> Immediate_Update_Mode
-     (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_1067_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
-      Mode : <b>in</b> Boolean := False);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1009_14" HREF="terminal_interface-curses__adb.htm#ref_1010_14">Immediate_Update_Mode</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1010_7" HREF="terminal_interface-curses__adb.htm#ref_1011_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__adb.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
-   <b>pragma</b> Inline (Immediate_Update_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
-   <b>procedure</b> Allow_Scrolling
-     (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1079_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
-      Mode : <b>in</b> Boolean := False);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1016_14" HREF="terminal_interface-curses__adb.htm#ref_1020_14">Allow_Scrolling</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1017_7" HREF="terminal_interface-curses__adb.htm#ref_1021_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__adb.htm#ref_1022_7">Mode</A></FONT> : <b>in</b> Boolean := False);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT>
-   <b>pragma</b> Inline (Allow_Scrolling);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A>);
 
-   <b>function</b> Scrolling_Allowed (Win : Window := Standard_Window) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1022_13" HREF="terminal_interface-curses__adb.htm#ref_1032_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1022_32" HREF="terminal_interface-curses__adb.htm#ref_1032_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  There is no such function in the C interface.</EM></FONT>
-   <b>pragma</b> Inline (Scrolling_Allowed);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
-   <b>procedure</b> Set_Scroll_Region
-     (<FONT COLOR=red><A NAME="ref_1023_7" HREF="terminal_interface-curses__adb.htm#ref_1098_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1024_7" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
-      Bottom_Line : <b>in</b> Line_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1027_14" HREF="terminal_interface-curses__adb.htm#ref_1041_14">Set_Scroll_Region</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1028_7" HREF="terminal_interface-curses__adb.htm#ref_1042_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1029_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: setscrreg()</EM></FONT>
-   <b>pragma</b> Inline (Set_Scroll_Region);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
-   <b>procedure</b> Update_Screen;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1040_14" HREF="terminal_interface-curses__adb.htm#ref_1057_14">Update_Screen</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT>
-   <b>pragma</b> Inline (Update_Screen);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
-   <b>procedure</b> Refresh (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1045_14" HREF="terminal_interface-curses__adb.htm#ref_1067_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_23" HREF="terminal_interface-curses__adb.htm#ref_1067_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: refresh()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
-   <b>procedure</b> Refresh_Without_Update
-     (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1052_14" HREF="terminal_interface-curses__adb.htm#ref_1077_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1053_7" HREF="terminal_interface-curses__adb.htm#ref_1078_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT>
    <FONT COLOR=green><EM>--  There is an overloaded Refresh_Without_Update for Pads.</EM></FONT>
    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
-   <b>procedure</b> Redraw (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1059_14" HREF="terminal_interface-curses__adb.htm#ref_1088_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1088_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
-   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="ref_1058_22" HREF="terminal_interface-curses__adb.htm#ref_1155_7">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Begin_Line</A></FONT> : <b>in</b> Line_Position;
-                     Line_Count : <b>in</b> Positive);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1063_14" HREF="terminal_interface-curses__adb.htm#ref_1098_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1063_22" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1064_22" HREF="terminal_interface-curses__adb.htm#ref_1100_7">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1065_22" HREF="terminal_interface-curses__adb.htm#ref_1101_7">Line_Count</A></FONT> : <b>in</b> Positive);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT>
    <b>pragma</b> Inline (Redraw);
 
@@ -1070,99 +1075,99 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
-   <b>procedure</b> Erase (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1074_14" HREF="terminal_interface-curses__adb.htm#ref_1115_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1074_21" HREF="terminal_interface-curses__adb.htm#ref_1115_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: erase()</EM></FONT>
-   <b>pragma</b> Inline (Erase);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
-   <b>procedure</b> Clear
-     (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1080_14" HREF="terminal_interface-curses__adb.htm#ref_1125_14">Clear</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1081_7" HREF="terminal_interface-curses__adb.htm#ref_1125_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: clear()</EM></FONT>
-   <b>pragma</b> Inline (Clear);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
-   <b>procedure</b> Clear_To_End_Of_Screen
-     (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1087_14" HREF="terminal_interface-curses__adb.htm#ref_1135_14">Clear_To_End_Of_Screen</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1088_7" HREF="terminal_interface-curses__adb.htm#ref_1135_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: clrtobot()</EM></FONT>
-   <b>pragma</b> Inline (Clear_To_End_Of_Screen);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
-   <b>procedure</b> Clear_To_End_Of_Line
-     (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1094_14" HREF="terminal_interface-curses__adb.htm#ref_1145_14">Clear_To_End_Of_Line</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1095_7" HREF="terminal_interface-curses__adb.htm#ref_1145_36">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: clrtoeol()</EM></FONT>
-   <b>pragma</b> Inline (Clear_To_End_Of_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></FONT>
    <FONT COLOR=green><EM>--  because in C it is common to see bkgdset(A_BOLD) or</EM></FONT>
    <FONT COLOR=green><EM>--  bkgdset(COLOR_PAIR(n))</EM></FONT>
-   <b>procedure</b> Set_Background
-     (<FONT COLOR=red><A NAME="ref_1104_7" HREF="terminal_interface-curses__adb.htm#ref_1212_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-      Ch  : <b>in</b> Attributed_Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1108_14" HREF="terminal_interface-curses__adb.htm#ref_1155_14">Set_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1109_7" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1110_7" HREF="terminal_interface-curses__adb.htm#ref_1157_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgdset()</EM></FONT>
-   <b>pragma</b> Inline (Set_Background);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
-   <b>procedure</b> Change_Background
-     (<FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1222_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-      Ch  : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1116_14" HREF="terminal_interface-curses__adb.htm#ref_1165_14">Change_Background</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1117_7" HREF="terminal_interface-curses__adb.htm#ref_1166_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1118_7" HREF="terminal_interface-curses__adb.htm#ref_1167_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgd()</EM></FONT>
-   <b>pragma</b> Inline (Change_Background);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Get_Background</A> (Win : Window := Standard_Window)
-     <b>return</b> Attributed_Character;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1125_13" HREF="terminal_interface-curses__adb.htm#ref_1177_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_29" HREF="terminal_interface-curses__adb.htm#ref_1177_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: bkgdget()</EM></FONT>
-   <b>pragma</b> Inline (Get_Background);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
-   <b>procedure</b> Untouch (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1136_14" HREF="terminal_interface-curses__adb.htm#ref_1212_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1136_23" HREF="terminal_interface-curses__adb.htm#ref_1212_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT>
-   <b>pragma</b> Inline (Untouch);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
-   <b>procedure</b> Touch (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1141_14" HREF="terminal_interface-curses__adb.htm#ref_1203_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1203_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
-   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="ref_1140_21" HREF="terminal_interface-curses__adb.htm#ref_1277_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                    <FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1278_21">Start</A></FONT> : <b>in</b> Line_Position;
-                    Count : <b>in</b> Positive);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__adb.htm#ref_1221_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_21" HREF="terminal_interface-curses__adb.htm#ref_1221_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                    <FONT COLOR=red><A NAME="ref_1146_21" HREF="terminal_interface-curses__adb.htm#ref_1222_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                    <FONT COLOR=red><A NAME="ref_1147_21" HREF="terminal_interface-curses__adb.htm#ref_1223_21">Count</A></FONT> : <b>in</b> Positive);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT>
    <b>pragma</b> Inline (Touch);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
-   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="ref_1147_35" HREF="terminal_interface-curses__adb.htm#ref_1242_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                                  <FONT COLOR=red><A NAME="ref_1148_35" HREF="terminal_interface-curses__adb.htm#ref_1243_35">Start</A></FONT> : <b>in</b> Line_Position;
-                                  <FONT COLOR=red><A NAME="ref_1149_35" HREF="terminal_interface-curses__adb.htm#ref_1244_35">Count</A></FONT> : <b>in</b> Positive;
-                                  State : <b>in</b> Boolean);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1152_14" HREF="terminal_interface-curses__adb.htm#ref_1186_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1152_35" HREF="terminal_interface-curses__adb.htm#ref_1186_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                                  <FONT COLOR=red><A NAME="ref_1153_35" HREF="terminal_interface-curses__adb.htm#ref_1187_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                                  <FONT COLOR=red><A NAME="ref_1154_35" HREF="terminal_interface-curses__adb.htm#ref_1188_35">Count</A></FONT> : <b>in</b> Positive;
+                                  <FONT COLOR=red><A NAME="ref_1155_35" HREF="terminal_interface-curses__adb.htm#ref_1189_35">State</A></FONT> : <b>in</b> Boolean);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT>
-   <b>pragma</b> Inline (Change_Lines_Status);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
-   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="ref_1155_25" HREF="terminal_interface-curses__adb.htm#ref_1286_7">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                        Line : Line_Position) <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1160_13" HREF="terminal_interface-curses__adb.htm#ref_1229_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1160_25" HREF="terminal_interface-curses__adb.htm#ref_1230_7">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1161_25" HREF="terminal_interface-curses__adb.htm#ref_1231_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
-   <b>function</b> Is_Touched (Win : Window := Standard_Window) <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_78"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1165_13" HREF="terminal_interface-curses__adb.htm#ref_1243_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1165_25" HREF="terminal_interface-curses__adb.htm#ref_1244_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT>
    <b>pragma</b> Inline (Is_Touched);
 
@@ -1170,176 +1175,176 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_78"#2|</EM></FONT>
-   <b>procedure</b> Copy
-     (<FONT COLOR=red><A NAME="ref_1170_7" HREF="terminal_interface-curses__adb.htm#ref_1313_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1171_7" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1172_7" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1173_7" HREF="terminal_interface-curses__adb.htm#ref_1316_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1317_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
-      Non_Destructive_Mode     : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1174_14" HREF="terminal_interface-curses__adb.htm#ref_1256_14">Copy</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1257_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1258_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1259_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1178_7" HREF="terminal_interface-curses__adb.htm#ref_1260_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1179_7" HREF="terminal_interface-curses__adb.htm#ref_1261_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1262_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1263_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1264_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1183_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT>
-   <b>pragma</b> Inline (Copy);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
-   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="ref_1183_25" HREF="terminal_interface-curses__adb.htm#ref_1349_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                        Destination_Window : <b>in</b> Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1188_14" HREF="terminal_interface-curses__adb.htm#ref_1292_14">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1188_25" HREF="terminal_interface-curses__adb.htm#ref_1293_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                        <FONT COLOR=red><A NAME="ref_1189_25" HREF="terminal_interface-curses__adb.htm#ref_1294_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT>
-   <b>pragma</b> Inline (Overwrite);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
-   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="ref_1189_23" HREF="terminal_interface-curses__adb.htm#ref_1361_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-                      Destination_Window : <b>in</b> Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1194_14" HREF="terminal_interface-curses__adb.htm#ref_1304_14">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1194_23" HREF="terminal_interface-curses__adb.htm#ref_1305_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                      <FONT COLOR=red><A NAME="ref_1195_23" HREF="terminal_interface-curses__adb.htm#ref_1306_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT>
-   <b>pragma</b> Inline (Overlay);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
-   <b>procedure</b> Insert_Delete_Lines
-     (<FONT COLOR=red><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1374_7">Win</A></FONT>   : <b>in</b> Window  := Standard_Window;
-      Lines : <b>in</b> Integer := 1); <FONT COLOR=green><EM>--  default is to insert one line above</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1204_14" HREF="terminal_interface-curses__adb.htm#ref_1317_14">Insert_Delete_Lines</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1205_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1206_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Lines</A></FONT> : <b>in</b> Integer := 1); <FONT COLOR=green><EM>--  default is to insert one line above</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: insdelln()</EM></FONT>
-   <b>pragma</b> Inline (Insert_Delete_Lines);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
-   <b>procedure</b> Delete_Line (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1212_14" HREF="terminal_interface-curses__adb.htm#ref_1329_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1212_27" HREF="terminal_interface-curses__adb.htm#ref_1329_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: deleteln()</EM></FONT>
-   <b>pragma</b> Inline (Delete_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
-   <b>procedure</b> Insert_Line (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1218_14" HREF="terminal_interface-curses__adb.htm#ref_1335_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1218_27" HREF="terminal_interface-curses__adb.htm#ref_1335_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: insertln()</EM></FONT>
-   <b>pragma</b> Inline (Insert_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
-   <b>procedure</b> Get_Size
-     (<FONT COLOR=red><A NAME="ref_1224_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1225_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      Number_Of_Columns : <b>out</b> Column_Count);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1228_14" HREF="terminal_interface-curses__adb.htm#ref_1342_14">Get_Size</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1229_7" HREF="terminal_interface-curses__adb.htm#ref_1343_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1230_7" HREF="terminal_interface-curses__adb.htm#ref_1344_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__adb.htm#ref_1345_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Size);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
-   <b>procedure</b> Get_Window_Position
-     (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1415_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1416_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Top_Left_Column : <b>out</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1236_14" HREF="terminal_interface-curses__adb.htm#ref_1362_14">Get_Window_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1237_7" HREF="terminal_interface-curses__adb.htm#ref_1363_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1238_7" HREF="terminal_interface-curses__adb.htm#ref_1364_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1239_7" HREF="terminal_interface-curses__adb.htm#ref_1365_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Window_Position);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
-   <b>procedure</b> Get_Cursor_Position
-     (<FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1427_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1428_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Column : <b>out</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1244_14" HREF="terminal_interface-curses__adb.htm#ref_1380_14">Get_Cursor_Position</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1245_7" HREF="terminal_interface-curses__adb.htm#ref_1381_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1246_7" HREF="terminal_interface-curses__adb.htm#ref_1382_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1247_7" HREF="terminal_interface-curses__adb.htm#ref_1383_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT>
-   <b>pragma</b> Inline (Get_Cursor_Position);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
-   <b>procedure</b> Get_Origin_Relative_To_Parent
-     (<FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1439_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1250_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Top_Left_Column</A></FONT>    : <b>out</b> Column_Position;
-      Is_Not_A_Subwindow : <b>out</b> Boolean);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1252_14" HREF="terminal_interface-curses__adb.htm#ref_1398_14">Get_Origin_Relative_To_Parent</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1253_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1254_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1255_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1256_7" HREF="terminal_interface-curses__adb.htm#ref_1402_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Instead of placing -1 in the coordinates as return, we use a boolean</EM></FONT>
    <FONT COLOR=green><EM>--  to return the info that the window has no parent.</EM></FONT>
-   <b>pragma</b> Inline (Get_Origin_Relative_To_Parent);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
-   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="ref_1262_22" HREF="terminal_interface-curses__adb.htm#ref_1458_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                     Columns : Column_Count) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1267_13" HREF="terminal_interface-curses__adb.htm#ref_1424_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_22" HREF="terminal_interface-curses__adb.htm#ref_1424_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_1268_22" HREF="terminal_interface-curses__adb.htm#ref_1425_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT>
-   <b>pragma</b> Inline (New_Pad);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
-   <b>function</b> Sub_Pad
-     (<FONT COLOR=red><A NAME="ref_1269_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1270_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-      <FONT COLOR=red><A NAME="ref_1271_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
-      <FONT COLOR=red><A NAME="ref_1272_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      First_Column_Position : Column_Position) <b>return</b> Window;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1273_13" HREF="terminal_interface-curses__adb.htm#ref_1439_13">Sub_Pad</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1274_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1275_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1276_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+      <FONT COLOR=red><A NAME="ref_1277_7" HREF="terminal_interface-curses__adb.htm#ref_1443_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1278_7" HREF="terminal_interface-curses__adb.htm#ref_1444_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT>
-   <b>pragma</b> Inline (Sub_Pad);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
-   <b>procedure</b> Refresh
-     (<FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1281_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1282_7" HREF="terminal_interface-curses__adb.htm#ref_1505_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1283_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Destination_Right_Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1283_14" HREF="terminal_interface-curses__adb.htm#ref_1467_14">Refresh</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1468_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__adb.htm#ref_1469_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__adb.htm#ref_1470_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1471_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1472_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1473_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1290_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
-   <b>procedure</b> Refresh_Without_Update
-     (<FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1532_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
-      <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1533_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__adb.htm#ref_1534_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__adb.htm#ref_1535_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__adb.htm#ref_1536_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Destination_Right_Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1295_14" HREF="terminal_interface-curses__adb.htm#ref_1497_14">Refresh_Without_Update</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1498_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1297_7" HREF="terminal_interface-curses__adb.htm#ref_1499_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1298_7" HREF="terminal_interface-curses__adb.htm#ref_1500_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__adb.htm#ref_1501_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1300_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1301_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1302_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT>
    <b>pragma</b> Inline (Refresh_Without_Update);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
-   <b>procedure</b> Add_Character_To_Pad_And_Echo_It
-     (<FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1562_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A>;
-      Ch  : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1307_14" HREF="terminal_interface-curses__adb.htm#ref_1527_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1528_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1309_7" HREF="terminal_interface-curses__adb.htm#ref_1529_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT>
 
-   <b>procedure</b> Add_Character_To_Pad_And_Echo_It
-     (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1575_7">Pad</A></FONT> : <b>in</b> Window;
-      Ch  : <b>in</b> Character);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1312_14" HREF="terminal_interface-curses__adb.htm#ref_1540_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__adb.htm#ref_1541_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+      <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__adb.htm#ref_1542_7">Ch</A></FONT>  : <b>in</b> Character);
    <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
-   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="ref_1317_22" HREF="terminal_interface-curses__adb.htm#ref_1586_22">Win</A></FONT>    : <b>in</b> Window  := Standard_Window;
-                     Amount : <b>in</b> Integer := 1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1322_14" HREF="terminal_interface-curses__adb.htm#ref_1552_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_22" HREF="terminal_interface-curses__adb.htm#ref_1552_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1323_22" HREF="terminal_interface-curses__adb.htm#ref_1553_22">Amount</A></FONT> : <b>in</b> Integer := 1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: scroll()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: scrl()</EM></FONT>
-   <b>pragma</b> Inline (Scroll);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
-   <b>procedure</b> Delete_Character (Win : <b>in</b> Window := Standard_Window);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1334_14" HREF="terminal_interface-curses__adb.htm#ref_1565_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1334_32" HREF="terminal_interface-curses__adb.htm#ref_1565_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: delch()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
-   <b>procedure</b> Delete_Character
-     (<FONT COLOR=red><A NAME="ref_1335_7" HREF="terminal_interface-curses__adb.htm#ref_1610_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1336_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Column : <b>in</b> Column_Position);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1339_14" HREF="terminal_interface-curses__adb.htm#ref_1575_14">Delete_Character</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1340_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1341_7" HREF="terminal_interface-curses__adb.htm#ref_1577_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1342_7" HREF="terminal_interface-curses__adb.htm#ref_1578_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvdelch()</EM></FONT>
    <b>pragma</b> Inline (Delete_Character);
@@ -1348,17 +1353,17 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Peek</A> (Win : Window := Standard_Window)
-     <b>return</b> Attributed_Character;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1352_13" HREF="terminal_interface-curses__adb.htm#ref_1590_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1352_19" HREF="terminal_interface-curses__adb.htm#ref_1590_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <FONT COLOR=green><EM>--  AKA: inch()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
-   <b>function</b> Peek
-     (<FONT COLOR=red><A NAME="ref_1354_7" HREF="terminal_interface-curses__adb.htm#ref_1634_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1355_7" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      Column : Column_Position) <b>return</b> Attributed_Character;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1358_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1359_7" HREF="terminal_interface-curses__adb.htm#ref_1600_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__adb.htm#ref_1601_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__adb.htm#ref_1602_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvinch()</EM></FONT>
    <FONT COLOR=green><EM>--  More Peek's follow, pragma Inline appears later.</EM></FONT>
@@ -1367,17 +1372,17 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1366_22" HREF="terminal_interface-curses__adb.htm#ref_1646_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
-                     Ch  : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1371_14" HREF="terminal_interface-curses__adb.htm#ref_1612_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1371_22" HREF="terminal_interface-curses__adb.htm#ref_1612_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1613_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: insch()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1658_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1659_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1660_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
-                     Ch     : <b>in</b> Attributed_Character);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1377_14" HREF="terminal_interface-curses__adb.htm#ref_1623_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1377_22" HREF="terminal_interface-curses__adb.htm#ref_1624_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1378_22" HREF="terminal_interface-curses__adb.htm#ref_1625_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1379_22" HREF="terminal_interface-curses__adb.htm#ref_1626_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1380_22" HREF="terminal_interface-curses__adb.htm#ref_1627_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvinsch()</EM></FONT>
 
@@ -1385,21 +1390,21 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1384_22" HREF="terminal_interface-curses__adb.htm#ref_1677_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
-                     <FONT COLOR=red><A NAME="ref_1385_22" HREF="terminal_interface-curses__adb.htm#ref_1678_22">Str</A></FONT> : <b>in</b> String;
-                     Len : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1389_14" HREF="terminal_interface-curses__adb.htm#ref_1643_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1389_22" HREF="terminal_interface-curses__adb.htm#ref_1643_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1390_22" HREF="terminal_interface-curses__adb.htm#ref_1644_22">Str</A></FONT> : <b>in</b> String;
+                     <FONT COLOR=red><A NAME="ref_1391_22" HREF="terminal_interface-curses__adb.htm#ref_1645_22">Len</A></FONT> : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: winsstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: insnstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: insstr()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1696_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="ref_1394_22" HREF="terminal_interface-curses__adb.htm#ref_1697_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                     <FONT COLOR=red><A NAME="ref_1395_22" HREF="terminal_interface-curses__adb.htm#ref_1698_7">Column</A></FONT> : <b>in</b> Column_Position;
-                     <FONT COLOR=red><A NAME="ref_1396_22" HREF="terminal_interface-curses__adb.htm#ref_1699_7">Str</A></FONT>    : <b>in</b> String;
-                     Len    : <b>in</b> Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__adb.htm#ref_1661_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1398_22" HREF="terminal_interface-curses__adb.htm#ref_1662_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1399_22" HREF="terminal_interface-curses__adb.htm#ref_1663_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1400_22" HREF="terminal_interface-curses__adb.htm#ref_1664_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                     <FONT COLOR=red><A NAME="ref_1401_22" HREF="terminal_interface-curses__adb.htm#ref_1665_7">Str</A></FONT>    : <b>in</b> String;
+                     <FONT COLOR=red><A NAME="ref_1402_22" HREF="terminal_interface-curses__adb.htm#ref_1666_7">Len</A></FONT>    : <b>in</b> Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinsstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvinsnstr()</EM></FONT>
@@ -1410,21 +1415,21 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1409_20" HREF="terminal_interface-curses__adb.htm#ref_1719_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                   <FONT COLOR=red><A NAME="ref_1410_20" HREF="terminal_interface-curses__adb.htm#ref_1720_20">Str</A></FONT> : <b>out</b> String;
-                   Len : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1414_14" HREF="terminal_interface-curses__adb.htm#ref_1685_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1414_20" HREF="terminal_interface-curses__adb.htm#ref_1685_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1415_20" HREF="terminal_interface-curses__adb.htm#ref_1686_20">Str</A></FONT> : <b>out</b> String;
+                   <FONT COLOR=red><A NAME="ref_1416_20" HREF="terminal_interface-curses__adb.htm#ref_1687_20">Len</A></FONT> : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: winstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: innstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: instr()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1749_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="ref_1419_20" HREF="terminal_interface-curses__adb.htm#ref_1750_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="ref_1420_20" HREF="terminal_interface-curses__adb.htm#ref_1751_7">Column</A></FONT> : <b>in</b>  Column_Position;
-                   <FONT COLOR=red><A NAME="ref_1421_20" HREF="terminal_interface-curses__adb.htm#ref_1752_7">Str</A></FONT>    : <b>out</b> String;
-                   Len    : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1423_14" HREF="terminal_interface-curses__adb.htm#ref_1714_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1423_20" HREF="terminal_interface-curses__adb.htm#ref_1715_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1424_20" HREF="terminal_interface-curses__adb.htm#ref_1716_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1425_20" HREF="terminal_interface-curses__adb.htm#ref_1717_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1426_20" HREF="terminal_interface-curses__adb.htm#ref_1718_7">Str</A></FONT>    : <b>out</b> String;
+                   <FONT COLOR=red><A NAME="ref_1427_20" HREF="terminal_interface-curses__adb.htm#ref_1719_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvinnstr()</EM></FONT>
@@ -1434,21 +1439,21 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1433_20" HREF="terminal_interface-curses__adb.htm#ref_1761_7">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="ref_1434_20" HREF="terminal_interface-curses__adb.htm#ref_1762_7">Str</A></FONT> : <b>out</b> Attributed_String;
-                   Len : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1438_14" HREF="terminal_interface-curses__adb.htm#ref_1726_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1438_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1439_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+                   <FONT COLOR=red><A NAME="ref_1440_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Len</A></FONT> : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: winchstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: inchnstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: inchstr()</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1798_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                   <FONT COLOR=red><A NAME="ref_1443_20" HREF="terminal_interface-curses__adb.htm#ref_1799_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                   <FONT COLOR=red><A NAME="ref_1444_20" HREF="terminal_interface-curses__adb.htm#ref_1800_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
-                   <FONT COLOR=red><A NAME="ref_1445_20" HREF="terminal_interface-curses__adb.htm#ref_1801_7">Str</A></FONT>    : <b>out</b> Attributed_String;
-                   Len    : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1447_14" HREF="terminal_interface-curses__adb.htm#ref_1763_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1447_20" HREF="terminal_interface-curses__adb.htm#ref_1764_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                   <FONT COLOR=red><A NAME="ref_1448_20" HREF="terminal_interface-curses__adb.htm#ref_1765_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1449_20" HREF="terminal_interface-curses__adb.htm#ref_1766_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                   <FONT COLOR=red><A NAME="ref_1450_20" HREF="terminal_interface-curses__adb.htm#ref_1767_7">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+                   <FONT COLOR=red><A NAME="ref_1451_20" HREF="terminal_interface-curses__adb.htm#ref_1768_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwinchstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvinchnstr()</EM></FONT>
@@ -1459,10 +1464,10 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1458_19" HREF="terminal_interface-curses__adb.htm#ref_1809_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_1459_19" HREF="terminal_interface-curses__adb.htm#ref_1810_19">Str</A></FONT> : <b>out</b> String;
-                  Len : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1463_14" HREF="terminal_interface-curses__adb.htm#ref_1775_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1463_19" HREF="terminal_interface-curses__adb.htm#ref_1775_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_1464_19" HREF="terminal_interface-curses__adb.htm#ref_1776_19">Str</A></FONT> : <b>out</b> String;
+                  <FONT COLOR=red><A NAME="ref_1465_19" HREF="terminal_interface-curses__adb.htm#ref_1777_19">Len</A></FONT> : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: wgetstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: getnstr()</EM></FONT>
@@ -1470,12 +1475,12 @@
    <FONT COLOR=green><EM>--  actually getstr is not supported because that results in buffer</EM></FONT>
    <FONT COLOR=green><EM>--  overflows.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1469_19" HREF="terminal_interface-curses__adb.htm#ref_1839_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
-                  <FONT COLOR=red><A NAME="ref_1470_19" HREF="terminal_interface-curses__adb.htm#ref_1840_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-                  <FONT COLOR=red><A NAME="ref_1471_19" HREF="terminal_interface-curses__adb.htm#ref_1841_7">Column</A></FONT> : <b>in</b>  Column_Position;
-                  <FONT COLOR=red><A NAME="ref_1472_19" HREF="terminal_interface-curses__adb.htm#ref_1842_7">Str</A></FONT>    : <b>out</b> String;
-                  Len    : <b>in</b>  Integer := -1);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1474_14" HREF="terminal_interface-curses__adb.htm#ref_1804_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1474_19" HREF="terminal_interface-curses__adb.htm#ref_1805_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                  <FONT COLOR=red><A NAME="ref_1475_19" HREF="terminal_interface-curses__adb.htm#ref_1806_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_1476_19" HREF="terminal_interface-curses__adb.htm#ref_1807_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+                  <FONT COLOR=red><A NAME="ref_1477_19" HREF="terminal_interface-curses__adb.htm#ref_1808_7">Str</A></FONT>    : <b>out</b> String;
+                  <FONT COLOR=red><A NAME="ref_1478_19" HREF="terminal_interface-curses__adb.htm#ref_1809_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvwgetstr()</EM></FONT>
    <FONT COLOR=green><EM>--  AKA: mvgetnstr()</EM></FONT>
@@ -1488,90 +1493,90 @@
 
    <FONT COLOR=green><EM>--  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
 
-   <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="ref_1486_35">Three_Two_Three</A></FONT>,
-                                  <FONT COLOR=red><A NAME="ref_1487_35">Four_Four</A></FONT>,
-                                  <FONT COLOR=red><A NAME="ref_1488_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
-        <FONT COLOR=red><A NAME="ref_1489_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
-   <b>type</b> <FONT COLOR=red><A NAME="ref_1490_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="ref_1490_49">12</A></FONT>;
-   <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1491_9">Soft_Label_Key_Format</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1491_35">Three_Two_Three</A></FONT>,
+                                  <FONT COLOR=red><A NAME="ref_1492_35">Four_Four</A></FONT>,
+                                  <FONT COLOR=red><A NAME="ref_1493_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
+                                  <FONT COLOR=red><A NAME="ref_1494_35">PC_Style_With_Index</A></FONT>);  <FONT COLOR=green><EM>--  "</EM></FONT>
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1495_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1496_9">Label_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1496_33">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_1496_39">Centered</A></FONT>, <FONT COLOR=red><A NAME="ref_1496_49">Right</A></FONT>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
-   <b>procedure</b> Init_Soft_Label_Keys
-     (Format : <b>in</b> Soft_Label_Key_Format := Three_Two_Three);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1499_14" HREF="terminal_interface-curses__adb.htm#ref_1816_14">Init_Soft_Label_Keys</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1491_35">Three_Two_Three</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT>
-   <b>pragma</b> Inline (Init_Soft_Label_Keys);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
-   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1500_34" HREF="terminal_interface-curses__adb.htm#ref_1861_34">Label</A></FONT> : <b>in</b> Label_Number;
-                                 <FONT COLOR=red><A NAME="ref_1501_34" HREF="terminal_interface-curses__adb.htm#ref_1862_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">String</A>;
-                                 Fmt   : <b>in</b> Label_Justification := Left);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1505_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1505_34" HREF="terminal_interface-curses__adb.htm#ref_1827_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1506_34" HREF="terminal_interface-curses__adb.htm#ref_1828_34">Text</A></FONT>  : <b>in</b> String;
+                                 <FONT COLOR=red><A NAME="ref_1507_34" HREF="terminal_interface-curses__adb.htm#ref_1829_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1496_33">Left</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
-   <b>procedure</b> Refresh_Soft_Label_Keys;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_111"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1512_14" HREF="terminal_interface-curses__adb.htm#ref_1846_14">Refresh_Soft_Label_Keys</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT>
-   <b>pragma</b> Inline (Refresh_Soft_Label_Keys);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_111"#2|</EM></FONT>
-   <b>procedure</b> Refresh_Soft_Label_Keys_Without_Update;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1517_14" HREF="terminal_interface-curses__adb.htm#ref_1856_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT>
-   <b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
-   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1517_34" HREF="terminal_interface-curses__adb.htm#ref_1900_34">Label</A></FONT> : <b>in</b> Label_Number;
-                                 Text  : <b>out</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1522_14" HREF="terminal_interface-curses__adb.htm#ref_1866_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1522_34" HREF="terminal_interface-curses__adb.htm#ref_1866_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
+                                 <FONT COLOR=red><A NAME="ref_1523_34" HREF="terminal_interface-curses__adb.htm#ref_1867_34">Text</A></FONT>  : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
-   <b>function</b> Get_Soft_Label_Key (Label : <b>in</b> Label_Number) <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1527_13" HREF="terminal_interface-curses__adb.htm#ref_1875_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1527_33" HREF="terminal_interface-curses__adb.htm#ref_1875_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
-   <b>procedure</b> Clear_Soft_Label_Keys;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1533_14" HREF="terminal_interface-curses__adb.htm#ref_1883_14">Clear_Soft_Label_Keys</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT>
-   <b>pragma</b> Inline (Clear_Soft_Label_Keys);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
-   <b>procedure</b> Restore_Soft_Label_Keys;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1538_14" HREF="terminal_interface-curses__adb.htm#ref_1893_14">Restore_Soft_Label_Keys</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT>
-   <b>pragma</b> Inline (Restore_Soft_Label_Keys);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
-   <b>procedure</b> Touch_Soft_Label_Keys;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_117"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1543_14" HREF="terminal_interface-curses__adb.htm#ref_1903_14">Touch_Soft_Label_Keys</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT>
-   <b>pragma</b> Inline (Touch_Soft_Label_Keys);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_117"#2|</EM></FONT>
-   <b>procedure</b> Switch_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="ref_1544_7" HREF="terminal_interface-curses__adb.htm#ref_1948_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
-      On   : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1548_14" HREF="terminal_interface-curses__adb.htm#ref_1913_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1549_7" HREF="terminal_interface-curses__adb.htm#ref_1914_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+      <FONT COLOR=red><A NAME="ref_1550_7" HREF="terminal_interface-curses__adb.htm#ref_1915_7">On</A></FONT>   : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: slk_attroff()</EM></FONT>
-   <b>pragma</b> Inline (Switch_Soft_Label_Key_Attributes);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
-   <b>procedure</b> Set_Soft_Label_Key_Attributes
-     (<FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1972_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1556_14" HREF="terminal_interface-curses__adb.htm#ref_1937_14">Set_Soft_Label_Key_Attributes</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1557_7" HREF="terminal_interface-curses__adb.htm#ref_1938_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+      <FONT COLOR=red><A NAME="ref_1558_7" HREF="terminal_interface-curses__adb.htm#ref_1939_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Soft_Label_Key_Attributes);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
-   <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Character_Attribute_Set;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1563_13" HREF="terminal_interface-curses__adb.htm#ref_1953_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
-   <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Color_Pair;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1567_13" HREF="terminal_interface-curses__adb.htm#ref_1963_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
    <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
-   <b>procedure</b> Set_Soft_Label_Key_Color (Pair : <b>in</b> Color_Pair);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1572_14" HREF="terminal_interface-curses__adb.htm#ref_1973_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1572_40" HREF="terminal_interface-curses__adb.htm#ref_1973_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Soft_Label_Key_Color);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT>
@@ -1582,21 +1587,21 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
-   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_2018_26">Key</A></FONT>    : <b>in</b> Special_Key_Code;
-                         Enable : <b>in</b> Boolean := True);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1586_14" HREF="terminal_interface-curses__adb.htm#ref_1984_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1586_26" HREF="terminal_interface-curses__adb.htm#ref_1984_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+                         <FONT COLOR=red><A NAME="ref_1587_26" HREF="terminal_interface-curses__adb.htm#ref_1985_26">Enable</A></FONT> : <b>in</b> Boolean := True);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
-   <b>pragma</b> Inline (Enable_Key);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
-   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_2031_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">String</A>;
-                         Key        : <b>in</b> Special_Key_Code);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1596_14" HREF="terminal_interface-curses__adb.htm#ref_1997_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1596_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Definition</A></FONT> : <b>in</b> String;
+                         <FONT COLOR=red><A NAME="ref_1597_26" HREF="terminal_interface-curses__adb.htm#ref_1998_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
-   <b>pragma</b> Inline (Define_Key);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
@@ -1606,89 +1611,89 @@
    <FONT COLOR=green><EM>--  | putwin, getwin are in the child package PutWin</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
-   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="ref_1605_24" HREF="terminal_interface-curses__adb.htm#ref_144_24">Key</A></FONT>  : <b>in</b>  Real_Key_Code;
-                       Name : <b>out</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1610_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1610_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+                       <FONT COLOR=red><A NAME="ref_1611_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  The external name for a real keystroke.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
-   <b>function</b> Key_Name (Key  : <b>in</b>  Real_Key_Code) <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1616_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1616_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <FONT COLOR=green><EM>--  We don't inline this routine</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
-   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="ref_1617_26" HREF="terminal_interface-curses__adb.htm#ref_2047_26">Ch</A></FONT>  : <b>in</b> Attributed_Character;
-                         Str : <b>out</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1622_14" HREF="terminal_interface-curses__adb.htm#ref_2013_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1622_26" HREF="terminal_interface-curses__adb.htm#ref_2013_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+                         <FONT COLOR=red><A NAME="ref_1623_26" HREF="terminal_interface-curses__adb.htm#ref_2014_26">Str</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
-   <b>function</b> Un_Control (Ch  : <b>in</b> Attributed_Character) <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1627_13" HREF="terminal_interface-curses__adb.htm#ref_2022_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1627_25" HREF="terminal_interface-curses__adb.htm#ref_2022_25">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Un_Control);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
-   <b>procedure</b> Delay_Output (Msecs : <b>in</b> Natural);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1633_14" HREF="terminal_interface-curses__adb.htm#ref_2030_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_1633_28" HREF="terminal_interface-curses__adb.htm#ref_2030_28">Msecs</A></FONT> : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT>
-   <b>pragma</b> Inline (Delay_Output);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
-   <b>procedure</b> Flush_Input;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1638_14" HREF="terminal_interface-curses__adb.htm#ref_2040_14">Flush_Input</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT>
-   <b>pragma</b> Inline (Flush_Input);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
-   <b>function</b> Baudrate <b>return</b> Natural;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1647_13" HREF="terminal_interface-curses__adb.htm#ref_2050_13">Baudrate</A></FONT> <b>return</b> Natural;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT>
-   <b>pragma</b> Inline (Baudrate);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
-   <b>function</b> Erase_Character <b>return</b> Character;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1652_13" HREF="terminal_interface-curses__adb.htm#ref_2058_13">Erase_Character</A></FONT> <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT>
-   <b>pragma</b> Inline (Erase_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
-   <b>function</b> Kill_Character <b>return</b> Character;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1657_13" HREF="terminal_interface-curses__adb.htm#ref_2066_13">Kill_Character</A></FONT> <b>return</b> Character;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT>
-   <b>pragma</b> Inline (Kill_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
-   <b>function</b> Has_Insert_Character <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1662_13" HREF="terminal_interface-curses__adb.htm#ref_2074_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT>
-   <b>pragma</b> Inline (Has_Insert_Character);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
-   <b>function</b> Has_Insert_Line <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1667_13" HREF="terminal_interface-curses__adb.htm#ref_2086_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT>
-   <b>pragma</b> Inline (Has_Insert_Line);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
-   <b>function</b> Supported_Attributes <b>return</b> Character_Attribute_Set;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1672_13" HREF="terminal_interface-curses__adb.htm#ref_2098_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT>
-   <b>pragma</b> Inline (Supported_Attributes);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
-   <b>procedure</b> Long_Name (Name : <b>out</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1677_14" HREF="terminal_interface-curses__adb.htm#ref_2108_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1677_25" HREF="terminal_interface-curses__adb.htm#ref_2108_25">Name</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
-   <b>function</b> Long_Name <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1681_13" HREF="terminal_interface-curses__adb.htm#ref_2116_13">Long_Name</A></FONT> <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Long_Name);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
-   <b>procedure</b> Terminal_Name (Name : <b>out</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1687_14" HREF="terminal_interface-curses__adb.htm#ref_2124_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1687_29" HREF="terminal_interface-curses__adb.htm#ref_2124_29">Name</A></FONT> : <b>out</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
-   <b>function</b> Terminal_Name <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_140"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1691_13" HREF="terminal_interface-curses__adb.htm#ref_2132_13">Terminal_Name</A></FONT> <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
    <b>pragma</b> Inline (Terminal_Name);
@@ -1703,119 +1708,119 @@
    <FONT COLOR=green><EM>--  In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT>
    <FONT COLOR=green><EM>--  This is equivalent to c.Color := n;</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_140"#2|</EM></FONT>
-   <b>procedure</b> Start_Color;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1707_14">Start_Color</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT>
    <b>pragma</b> Import (C, Start_Color, "start_color");
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
-   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="ref_1707_25" HREF="terminal_interface-curses__adb.htm#ref_2174_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Redefinable_Color_Pair</A>;
-                        <FONT COLOR=red><A NAME="ref_1708_25" HREF="terminal_interface-curses__adb.htm#ref_2175_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                        Back : <b>in</b> Color_Number);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1712_14" HREF="terminal_interface-curses__adb.htm#ref_2140_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_1712_25" HREF="terminal_interface-curses__adb.htm#ref_2140_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+                        <FONT COLOR=red><A NAME="ref_1713_25" HREF="terminal_interface-curses__adb.htm#ref_2141_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                        <FONT COLOR=red><A NAME="ref_1714_25" HREF="terminal_interface-curses__adb.htm#ref_2142_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT>
-   <b>pragma</b> Inline (Init_Pair);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
-   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="ref_1714_28" HREF="terminal_interface-curses__adb.htm#ref_2195_28">Pair</A></FONT> : <b>in</b> Color_Pair;
-                           <FONT COLOR=red><A NAME="ref_1715_28" HREF="terminal_interface-curses__adb.htm#ref_2196_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
-                           Back : <b>out</b> Color_Number);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1719_14" HREF="terminal_interface-curses__adb.htm#ref_2161_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1719_28" HREF="terminal_interface-curses__adb.htm#ref_2161_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+                           <FONT COLOR=red><A NAME="ref_1720_28" HREF="terminal_interface-curses__adb.htm#ref_2162_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                           <FONT COLOR=red><A NAME="ref_1721_28" HREF="terminal_interface-curses__adb.htm#ref_2163_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT>
-   <b>pragma</b> Inline (Pair_Content);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
-   <b>function</b> Has_Colors <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1726_13" HREF="terminal_interface-curses__adb.htm#ref_2181_13">Has_Colors</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT>
-   <b>pragma</b> Inline (Has_Colors);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
-   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="ref_1726_26" HREF="terminal_interface-curses__adb.htm#ref_2227_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
-                         <FONT COLOR=red><A NAME="ref_1727_26" HREF="terminal_interface-curses__adb.htm#ref_2228_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                         <FONT COLOR=red><A NAME="ref_1728_26" HREF="terminal_interface-curses__adb.htm#ref_2229_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                         Blue  : <b>in</b> RGB_Value);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1731_14" HREF="terminal_interface-curses__adb.htm#ref_2193_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_26" HREF="terminal_interface-curses__adb.htm#ref_2193_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                         <FONT COLOR=red><A NAME="ref_1732_26" HREF="terminal_interface-curses__adb.htm#ref_2194_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_1733_26" HREF="terminal_interface-curses__adb.htm#ref_2195_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                         <FONT COLOR=red><A NAME="ref_1734_26" HREF="terminal_interface-curses__adb.htm#ref_2196_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT>
-   <b>pragma</b> Inline (Init_Color);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
-   <b>function</b> Can_Change_Color <b>return</b> Boolean;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1739_13" HREF="terminal_interface-curses__adb.htm#ref_2210_13">Can_Change_Color</A></FONT> <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT>
-   <b>pragma</b> Inline (Can_Change_Color);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
-   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="ref_1739_29" HREF="terminal_interface-curses__adb.htm#ref_2256_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
-                            <FONT COLOR=red><A NAME="ref_1740_29" HREF="terminal_interface-curses__adb.htm#ref_2257_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                            <FONT COLOR=red><A NAME="ref_1741_29" HREF="terminal_interface-curses__adb.htm#ref_2258_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
-                            Blue  : <b>out</b> RGB_Value);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1744_14" HREF="terminal_interface-curses__adb.htm#ref_2222_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1744_29" HREF="terminal_interface-curses__adb.htm#ref_2222_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+                            <FONT COLOR=red><A NAME="ref_1745_29" HREF="terminal_interface-curses__adb.htm#ref_2223_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                            <FONT COLOR=red><A NAME="ref_1746_29" HREF="terminal_interface-curses__adb.htm#ref_2224_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+                            <FONT COLOR=red><A NAME="ref_1747_29" HREF="terminal_interface-curses__adb.htm#ref_2225_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT>
-   <b>pragma</b> Inline (Color_Content);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Not implemented: getsyx, setsyx</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <b>type</b> Curses_Mode <b>is</b> (Curses, Shell);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1756_9">Curses_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1756_25">Curses</A></FONT>, <FONT COLOR=red><A NAME="ref_1756_33">Shell</A></FONT>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
-   <b>procedure</b> Save_Curses_Mode (Mode : <b>in</b> Curses_Mode);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1759_14" HREF="terminal_interface-curses__adb.htm#ref_2246_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1759_32" HREF="terminal_interface-curses__adb.htm#ref_2246_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: def_shell_mode()</EM></FONT>
-   <b>pragma</b> Inline (Save_Curses_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
-   <b>procedure</b> Reset_Curses_Mode (Mode : <b>in</b> Curses_Mode);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_149"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1765_14" HREF="terminal_interface-curses__adb.htm#ref_2264_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1765_33" HREF="terminal_interface-curses__adb.htm#ref_2264_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT>
    <FONT COLOR=green><EM>--  AKA: reset_shell_mode()</EM></FONT>
-   <b>pragma</b> Inline (Reset_Curses_Mode);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_149"#2|</EM></FONT>
-   <b>procedure</b> Save_Terminal_State;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1771_14" HREF="terminal_interface-curses__adb.htm#ref_2282_14">Save_Terminal_State</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT>
-   <b>pragma</b> Inline (Save_Terminal_State);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
-   <b>procedure</b> Reset_Terminal_State;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1776_14" HREF="terminal_interface-curses__adb.htm#ref_2292_14">Reset_Terminal_State</A></FONT>;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT>
-   <b>pragma</b> Inline (Reset_Terminal_State);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A>);
 
-   <b>type</b> Stdscr_Init_Proc <b>is</b> <b>access</b>
-      <b>function</b> (<FONT COLOR=red><A NAME="ref_1776_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Window</A>;
-                Columns :<A HREF="terminal_interface-curses__ads.htm#ref_1774_9"> </A>Column_Count) <b>return</b> Integer;
-   <b>pragma</b> Convention (C, Stdscr_Init_Proc);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1780_9">Stdscr_Init_Proc</A></FONT> <b>is</b> <b>access</b>
+      <b>function</b> (<FONT COLOR=red><A NAME="ref_1781_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+                <FONT COLOR=red><A NAME="ref_1782_17">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> Integer;
+   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>);
    <FONT COLOR=green><EM>--  N.B.: the return value is actually ignored, but it seems to be</EM></FONT>
    <FONT COLOR=green><EM>--        a good practice to return 0 if you think all went fine</EM></FONT>
    <FONT COLOR=green><EM>--        and -1 otherwise.</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
-   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="ref_1784_29" HREF="terminal_interface-curses__adb.htm#ref_2336_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Integer</A>;
-                            Proc  : <b>in</b> Stdscr_Init_Proc);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_152"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1789_14" HREF="terminal_interface-curses__adb.htm#ref_2302_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_1789_29" HREF="terminal_interface-curses__adb.htm#ref_2302_29">Lines</A></FONT> : <b>in</b> Integer;
+                            <FONT COLOR=red><A NAME="ref_1790_29" HREF="terminal_interface-curses__adb.htm#ref_2303_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT>
    <FONT COLOR=green><EM>--  N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT>
    <FONT COLOR=green><EM>--        ripoffline(), in which the Lines argument absolute value is the</EM></FONT>
    <FONT COLOR=green><EM>--        number of lines to be ripped of. The official ripoffline() only</EM></FONT>
    <FONT COLOR=green><EM>--        uses the sign of Lines to rip of a single line from bottom or top.</EM></FONT>
-   <b>pragma</b> Inline (Rip_Off_Lines);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A>);
 
-   <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1798_9">Cursor_Visibility</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1798_31">Invisible</A></FONT>, <FONT COLOR=red><A NAME="ref_1798_42">Normal</A></FONT>, <FONT COLOR=red><A NAME="ref_1798_50">Very_Visible</A></FONT>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_152"#2|</EM></FONT>
-   <b>procedure</b> Set_Cursor_Visibility (Visibility : <b>in</b> <b>out</b> Cursor_Visibility);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_153"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1801_14" HREF="terminal_interface-curses__adb.htm#ref_2314_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_1801_37" HREF="terminal_interface-curses__adb.htm#ref_2314_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT>
-   <b>pragma</b> Inline (Set_Cursor_Visibility);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A>);
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_153"#2|</EM></FONT>
-   <b>procedure</b> Nap_Milli_Seconds (Ms : <b>in</b> Natural);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_154"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1806_14" HREF="terminal_interface-curses__adb.htm#ref_2327_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_1806_33" HREF="terminal_interface-curses__adb.htm#ref_2327_33">Ms</A></FONT> : <b>in</b> Natural);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT>
-   <b>pragma</b> Inline (Nap_Milli_Seconds);
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Some useful helpers.</EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
-   <b>procedure</b> Transform_Coordinates
-     (<FONT COLOR=red><A NAME="ref_1810_7" HREF="terminal_interface-curses__adb.htm#ref_2421_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
-      <FONT COLOR=red><A NAME="ref_1811_7" HREF="terminal_interface-curses__adb.htm#ref_2422_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
-      <FONT COLOR=red><A NAME="ref_1812_7" HREF="terminal_interface-curses__adb.htm#ref_2423_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
-      Dir    : <b>in</b> Transform_Direction := From_Screen);
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1813_9">Transform_Direction</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1813_33">From_Screen</A></FONT>, <FONT COLOR=red><A NAME="ref_1813_46">To_Screen</A></FONT>);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1814_14" HREF="terminal_interface-curses__adb.htm#ref_2395_14">Transform_Coordinates</A></FONT>
+     (<FONT COLOR=red><A NAME="ref_1815_7" HREF="terminal_interface-curses__adb.htm#ref_2396_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+      <FONT COLOR=red><A NAME="ref_1816_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+      <FONT COLOR=red><A NAME="ref_1818_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1813_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1813_33">From_Screen</A>);
    <FONT COLOR=green><EM>--  This procedure transforms screen coordinates into coordinates relative</EM></FONT>
    <FONT COLOR=green><EM>--  to the window and vice versa, depending on the Dir parameter.</EM></FONT>
    <FONT COLOR=green><EM>--  Screen coordinates are the position informations on the physical device.</EM></FONT>
@@ -1824,51 +1829,59 @@
    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_154"#2|</EM></FONT>
-   <b>procedure</b> Use_Default_Colors;
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">use_default_colors()</A></EM></FONT>
-   <b>pragma</b> Inline (Use_Default_Colors);
-
    <FONT COLOR=green><EM>--  #1A NAME="AFU_155"#2|</EM></FONT>
-   <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="ref_1831_37" HREF="terminal_interface-curses__adb.htm#ref_2459_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
-                                    Back : Color_Number := Default_Color);
-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">assume_default_colors()</A></EM></FONT>
-   <b>pragma</b> Inline (Assume_Default_Colors);
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1831_14" HREF="terminal_interface-curses__adb.htm#ref_2424_14">Use_Default_Colors</A></FONT>;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A>);
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_156"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1836_14" HREF="terminal_interface-curses__adb.htm#ref_2434_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_1836_37" HREF="terminal_interface-curses__adb.htm#ref_2434_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+                                    <FONT COLOR=red><A NAME="ref_1837_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>);
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></FONT>
+   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A>);
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_156"#2|</EM></FONT>
-   <b>function</b> Curses_Version <b>return</b> String;
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_157"#2|</EM></FONT>
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1846_13" HREF="terminal_interface-curses__adb.htm#ref_2449_13">Curses_Version</A></FONT> <b>return</b> String;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_157"#2|</EM></FONT>
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_158"#2|</EM></FONT>
    <FONT COLOR=green><EM>--  The returnvalue is the previous setting of the flag</EM></FONT>
-   <b>function</b> Use_Extended_Names (Enable : Boolean) <b>return</b> Boolean;
+   <b>function</b> <FONT COLOR=red><A NAME="ref_1851_13" HREF="terminal_interface-curses__adb.htm#ref_2472_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_1851_33" HREF="terminal_interface-curses__adb.htm#ref_2472_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean;
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT>
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_159"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1859_14" HREF="terminal_interface-curses__adb.htm#ref_2458_14">Curses_Free_All</A></FONT>;
+   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></FONT>
+
+   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_158"#2|</EM></FONT>
-   <b>procedure</b> Screen_Dump_To_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_160"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1867_14" HREF="terminal_interface-curses__adb.htm#ref_2487_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1867_35" HREF="terminal_interface-curses__adb.htm#ref_2487_35">Filename</A></FONT> : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_159"#2|</EM></FONT>
-   <b>procedure</b> Screen_Restore_From_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_161"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1871_14" HREF="terminal_interface-curses__adb.htm#ref_2500_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1871_40" HREF="terminal_interface-curses__adb.htm#ref_2500_40">Filename</A></FONT> : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_160"#2|</EM></FONT>
-   <b>procedure</b> Screen_Init_From_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1875_14" HREF="terminal_interface-curses__adb.htm#ref_2513_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_37" HREF="terminal_interface-curses__adb.htm#ref_2513_37">Filename</A></FONT> : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_161"#2|</EM></FONT>
-   <b>procedure</b> Screen_Set_File (Filename : <b>in</b> String);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_163"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1879_14" HREF="terminal_interface-curses__adb.htm#ref_2526_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1879_31" HREF="terminal_interface-curses__adb.htm#ref_2526_31">Filename</A></FONT> : <b>in</b> String);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></FONT>
 
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
@@ -1899,42 +1912,24 @@
    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></FONT>
    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
 
-   <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
-   <b>procedure</b> Resize (<FONT COLOR=red><A NAME="ref_1898_22" HREF="terminal_interface-curses__adb.htm#ref_2550_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
-                     <FONT COLOR=red><A NAME="ref_1899_22" HREF="terminal_interface-curses__adb.htm#ref_2551_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
-                     Number_Of_Columns : Column_Count);
+   <FONT COLOR=green><EM>--  #1A NAME="AFU_164"#2|</EM></FONT>
+   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1911_14" HREF="terminal_interface-curses__adb.htm#ref_2539_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_1911_22" HREF="terminal_interface-curses__adb.htm#ref_2539_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                     <FONT COLOR=red><A NAME="ref_1912_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+                     <FONT COLOR=red><A NAME="ref_1913_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT>
 
 <b>private</b>
-   <b>type</b> Window <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
-   Null_Window : <b>constant</b> Window := 0;
+   <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+   <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := 0;
 
    <FONT COLOR=green><EM>--  The next constants are generated and may be different on your</EM></FONT>
    <FONT COLOR=green><EM>--  architecture.</EM></FONT>
    <FONT COLOR=green><EM>--</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1910_4">Offset_maxy</A></FONT>        : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1911_4">Offset_maxx</A></FONT>        : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1912_4">Offset_begy</A></FONT>        : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1913_4">Offset_begx</A></FONT>        : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1914_4">Offset_cury</A></FONT>        : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1915_4">Offset_curx</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1916_4">Offset_yoffset</A></FONT>     : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1917_4">Offset_pary</A></FONT>        : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1918_4">Offset_parx</A></FONT>        : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1919_4">Offset_notimeout</A></FONT>   : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1920_4">Offset_clear</A></FONT>       : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1921_4">Offset_leaveok</A></FONT>     : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1922_4">Offset_scroll</A></FONT>      : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1923_4">Offset_idlok</A></FONT>       : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1924_4">Offset_idcok</A></FONT>       : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1925_4">Offset_immed</A></FONT>       : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1926_4">Offset_sync</A></FONT>        : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1927_4">Offset_use_keypad</A></FONT>  : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>--  char</EM></FONT>
-   <FONT COLOR=red><A NAME="ref_1928_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
-   Offset_XY          : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  int</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1923_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
+   <FONT COLOR=red><A NAME="ref_1924_4">Offset_XY</A></FONT>          : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  int</EM></FONT>
 
-   <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Interfaces</A>.C.char'Size;
-   Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
+   <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'Size;
+   <FONT COLOR=red><A NAME="ref_1927_4">Curses_Bool_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := 0;
 
-<b>end</b> Terminal_Interface.Curses;
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
 </PRE></BODY></HTML>
diff -Naur ncurses-5.6.orig/doc/html/man/captoinfo.1m.html ncurses-5.6/doc/html/man/captoinfo.1m.html
--- ncurses-5.6.orig/doc/html/man/captoinfo.1m.html	2006-12-16 17:51:21.000000000 -0500
+++ ncurses-5.6/doc/html/man/captoinfo.1m.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: captoinfo.1m,v 1.20 2006/05/13 15:14:01 tom Exp @
+  * @Id: captoinfo.1m,v 1.21 2006/12/24 18:07:15 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -166,7 +166,7 @@
        GG    acs magic cookie count
 
        If  the  single-line  capabilities occur in an entry, they
-       will automatically be composed into an <STRONG>acsc</STRONG>  string.   The
+       will automatically be composed into an <EM>acsc</EM>  string.   The
        double-line capabilities and <STRONG>GG</STRONG> are discarded with a warn-
        ing message.
 
@@ -183,11 +183,11 @@
        font2   s2ds
        font3   s3ds
 
-       Additionally, the AIX <STRONG>box1</STRONG> capability  will  be  automati-
-       cally translated to an <STRONG>acsc</STRONG> string.
+       Additionally, the AIX <EM>box1</EM> capability  will  be  automati-
+       cally translated to an <EM>acsc</EM> string.
 
        Hewlett-Packard's  terminfo  library supports two nonstan-
-       dard terminfo capabilities <STRONG>meml</STRONG>  (memory  lock)  and  <STRONG>memu</STRONG>
+       dard terminfo capabilities <EM>meml</EM>  (memory  lock)  and  <EM>memu</EM>
        (memory  unlock).   These will be discarded with a warning
        message.
 
@@ -195,7 +195,7 @@
 </PRE>
 <H2>NOTES</H2><PRE>
        This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-I</EM>
-       mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
+       mode.  You can use other <STRONG>tic</STRONG> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
 
        The  trace  option isn't identical to SVr4's.  Under SVr4,
        instead of following the <STRONG>-v</STRONG> with  a  trace  level  n,  you
@@ -206,7 +206,7 @@
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/clear.1.html ncurses-5.6/doc/html/man/clear.1.html
--- ncurses-5.6.orig/doc/html/man/clear.1.html	2006-12-16 17:51:21.000000000 -0500
+++ ncurses-5.6/doc/html/man/clear.1.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: clear.1,v 1.5 2006/07/01 21:55:09 tom Exp @
+  * @Id: clear.1,v 1.6 2006/12/24 18:07:53 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -69,7 +69,7 @@
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_add_wch.3x.html ncurses-5.6/doc/html/man/curs_add_wch.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_add_wch.3x.html	2006-12-16 17:51:22.000000000 -0500
+++ ncurses-5.6/doc/html/man/curs_add_wch.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_add_wch.3x,v 1.5 2006/12/02 17:02:35 tom Exp @
+  * @Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -87,8 +87,7 @@
 
        -    If  the  character  part  of  <EM>wch</EM>  is a tab, newline,
             backspace or other control character, the  window  is
-            updated  and  the  cursor  moves as if <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG> were
-            called.
+            updated and the cursor moves as if <STRONG>addch</STRONG> were called.
 
        The <STRONG>echo_wchar</STRONG> function is functionally  equivalent  to  a
        call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>.  Similarly,
@@ -125,9 +124,8 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,       <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,       <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>,     <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
-       <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,
+       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_addch.3x.html ncurses-5.6/doc/html/man/curs_addch.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_addch.3x.html	2006-12-16 17:51:22.000000000 -0500
+++ ncurses-5.6/doc/html/man/curs_addch.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_addch.3x,v 1.25 2006/12/02 17:02:22 tom Exp @
+  * @Id: curs_addch.3x,v 1.26 2006/12/24 16:05:17 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -192,7 +192,7 @@
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
+       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
 
        Comparable  functions  in  the  wide-character  (ncursesw)
        library are described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
diff -Naur ncurses-5.6.orig/doc/html/man/curs_border.3x.html ncurses-5.6/doc/html/man/curs_border.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_border.3x.html	2006-09-23 16:43:00.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_border.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_border.3x,v 1.18 2006/02/25 21:49:19 tom Exp @
+  * @Id: curs_border.3x,v 1.19 2007/02/24 16:15:38 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -65,8 +65,8 @@
        <STRONG>int</STRONG> <STRONG>whline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
        <STRONG>int</STRONG> <STRONG>vline(chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
        <STRONG>int</STRONG> <STRONG>wvline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
-       <STRONG>mvhline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
-       <STRONG>mvwhline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvhline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mvwhline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
        <STRONG>int</STRONG> <STRONG>mvvline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
        <STRONG>int</STRONG> <STRONG>mvwvline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_extend.3x.html ncurses-5.6/doc/html/man/curs_extend.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_extend.3x.html	2006-09-23 16:43:01.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_extend.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 1999-on
-  * @Id: curs_extend.3x,v 1.15 2006/02/25 21:04:43 tom Exp @
+  * @Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -73,7 +73,7 @@
        standard names which may be  compiled  into  the  terminfo
        description, i.e., via the terminfo or termcap interfaces.
        Normally these names are  available  for  use,  since  the
-       essential  decision  is made by using the <STRONG>-x</STRONG> option of <EM>tic</EM>
+       essential  decision  is made by using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>
        to compile extended terminal definitions.  However you can
        disable  this  feature  to ensure compatibility with other
        implementations of curses.
@@ -90,8 +90,8 @@
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>,       <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,      <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>,
-       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>,     <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,      <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>,
-       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="nofilter.3x.html">nofilter(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,  <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>,  <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,  <STRONG>key-</STRONG>
+       <STRONG><A HREF="keybound.3x.html">bound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/curs_getcchar.3x.html ncurses-5.6/doc/html/man/curs_getcchar.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_getcchar.3x.html	2006-09-23 16:43:01.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_getcchar.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getcchar.3x,v 1.8 2006/07/15 22:51:07 wcmbrine Exp @
+  * @Id: curs_getcchar.3x,v 1.10 2006/12/24 16:00:02 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -136,8 +136,8 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       Functions:   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="wcwidth.3x.html">wcwidth(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
-       <STRONG><A HREF="can_change_color.3x.html">can_change_color(3x)</A></STRONG>.
+       Functions:   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
+       <STRONG><A HREF="wcwidth.3.html">wcwidth(3)</A></STRONG>.
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_insstr.3x.html ncurses-5.6/doc/html/man/curs_insstr.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_insstr.3x.html	2006-09-23 16:43:04.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_insstr.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_insstr.3x,v 1.17 2006/02/25 21:49:19 tom Exp @
+  * @Id: curs_insstr.3x,v 1.18 2006/12/24 14:59:30 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -112,7 +112,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_mouse.3x.html ncurses-5.6/doc/html/man/curs_mouse.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_mouse.3x.html	2005-05-15 13:05:53.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_mouse.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2005,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            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp @
+  * @Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -162,45 +162,48 @@
        screen windows enclose the location of a mouse event.
 
        The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coor-
-       dinates from stdscr-relative coordinates  to  screen-rela-
-       tive  coordinates  or  vice  versa.  Please remember, that
-       stdscr-relative coordinates are not  always  identical  to
-       screen-relative  coordinates  due  to the mechanism to re-
-       serve lines on top or bottom of the screen for other  pur-
-       poses  (ripoff()  call,  see also slk_...  functions).  If
-       the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG>  must
-       reference  the coordinates of a location inside the window
-       <STRONG>win</STRONG>.  They are converted  to  screen-relative  coordinates
-       and  returned through the pointers.  If the conversion was
-       successful, the function returns <STRONG>TRUE</STRONG>.  If one of the  pa-
-       rameters  was  NULL or the location is not inside the win-
-       dow, <STRONG>FALSE</STRONG> is returned.  If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the point-
-       ers  <STRONG>pY,</STRONG>  <STRONG>pX</STRONG>  must  reference screen-relative coordinates.
-       They are converted to stdscr-relative coordinates  if  the
-       window <STRONG>win</STRONG> encloses this point.  In this case the function
-       returns <STRONG>TRUE</STRONG>.  If one of the parameters  is  NULL  or  the
-       point is not inside the window, <STRONG>FALSE</STRONG> is returned.  Please
-       notice, that the referenced coordinates are only  replaced
-       by  the  converted  coordinates  if the transformation was
-       successful.
+       dinates from stdscr-relative  coordinates  to  coordinates
+       relative to the given window or vice versa.  Please remem-
+       ber, that stdscr-relative coordinates are not always iden-
+       tical  to window-relative coordinates due to the mechanism
+       to reserve lines on top or bottom of the screen for  other
+       purposes (see the <STRONG>ripoffline()</STRONG> and <STRONG>slk_init</STRONG> calls, for ex-
+       ample).  If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the  pointers
+       <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference the coordinates of a location inside
+       the window <STRONG>win</STRONG>.  They are converted to window-relative co-
+       ordinates  and returned through the pointers.  If the con-
+       version was successful, the function returns <STRONG>TRUE</STRONG>.  If one
+       of  the  parameters was NULL or the location is not inside
+       the window, <STRONG>FALSE</STRONG> is returned.  If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the
+       pointers  <STRONG>pY,</STRONG>  <STRONG>pX</STRONG>  must  reference window-relative coordi-
+       nates.  They are converted to stdscr-relative  coordinates
+       if  the  window <STRONG>win</STRONG> encloses this point.  In this case the
+       function returns <STRONG>TRUE</STRONG>.  If one of the parameters  is  NULL
+       or  the point is not inside the window, <STRONG>FALSE</STRONG> is returned.
+       Please notice, that the referenced  coordinates  are  only
+       replaced  by  the converted coordinates if the transforma-
+       tion was successful.
+
+       The <STRONG>mouse_trafo</STRONG> function performs the same translation  as
+       <STRONG>wmouse_trafo</STRONG>, using stdscr for <STRONG>win</STRONG>.
 
        The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou-
-       sands  of  a second) that can elapse between press and re-
-       lease events for them to be recognized as  a  click.   Use
-       <STRONG>mouseinterval(0)</STRONG>  to disable click resolution.  This func-
+       sands of a second) that can elapse between press  and  re-
+       lease  events  for  them to be recognized as a click.  Use
+       <STRONG>mouseinterval(0)</STRONG> to disable click resolution.  This  func-
        tion returns the previous interval value.  Use <STRONG>mouseinter-</STRONG>
-       <STRONG>val(-1)</STRONG>  to  obtain the interval without altering it.  The
+       <STRONG>val(-1)</STRONG> to obtain the interval without altering  it.   The
        default is one sixth of a second.
 
-       Note that mouse events will be ignored when  input  is  in
+       Note  that  mouse  events will be ignored when input is in
        cooked mode, and will cause an error beep when cooked mode
-       is being simulated in a window by a function such as  <STRONG>get-</STRONG>
+       is  being simulated in a window by a function such as <STRONG>get-</STRONG>
        <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       <STRONG>getmouse</STRONG>  and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail-
+       <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon  fail-
        ure or <STRONG>OK</STRONG> upon successful completion.
 
               <STRONG>getmouse</STRONG>
@@ -212,83 +215,85 @@
 
        <STRONG>mousemask</STRONG> returns the mask of reportable events.
 
-       <STRONG>mouseinterval</STRONG>  returns the previous interval value, unless
-       the terminal was not initialized.  In that  case,  it  re-
+       <STRONG>mouseinterval</STRONG> returns the previous interval value,  unless
+       the  terminal  was  not initialized.  In that case, it re-
        turns the maximum interval value (166).
 
-       <STRONG>wenclose</STRONG>  and <STRONG>wmouse_trafo</STRONG> are boolean functions returning
+       <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions  returning
        <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       These calls were designed for  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  and  are  not
+       These  calls  were  designed  for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not
        found in SVr4 curses, 4.4BSD curses, or any other previous
        version of curses.
 
        The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
-       preprocessor  can  be  used to test whether these features
-       are present.  If the interface is changed,  the  value  of
-       <STRONG>NCURSES_MOUSE_VERSION</STRONG>  will  be incremented.  These values
-       for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when  configur-
+       preprocessor can be used to test  whether  these  features
+       are  present.   If  the interface is changed, the value of
+       <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incremented.   These  values
+       for  <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when configur-
        ing ncurses:
 
-              1  has  definitions  for reserved events.  The mask
+              1  has definitions for reserved events.   The  mask
                  uses 28 bits.
 
               2  adds definitions for button 5, removes the defi-
-                 nitions  for  reserved events.  The mask uses 29
+                 nitions for reserved events.  The mask  uses  29
                  bits.
 
-       The order of the <STRONG>MEVENT</STRONG> structure members is  not  guaran-
-       teed.   Additional fields may be added to the structure in
+       The  order  of the <STRONG>MEVENT</STRONG> structure members is not guaran-
+       teed.  Additional fields may be added to the structure  in
        the future.
 
-       Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented  using  ei-
-       ther  xterm's built-in mouse-tracking API or platform-spe-
+       Under  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  these calls are implemented using ei-
+       ther xterm's built-in mouse-tracking API or  platform-spe-
        cific drivers including
               Alessandro Rubini's gpm server.
               FreeBSD sysmouse
               OS/2 EMX
-       If you  are  using  an  unsupported  configuration,  mouse
-       events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the <STRONG>wmouse-</STRONG>
+       If  you  are  using  an  unsupported  configuration, mouse
+       events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the  <STRONG>mouse-</STRONG>
        <STRONG>mask</STRONG> function will always return <STRONG>0</STRONG>).
 
-       If the terminfo entry contains a <STRONG>XM</STRONG> string, this  is  used
-       in  the xterm mouse driver to control the way the terminal
+       If  the  terminfo entry contains a <STRONG>XM</STRONG> string, this is used
+       in the xterm mouse driver to control the way the  terminal
        is initialized for mouse operation.  The default, if <STRONG>XM</STRONG> is
        not found, corresponds to private mode 1000 of xterm:
               \E[?1000%?%p1%{1}%=%th%el%;
        The z member in the event structure is not presently used.
-       It is intended for use with touch screens  (which  may  be
+       It  is  intended  for use with touch screens (which may be
        pressure-sensitive)   or   with   3D-mice/trackballs/power
        gloves.
 
 
 </PRE>
 <H2>BUGS</H2><PRE>
-       Mouse events under xterm will not in fact be ignored  dur-
-       ing  cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
-       Instead, the xterm mouse report sequence  will  appear  in
+       Mouse  events under xterm will not in fact be ignored dur-
+       ing cooked mode, if they have been enabled  by  <STRONG>mousemask</STRONG>.
+       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  inter-
-       preted  as  a  variety of function key.  Your terminfo de-
-       scription must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning  of
-       the response from xterm for mouse clicks).
-
-       Because  there  are  no  standard  terminal responses that
-       would serve to identify terminals which support the  xterm
-       mouse  protocol,  <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
-       ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined  in
+       a  window  with  its keypad bit off, since they are inter-
+       preted as a variety of function key.   Your  terminfo  de-
+       scription  should  have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
+       of the response from xterm for mouse clicks).  Other  val-
+       ues  for  <STRONG>kmous</STRONG>  are permitted, but under the same assump-
+       tion, 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, <STRONG>ncurses</STRONG> assumes that if your  $TERM  envi-
+       ronment  variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
        the terminal description, then the terminal may send mouse
        events.
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>.
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_printw.3x.html ncurses-5.6/doc/html/man/curs_printw.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_printw.3x.html	2006-09-23 16:43:06.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_printw.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_printw.3x,v 1.16 2006/02/25 21:49:19 tom Exp @
+  * @Id: curs_printw.3x,v 1.17 2006/12/24 16:05:17 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -69,12 +69,12 @@
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The  <STRONG>printw</STRONG>,  <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are
-       analogous to <STRONG>printf</STRONG>  [see  <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>].   In  effect,  the
+       analogous to  <STRONG>printf</STRONG>  [see  <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>].   In  effect,  the
        string that would be output by <STRONG>printf</STRONG> is output instead as
        though <STRONG>waddstr</STRONG> were used on the given window.
 
        The <STRONG>vwprintw</STRONG>  and  <STRONG>wv_printw</STRONG>  routines  are  analogous  to
-       <STRONG>vprintf</STRONG>  [see  <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>]  and  perform a <STRONG>wprintw</STRONG> using a
+       <STRONG>vprintf</STRONG>  [see  <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>]  and  perform  a <STRONG>wprintw</STRONG> using a
        variable argument list.  The third argument is a  <STRONG>va_list</STRONG>,
        a   pointer   to  a  list  of  arguments,  as  defined  in
        <STRONG>&lt;stdarg.h&gt;</STRONG>.
@@ -107,7 +107,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG>vprintf(3S)</STRONG>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG>vprintf(3)</STRONG>
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_scanw.3x.html ncurses-5.6/doc/html/man/curs_scanw.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_scanw.3x.html	2006-09-23 16:43:07.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_scanw.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_scanw.3x,v 1.13 2006/02/25 21:42:22 tom Exp @
+  * @Id: curs_scanw.3x,v 1.14 2006/12/24 16:05:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -66,7 +66,7 @@
 </PRE>
 <H2>DESCRIPTION</H2><PRE>
        The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines  are  analogous  to
-       <STRONG>scanf</STRONG> [see <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>].  The effect of these routines is as
+       <STRONG>scanf</STRONG>  [see <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>].  The effect of these routines is as
        though <STRONG>wgetstr</STRONG> were called on the window, and the  result-
        ing line used as input for <STRONG><A HREF="sscanf.3.html">sscanf(3)</A></STRONG>.  Fields which do not
        map to a variable in the <EM>fmt</EM> field are lost.
@@ -114,7 +114,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_scr_dump.3x.html ncurses-5.6/doc/html/man/curs_scr_dump.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_scr_dump.3x.html	2006-09-23 16:43:07.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_scr_dump.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_scr_dump.3x,v 1.6 2006/02/25 21:49:19 tom Exp @
+  * @Id: curs_scr_dump.3x,v 1.7 2006/12/24 16:05:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -122,7 +122,7 @@
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,      <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3S.html">system(3S)</A></STRONG>
+       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3.html">system(3)</A></STRONG>
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_termcap.3x.html ncurses-5.6/doc/html/man/curs_termcap.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_termcap.3x.html	2006-09-23 16:43:08.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_termcap.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_termcap.3x,v 1.20 2006/02/25 21:50:01 tom Exp @
+  * @Id: curs_termcap.3x,v 1.21 2006/12/24 16:05:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -175,7 +175,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_terminfo.3x.html ncurses-5.6/doc/html/man/curs_terminfo.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_terminfo.3x.html	2006-12-16 17:51:32.000000000 -0500
+++ ncurses-5.6/doc/html/man/curs_terminfo.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_terminfo.3x,v 1.24 2006/11/04 21:50:03 tom Exp @
+  * @Id: curs_terminfo.3x,v 1.26 2007/02/24 16:37:50 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -62,7 +62,7 @@
        <STRONG>int</STRONG> <STRONG>setterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>);</STRONG>
        <STRONG>TERMINAL</STRONG> <STRONG>*set_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>nterm</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>del_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>oterm</EM><STRONG>);</STRONG>
-       <STRONG>int</STRONG> <STRONG>restartterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>restartterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
        <STRONG>char</STRONG> <STRONG>*tparm(char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
        <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
        <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
@@ -318,7 +318,7 @@
 </PRE>
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG>
-       <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+       <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/curs_trace.3x.html ncurses-5.6/doc/html/man/curs_trace.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_trace.3x.html	2005-05-15 13:05:56.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_trace.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2000-2002,2005 Free Software Foundation, Inc.              *
+  * Copyright (c) 2000-2005,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp @
+  * @Id: curs_trace.3x,v 1.8 2007/02/24 17:33:49 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -61,7 +61,7 @@
        <STRONG>char</STRONG> <STRONG>*_traceattr(attr_t</STRONG> <STRONG>attr);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_traceattr2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_nc_tracebits(void);</STRONG>
-       <STRONG>char</STRONG> <STRONG>*_tracechar(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>char</STRONG> <STRONG>ch);</STRONG>
+       <STRONG>char</STRONG> <STRONG>*_tracechar(int);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_tracechtype(chtype</STRONG> <STRONG>ch);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_tracechtype2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
        <STRONG>char</STRONG> <STRONG>*_tracemouse(const</STRONG> <STRONG>MEVENT</STRONG> <STRONG>*event);</STRONG>
diff -Naur ncurses-5.6.orig/doc/html/man/curs_util.3x.html ncurses-5.6/doc/html/man/curs_util.3x.html
--- ncurses-5.6.orig/doc/html/man/curs_util.3x.html	2006-09-23 16:43:09.000000000 -0400
+++ ncurses-5.6/doc/html/man/curs_util.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!-- 
   ****************************************************************************
-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_util.3x,v 1.21 2006/08/26 14:17:48 tom Exp @
+  * @Id: curs_util.3x,v 1.23 2007/02/24 15:59:07 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -57,7 +57,7 @@
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
        <STRONG>char</STRONG> <STRONG>*unctrl(chtype</STRONG> <STRONG>c);</STRONG>
-       <STRONG>char</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*c);</STRONG>
+       <STRONG>wchar_t</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*c);</STRONG>
        <STRONG>char</STRONG> <STRONG>*keyname(int</STRONG> <STRONG>c);</STRONG>
        <STRONG>char</STRONG> <STRONG>*key_name(wchar_t</STRONG> <STRONG>w);</STRONG>
        <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
@@ -191,8 +191,8 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="use_legacy_coding.3.html">use_legacy_coding(3)</A></STRONG>,    <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,     <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
-       <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
+       <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG>curs_ker-</STRONG>
+       <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/default_colors.3x.html ncurses-5.6/doc/html/man/default_colors.3x.html
--- ncurses-5.6.orig/doc/html/man/default_colors.3x.html	2006-09-23 16:43:09.000000000 -0400
+++ ncurses-5.6/doc/html/man/default_colors.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 1997,1999,2000,2005
-  * @Id: default_colors.3x,v 1.19 2006/02/25 21:49:19 tom Exp @
+  * @Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -121,7 +121,7 @@
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       Associated with this extension, the <STRONG><A HREF="init_pair.3x.html">init_pair(3x)</A></STRONG> function
+       Associated  with  this  extension,  the <STRONG>init_pair</STRONG> function
        accepts negative arguments to specify  default  foreground
        or background colors.
 
diff -Naur ncurses-5.6.orig/doc/html/man/form.3x.html ncurses-5.6/doc/html/man/form.3x.html
--- ncurses-5.6.orig/doc/html/man/form.3x.html	2006-12-16 17:51:33.000000000 -0500
+++ ncurses-5.6/doc/html/man/form.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -236,7 +236,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/form_field_new.3x.html ncurses-5.6/doc/html/man/form_field_new.3x.html
--- ncurses-5.6.orig/doc/html/man/form_field_new.3x.html	2006-12-16 17:51:35.000000000 -0500
+++ ncurses-5.6/doc/html/man/form_field_new.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_field_new.3x,v 1.14 2006/11/04 17:12:00 tom Exp @
+  * @Id: form_field_new.3x,v 1.15 2006/12/24 14:56:41 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -127,9 +127,9 @@
        were not supported on Version 7 or BSD versions.
 
        It may be unwise to count on the set of attributes  copied
-       by  <STRONG><A HREF="dup_field.3x.html">dup_field(3x)</A></STRONG>  being  portable;  the  System  V  forms
-       library documents are not very explicit  about  what  gets
-       copied and what doesn't.
+       by  <STRONG>dup_field</STRONG>  being  portable; the System V forms library
+       documents are not very explicit about what gets copied and
+       what doesn't.
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/form_field_opts.3x.html ncurses-5.6/doc/html/man/form_field_opts.3x.html
--- ncurses-5.6.orig/doc/html/man/form_field_opts.3x.html	2006-12-16 17:51:36.000000000 -0500
+++ ncurses-5.6/doc/html/man/form_field_opts.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_field_opts.3x,v 1.12 2006/11/04 17:12:00 tom Exp @
+  * @Id: form_field_opts.3x,v 1.13 2007/02/24 17:34:27 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -54,10 +54,10 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
-       int set_field_opts(FIELD *field, OPTIONS opts);
-       int field_opts_on(FIELD *field, OPTIONS opts);
-       int field_opts_off(FIELD *field, OPTIONS opts);
-       OPTIONS field_opts(const FIELD *field);
+       int set_field_opts(FIELD *field, Field_Options opts);
+       int field_opts_on(FIELD *field, Field_Options opts);
+       int field_opts_off(FIELD *field, Field_Options opts);
+       Field_Options field_opts(const FIELD *field);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/form_field_validation.3x.html ncurses-5.6/doc/html/man/form_field_validation.3x.html
--- ncurses-5.6.orig/doc/html/man/form_field_validation.3x.html	2006-12-16 17:51:36.000000000 -0500
+++ ncurses-5.6/doc/html/man/form_field_validation.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_field_validation.3x,v 1.15 2006/11/04 17:14:19 tom Exp @
+  * @Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -124,16 +124,16 @@
             Regular expression data.  Requires a regular  expres-
             sion  <STRONG>(char</STRONG>  <STRONG>*)</STRONG>  third argument; the data is valid if
             the regular expression matches it.   Regular  expres-
-            sions   are   in   the   format  of  <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG>  and
-            <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>. Please notice that the  regular  expres-
-            sion  must  match  the  whole  field. If you have for
-            example an eight  character  wide  field,  a  regular
-            expression  "^[0-9]*$"  always means that you have to
-            fill all eight positions with digits. If you want  to
-            allow  fewer digits, you may use for example "^[0-9]*
-            *$" which is good for trailing spaces (up to an empty
-            field),  or  "^ *[0-9]* *$" which is good for leading
-            and trailing spaces around the digits.
+            sions  are  in  the  format  of  <STRONG>regcomp</STRONG> and <STRONG>regexec</STRONG>.
+            Please notice that the regular expression must  match
+            the  whole  field.  If  you have for example an eight
+            character wide field, a regular expression "^[0-9]*$"
+            always  means  that  you have to fill all eight posi-
+            tions with digits. If you want to allow fewer digits,
+            you  may  use  for example "^[0-9]* *$" which is good
+            for trailing spaces (up to an  empty  field),  or  "^
+            *[0-9]*  *$"  which  is good for leading and trailing
+            spaces around the digits.
 
        TYPE_IPV4
             An Internet Protocol Version 4 address. This requires
diff -Naur ncurses-5.6.orig/doc/html/man/form_hook.3x.html ncurses-5.6/doc/html/man/form_hook.3x.html
--- ncurses-5.6.orig/doc/html/man/form_hook.3x.html	2006-12-16 17:51:36.000000000 -0500
+++ ncurses-5.6/doc/html/man/form_hook.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
+  * @Id: form_hook.3x,v 1.9 2007/02/24 17:34:18 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -55,14 +55,14 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
-       int set_field_init(FORM *form, void (*func)(FORM *));
-       void (*)(FORM *) field_init(const FORM *form);
-       int set_field_term(FORM *form, void (*func)(FORM *));
-       void (*)(FORM *) field_term(const FORM *form);
-       int set_form_init(FORM *form, void (*func)(FORM *));
-       void (*)(FORM *) form_init(const FORM *form);
-       int set_form_term(FORM *form, void (*func)(FORM *));
-       void (*)(FORM *) form_term(const FORM *form);
+       int set_field_init(FORM *form, Form_Hook func);
+       Form_Hook field_init(const FORM *form);
+       int set_field_term(FORM *form, Form_Hook func);
+       Form_Hook field_term(const FORM *form);
+       int set_form_init(FORM *form, Form_Hook func);
+       Form_Hook form_init(const FORM *form);
+       int set_form_term(FORM *form, Form_Hook func);
+       Form_Hook form_term(const FORM *form);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/form_opts.3x.html ncurses-5.6/doc/html/man/form_opts.3x.html
--- ncurses-5.6.orig/doc/html/man/form_opts.3x.html	2006-12-16 17:51:37.000000000 -0500
+++ ncurses-5.6/doc/html/man/form_opts.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: form_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
+  * @Id: form_opts.3x,v 1.9 2007/02/24 17:34:36 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -54,10 +54,10 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
-       int set_form_opts(FORM *form, OPTIONS opts);
-       int form_opts_on(FORM *form, OPTIONS opts);
-       int form_opts_off(FORM *form, OPTIONS opts);
-       OPTIONS form_opts(const FORM *form);
+       int set_form_opts(FORM *form, Field_Options opts);
+       int form_opts_on(FORM *form, Field_Options opts);
+       int form_opts_off(FORM *form, Field_Options opts);
+       Field_Options form_opts(const FORM *form);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/index.html ncurses-5.6/doc/html/man/index.html
--- ncurses-5.6.orig/doc/html/man/index.html	2006-04-22 18:29:12.000000000 -0400
+++ ncurses-5.6/doc/html/man/index.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: index.html,v 1.2 2006/04/22 22:29:12 tom Exp $
+  $Id: index.html,v 1.3 2006/12/24 23:05:35 tom Exp $
   ****************************************************************************
   * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
   *                                                                          *
@@ -33,7 +33,6 @@
 <HEAD>
 <TITLE>NCURSES - Manual Pages</TITLE>
 <LINK REV=MADE HREF="mailto:dickey@invisible-island.net">
-<BASE HREF="http://invisible-island.net/ncurses/man/">
 </HEAD>
 <BODY>
 <HR>
diff -Naur ncurses-5.6.orig/doc/html/man/infocmp.1m.html ncurses-5.6/doc/html/man/infocmp.1m.html
--- ncurses-5.6.orig/doc/html/man/infocmp.1m.html	2006-12-16 17:51:38.000000000 -0500
+++ ncurses-5.6/doc/html/man/infocmp.1m.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infocmp.1m,v 1.43 2006/05/13 15:14:01 tom Exp @
+  * @Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -423,7 +423,7 @@
        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,    <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,     <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,     <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/infotocap.1m.html ncurses-5.6/doc/html/man/infotocap.1m.html
--- ncurses-5.6.orig/doc/html/man/infotocap.1m.html	2006-12-16 17:51:38.000000000 -0500
+++ ncurses-5.6/doc/html/man/infotocap.1m.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infotocap.1m,v 1.6 2006/05/13 15:35:45 tom Exp @
+  * @Id: infotocap.1m,v 1.8 2006/12/24 20:13:56 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -85,7 +85,7 @@
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-C</EM>
+       This utility is actually a link  to  <EM>tic</EM>,  running  in  <EM>-C</EM>
        mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
 
 
@@ -93,7 +93,7 @@
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/legacy_coding.3x.html ncurses-5.6/doc/html/man/legacy_coding.3x.html
--- ncurses-5.6.orig/doc/html/man/legacy_coding.3x.html	2006-09-23 16:43:15.000000000 -0400
+++ ncurses-5.6/doc/html/man/legacy_coding.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey
-  * @Id: legacy_coding.3x,v 1.2 2006/02/25 21:50:01 tom Exp @
+  * @Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -70,21 +70,20 @@
        The <EM>level</EM> parameter controls the result:
 
               0    the library functions normally, rendering non-
-                   printing   characters  as  described  in  <STRONG>unc-</STRONG>
-                   <STRONG><A HREF="unctrl.3x.html">trl(3x)</A></STRONG>.
+                   printing characters as described in <STRONG>unctrl</STRONG>.
 
-              1    the library ignores <STRONG>isprintf</STRONG> for codes in  the
+              1    the  library ignores <STRONG>isprintf</STRONG> for codes in the
                    range 160-255.
 
-              2    the  library ignores <STRONG>isprintf</STRONG> for codes in the
+              2    the library ignores <STRONG>isprintf</STRONG> for codes in  the
                    range 128-255.  It also modifies the output of
-                   <STRONG>unctrl</STRONG>,  showing codes in the range 128-159 as
+                   <STRONG>unctrl</STRONG>, showing codes in the range 128-159  as
                    is.
 
 
 </PRE>
 <H2>RETURN VALUE</H2><PRE>
-       If the screen has  not  been  initialized,  or  the  <EM>level</EM>
+       If  the  screen  has  not  been  initialized, or the <EM>level</EM>
        parameter is out of range, the function returns <STRONG>ERR</STRONG>.  Oth-
        erwise, it returns the previous level: <STRONG>0</STRONG>, <STRONG>1</STRONG> or <STRONG>2</STRONG>.
 
@@ -93,7 +92,7 @@
 <H2>PORTABILITY</H2><PRE>
        This routine is specific to ncurses.  It was not supported
        on Version 7, BSD or System V implementations.  It is rec-
-       ommended that any code depending on ncurses extensions  be
+       ommended  that any code depending on ncurses extensions be
        conditioned using NCURSES_VERSION.
 
 
@@ -104,7 +103,7 @@
 
 </PRE>
 <H2>AUTHOR</H2><PRE>
-       Thomas  Dickey (to support lynx's font-switching feature).
+       Thomas Dickey (to support lynx's font-switching  feature).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/menu.3x.html ncurses-5.6/doc/html/man/menu.3x.html
--- ncurses-5.6.orig/doc/html/man/menu.3x.html	2006-12-16 17:51:40.000000000 -0500
+++ ncurses-5.6/doc/html/man/menu.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -226,7 +226,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/menu_hook.3x.html ncurses-5.6/doc/html/man/menu_hook.3x.html
--- ncurses-5.6.orig/doc/html/man/menu_hook.3x.html	2006-12-16 17:51:41.000000000 -0500
+++ ncurses-5.6/doc/html/man/menu_hook.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: menu_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
+  * @Id: menu_hook.3x,v 1.9 2007/02/24 17:34:08 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -55,14 +55,14 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
-       int set_item_init(MENU *menu, void (*func)(MENU *));
-       void (*)(MENU *) item_init(const MENU *menu);
-       int set_item_term(MENU *menu, void (*func)(MENU *));
-       void (*)(MENU *) item_term(const MENU *menu);
-       int set_menu_init(MENU *menu, void (*func)(MENU *));
-       void (*)(MENU *) menu_init(const MENU *menu);
-       int set_menu_term(MENU *menu, void (*func)(MENU *));
-       void (*)(MENU *) menu_term(const MENU *menu);
+       int set_item_init(MENU *menu, Menu_Hook func);
+       Menu_Hook item_init(const MENU *menu);
+       int set_item_term(MENU *menu, Menu_Hook func);
+       Menu_Hook item_term(const MENU *menu);
+       int set_menu_init(MENU *menu, Menu_Hook func);
+       Menu_Hook menu_init(const MENU *menu);
+       int set_menu_term(MENU *menu, Menu_Hook func);
+       Menu_Hook menu_term(const MENU *menu);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/menu_opts.3x.html ncurses-5.6/doc/html/man/menu_opts.3x.html
--- ncurses-5.6.orig/doc/html/man/menu_opts.3x.html	2006-12-16 17:51:42.000000000 -0500
+++ ncurses-5.6/doc/html/man/menu_opts.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: menu_opts.3x,v 1.9 2006/11/04 17:12:00 tom Exp @
+  * @Id: menu_opts.3x,v 1.10 2007/02/24 17:33:59 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -54,10 +54,10 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
-       int set_menu_opts(MENU *menu, OPTIONS opts);
-       int menu_opts_on(MENU *menu, OPTIONS opts);
-       int menu_opts_off(MENU *menu, OPTIONS opts);
-       OPTIONS menu_opts(const MENU *menu);
+       int set_menu_opts(MENU *menu, Menu_Options opts);
+       int menu_opts_on(MENU *menu, Menu_Options opts);
+       int menu_opts_off(MENU *menu, Menu_Options opts);
+       Menu_Options menu_opts(const MENU *menu);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/mitem_opts.3x.html ncurses-5.6/doc/html/man/mitem_opts.3x.html
--- ncurses-5.6.orig/doc/html/man/mitem_opts.3x.html	2006-12-16 17:51:44.000000000 -0500
+++ ncurses-5.6/doc/html/man/mitem_opts.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: mitem_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
+  * @Id: mitem_opts.3x,v 1.9 2007/02/24 17:33:32 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -54,10 +54,10 @@
 </PRE>
 <H2>SYNOPSIS</H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
-       int set_item_opts(ITEM *item, OPTIONS opts);
-       int item_opts_on(ITEM *item, OPTIONS opts);
-       int item_opts_off(ITEM *item, OPTIONS opts);
-       OPTIONS item_opts(const ITEM *item);
+       int set_item_opts(ITEM *item, Item_Options opts);
+       int item_opts_on(ITEM *item, Item_Options opts);
+       int item_opts_off(ITEM *item, Item_Options opts);
+       Item_Options item_opts(const ITEM *item);
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/ncurses.3x.html ncurses-5.6/doc/html/man/ncurses.3x.html
--- ncurses-5.6.orig/doc/html/man/ncurses.3x.html	2006-12-16 17:51:45.000000000 -0500
+++ ncurses-5.6/doc/html/man/ncurses.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.81 2006/12/02 19:23:11 tom Exp @
+  * @Id: ncurses.3x,v 1.82 2006/12/24 14:44:05 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -63,7 +63,7 @@
        sonable   optimization.    This  implementation  is  ``new
        curses'' (ncurses) and is  the  approved  replacement  for
        4.4BSD  classic curses, which has been discontinued.  This
-       describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
        The <STRONG>ncurses</STRONG> routines emulate  the  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  library  of
        System V Release 4 UNIX, and the XPG4 curses standard (XSI
@@ -774,9 +774,9 @@
        NCURSES_ASSUMED_COLORS
             Override  the  compiled-in assumption that the termi-
             nal's  default   colors   are   white-on-black   (see
-            <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>).   You  may  set the fore-
-            ground and background color values with this environ-
-            ment   variable   by   proving   a   2-element  list:
+            <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>).   You may set the foreground and
+            background color values with this  environment  vari-
+            able     by     proving     a     2-element     list:
             foreground,background.  For example, to tell  ncurses
             to  not assume anything about the colors, set this to
             "-1,-1".  To make it green-on-black, set it to "2,0".
diff -Naur ncurses-5.6.orig/doc/html/man/panel.3x.html ncurses-5.6/doc/html/man/panel.3x.html
--- ncurses-5.6.orig/doc/html/man/panel.3x.html	2006-12-16 17:51:45.000000000 -0500
+++ ncurses-5.6/doc/html/man/panel.3x.html	2008-06-18 06:49:44.000000000 -0400
@@ -213,7 +213,7 @@
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 </PRE>
diff -Naur ncurses-5.6.orig/doc/html/man/term.5.html ncurses-5.6/doc/html/man/term.5.html
--- ncurses-5.6.orig/doc/html/man/term.5.html	2006-12-16 17:51:45.000000000 -0500
+++ ncurses-5.6/doc/html/man/term.5.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,20 +27,20 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.17 2006/12/03 01:08:16 tom Exp @
+  * @Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp @
 -->
 <HTML>
 <HEAD>
-<TITLE>TERM 5</TITLE>
+<TITLE>term 5</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>TERM 5</H1>
+<H1>term 5</H1>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>                                                         <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+<STRONG><A HREF="term.5.html">term(5)</A></STRONG>                                                         <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 
 
 
@@ -95,7 +95,7 @@
        assumptions about byte  ordering  or  sign  extension  are
        made.
 
-       The  compiled  file  is  created with the <EM>tic</EM> program, and
+       The  compiled  file  is  created with the <STRONG>tic</STRONG> program, and
        read by the routine <EM>setupterm</EM>.  The file is  divided  into
        six parts: the header, terminal names, boolean flags, num-
        bers, strings, and string table.
@@ -297,7 +297,7 @@
 
 
 
-                                                                <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+                                                                <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
diff -Naur ncurses-5.6.orig/doc/html/man/term.7.html ncurses-5.6/doc/html/man/term.7.html
--- ncurses-5.6.orig/doc/html/man/term.7.html	2006-09-23 16:43:22.000000000 -0400
+++ ncurses-5.6/doc/html/man/term.7.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,20 +27,20 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.7,v 1.15 2006/02/25 21:47:06 tom Exp @
+  * @Id: term.7,v 1.17 2006/12/24 18:14:09 tom Exp @
 -->
 <HTML>
 <HEAD>
-<TITLE>TERM 7</TITLE>
+<TITLE>term 7</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>TERM 7</H1>
+<H1>term 7</H1>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>                                                         <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+<STRONG><A HREF="term.7.html">term(7)</A></STRONG>                                                         <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
 
 
 
@@ -98,7 +98,7 @@
        from your shell.  These capability files are in  a  binary
        format optimized for retrieval speed (unlike the old text-
        based <STRONG>termcap</STRONG> format they replace); to examine  an  entry,
-       you  must  use  the <STRONG><A HREF="infocmp.1.html">infocmp(1)</A></STRONG> command.  Invoke it as fol-
+       you  must  use the <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> command.  Invoke it as fol-
        lows:
 
             infocmp <EM>entry-name</EM>
@@ -240,7 +240,7 @@
 
 
 
-                                                                <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+                                                                <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
diff -Naur ncurses-5.6.orig/doc/html/man/terminfo.5.html ncurses-5.6/doc/html/man/terminfo.5.html
--- ncurses-5.6.orig/doc/html/man/terminfo.5.html	2006-12-16 17:51:46.000000000 -0500
+++ ncurses-5.6/doc/html/man/terminfo.5.html	2008-06-18 06:49:44.000000000 -0400
@@ -32,9 +32,9 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.13 2006/05/13 15:35:45 tom Exp @
+  * @Id: terminfo.head,v 1.15 2006/12/24 18:04:42 tom Exp @
   * Head of terminfo man page ends here
-  * @Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp @
+  * @Id: terminfo.tail,v 1.47 2006/12/24 18:14:22 tom Exp @
   * Beginning of terminfo.tail file
   * This file is part of ncurses.
   * See "terminfo.head" for copyright.
@@ -46,16 +46,16 @@
 -->
 <HTML>
 <HEAD>
-<TITLE>TERMINFO 5   File Formats</TITLE>
+<TITLE>terminfo 5   File Formats</TITLE>
 <link rev=made href="mailto:bug-ncurses@gnu.org">
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </HEAD>
 <BODY>
-<H1>TERMINFO 5   File Formats</H1>
+<H1>terminfo 5   File Formats</H1>
 <HR>
 <PRE>
 <!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 
 
@@ -78,7 +78,7 @@
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and  initialization  sequences.
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
        Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
        fields (embedded commas may be escaped with a backslash or
@@ -95,13 +95,13 @@
 
        Lines beginning with a `#' in the first column are treated
        as  comments.  While comment lines are legal at any point,
-       the output of <EM>captoinfo</EM> and <EM>infotocap</EM>  (aliases  for  <EM>tic</EM>)
+       the output of <STRONG>captoinfo</STRONG> and <STRONG>infotocap</STRONG>  (aliases  for  <STRONG>tic</STRONG>)
        will move comments so they occur only between entries.
 
        Newlines  and  leading  tabs  may  be  used for formatting
        entries for readability.  These are  removed  from  parsed
-       entries.   The  <EM>infocmp</EM> <EM>-f</EM> option relies on this to format
-       if-then-else expressions: the result can be read by <EM>tic</EM>.
+       entries.   The  <STRONG>infocmp</STRONG> <STRONG>-f</STRONG> option relies on this to format
+       if-then-else expressions: the result can be read by <STRONG>tic</STRONG>.
 
        Terminal names (except for the last, verbose entry) should
        be chosen using the following conventions.  The particular
@@ -1234,7 +1234,7 @@
    <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
        Cursor addressing and other strings  requiring  parameters
        in  the  terminal  are described by a parameterized string
-       capability, with <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG> like escapes <STRONG>%x</STRONG>  in  it.   For
+       capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes  <STRONG>%x</STRONG>  in  it.   For
        example,  to  address  the  cursor,  the <STRONG>cup</STRONG> capability is
        given, using two parameters: the row and column to address
        to.  (Rows and columns are numbered from zero and refer to
@@ -2269,7 +2269,7 @@
        termcap entry.
 
        When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
-       mentation  of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
+       mentation of <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-
        tc length of a termcap translation is too  long.   The  -c
        (check)  option  also checks resolved (after tc expansion)
        lengths.
@@ -2351,7 +2351,7 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
 
 
 </PRE>
@@ -2361,7 +2361,7 @@
 
 
 
-                                                            <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+                                                            <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 </PRE>
 <HR>
 <ADDRESS>
diff -Naur ncurses-5.6.orig/doc/html/man/tic.1m.html ncurses-5.6/doc/html/man/tic.1m.html
--- ncurses-5.6.orig/doc/html/man/tic.1m.html	2006-12-16 17:51:46.000000000 -0500
+++ ncurses-5.6/doc/html/man/tic.1m.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tic.1m,v 1.43 2006/05/13 15:14:01 tom Exp @
+  * @Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -309,7 +309,7 @@
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,    <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/toe.1m.html ncurses-5.6/doc/html/man/toe.1m.html
--- ncurses-5.6.orig/doc/html/man/toe.1m.html	2006-12-16 17:51:47.000000000 -0500
+++ ncurses-5.6/doc/html/man/toe.1m.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: toe.1m,v 1.18 2006/05/13 15:14:01 tom Exp @
+  * @Id: toe.1m,v 1.20 2006/12/24 17:20:37 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -92,7 +92,7 @@
        <STRONG>-v</STRONG><EM>n</EM>    specifies that (verbose) output be written to stan-
               dard error, showing <STRONG>toe</STRONG>'s progress.   The  optional
               parameter  <EM>n</EM>  is a number from 1 to 10, interpreted
-              as for <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG>.
+              as for <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>.
 
        <STRONG>-V</STRONG>     reports the version of ncurses which  was  used  in
               this program, and exits.
@@ -109,7 +109,7 @@
        <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,    <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/tput.1.html ncurses-5.6/doc/html/man/tput.1.html
--- ncurses-5.6.orig/doc/html/man/tput.1.html	2006-12-16 17:51:47.000000000 -0500
+++ ncurses-5.6/doc/html/man/tput.1.html	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tput.1,v 1.25 2006/05/13 15:14:01 tom Exp @
+  * @Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -89,7 +89,7 @@
        application  should  test  the  exit  code  (e.g., <STRONG>$?</STRONG>, see
        <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>.  (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and  <STRONG>DIAG-</STRONG>
        <STRONG>NOSTICS</STRONG>  sections.)   For  a complete list of capabilities
-       and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>.
+       and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
        <STRONG>-T</STRONG><EM>type</EM> indicates the  <EM>type</EM>  of  terminal.   Normally  this
               option is unnecessary, because the default is taken
@@ -298,7 +298,7 @@
        exit code   error message
        ---------------------------------------------------------------------
        <STRONG>0</STRONG>           (<EM>capname</EM> is a numeric variable that is not specified  in
-                   the  <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>  database  for this terminal type, e.g.
+                   the  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  database  for this terminal type, e.g.
                    <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
        <STRONG>1</STRONG>           no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
        <STRONG>2</STRONG>           usage error
@@ -328,7 +328,7 @@
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/man/tset.1.html ncurses-5.6/doc/html/man/tset.1.html
--- ncurses-5.6.orig/doc/html/man/tset.1.html	2006-12-16 17:51:47.000000000 -0500
+++ ncurses-5.6/doc/html/man/tset.1.html	2008-06-18 06:49:44.000000000 -0400
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tset.1,v 1.18 2006/07/29 11:34:07 tom Exp @
+  * @Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp @
 -->
 <HTML>
 <HEAD>
@@ -315,10 +315,10 @@
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>,  <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>,  <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>,  <STRONG><A HREF="setupterm.3x.html">setupterm(3x)</A></STRONG>,   <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>,   ter-
+       <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>,  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,  <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>,  ter-
        <STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
+       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
 
 
 
diff -Naur ncurses-5.6.orig/doc/html/ncurses-intro.html ncurses-5.6/doc/html/ncurses-intro.html
--- ncurses-5.6.orig/doc/html/ncurses-intro.html	2005-12-24 10:47:05.000000000 -0500
+++ ncurses-5.6/doc/html/ncurses-intro.html	2008-06-18 06:49:44.000000000 -0400
@@ -1,8 +1,8 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
 <!--
-  $Id: ncurses-intro.html,v 1.41 2005/12/24 15:47:05 tom Exp $
+  $Id: ncurses-intro.html,v 1.43 2007/03/03 19:31:50 tom Exp $
   ****************************************************************************
-  * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -914,15 +914,14 @@
 
 <H3><A NAME="xterm">Using NCURSES under XTERM</A></H3>
 
-A resize operation in X sends SIGWINCH to the application running under xterm.
-The <CODE>ncurses</CODE> library provides an experimental signal
-handler, but in general does not catch this signal, because it cannot
-know how you want the screen re-painted.  You will usually have to write the
-SIGWINCH handler yourself.  Ncurses can give you some help. <P>
-
-The easiest way to code your SIGWINCH handler is to have it do an
-<CODE>endwin</CODE>, followed by an <CODE>refresh</CODE> and a screen repaint you code
-yourself.  The <CODE>refresh</CODE> will pick up the new screen size from the
+A resize operation in X sends <CODE>SIGWINCH</CODE> to the application running
+under xterm.
+
+The easiest way to handle <CODE>SIGWINCH</CODE>
+is to do an <CODE>endwin</CODE>,
+followed by an <CODE>refresh</CODE> and a screen repaint you code
+yourself.
+The <CODE>refresh</CODE> will pick up the new screen size from the
 xterm's environment. <P>
 
 That is the standard way, of course (it even works with some vendor's curses
@@ -934,8 +933,17 @@
 are limited to the new screen dimensions, and pads <CODE>stdscr</CODE>
 with blanks if the screen is larger. <P>
 
-Finally, ncurses can be configured to provide its own SIGWINCH handler,
-based on <CODE>resizeterm</CODE>.
+The <CODE>ncurses</CODE> library provides a SIGWINCH signal handler,
+which pushes a <CODE>KEY_RESIZE</CODE> via the wgetch() calls.
+When <CODE>ncurses</CODE> returns that code,
+it calls <code>resizeterm</CODE>
+to update the size of the standard screen's window, repainting that
+(filling with blanks or truncating as needed).
+It also resizes other windows,
+but its effect may be less satisfactory because it cannot
+know how you want the screen re-painted.
+You will usually have to write special-purpose code to handle
+<CODE>KEY_RESIZE</CODE> yourself.
 
 <H3><A NAME="screens">Handling Multiple Terminal Screens</A></H3>
 
@@ -2184,7 +2192,7 @@
 from the last page goes to the first, and <CODE>REQ_PREV_PAGE</CODE> from
 the first page goes to the last.
 
-<H3><A NAME="#ffield">Inter-Field Navigation Requests</A></H3>
+<H3><A NAME="ffield">Inter-Field Navigation Requests</A></H3>
 
 These requests handle navigation between fields on the same page.
 
@@ -2238,7 +2246,7 @@
 go to B only if A, B, and C <EM>all</EM> share the same first line;
 otherwise it will skip over B to C.
 
-<H3><A NAME="#fifield">Intra-Field Navigation Requests</A></H3>
+<H3><A NAME="fifield">Intra-Field Navigation Requests</A></H3>
 
 These requests drive movement of the edit cursor within the currently
 selected field.
diff -Naur ncurses-5.6.orig/doc/ncurses-intro.doc ncurses-5.6/doc/ncurses-intro.doc
--- ncurses-5.6.orig/doc/ncurses-intro.doc	2005-12-24 10:48:44.000000000 -0500
+++ ncurses-5.6/doc/ncurses-intro.doc	2008-06-18 06:49:44.000000000 -0400
@@ -174,7 +174,7 @@
    The  ncurses  package  was  originated  by  Pavel Curtis. The original
    maintainer  of  this  package is Zeyd Ben-Halim <zmbenhal@netcom.com>.
    Eric S. Raymond <esr@snark.thyrsus.com> wrote many of the new features
-   in  versions  after  1.8.1 and wrote most of this introduction. Jürgen
+   in  versions  after 1.8.1 and wrote most of this introduction. Juergen
    Pfeifer  wrote  all  of  the  menu and forms code as well as the Ada95
    binding.  Ongoing  work  is  being done by Thomas Dickey (maintainer).
    Contact the current maintainers at bug-ncurses@gnu.org.
@@ -798,15 +798,9 @@
   Using NCURSES under XTERM
 
    A  resize  operation  in  X  sends SIGWINCH to the application running
-   under  xterm.  The  ncurses  library  provides  an experimental signal
-   handler,  but in general does not catch this signal, because it cannot
-   know  how  you  want  the  screen re-painted. You will usually have to
-   write the SIGWINCH handler yourself. Ncurses can give you some help.
-
-   The  easiest  way  to  code  your SIGWINCH handler is to have it do an
-   endwin, followed by an refresh and a screen repaint you code yourself.
-   The  refresh  will  pick  up  the  new  screen  size  from the xterm's
-   environment.
+   under  xterm.  The  easiest way to handle SIGWINCH is to do an endwin,
+   followed  by  an  refresh  and a screen repaint you code yourself. The
+   refresh will pick up the new screen size from the xterm's environment.
 
    That  is the standard way, of course (it even works with some vendor's
    curses  implementations). Its drawback is that it clears the screen to
@@ -816,8 +810,13 @@
    limited  to  the new screen dimensions, and pads stdscr with blanks if
    the screen is larger.
 
-   Finally,  ncurses  can  be  configured  to  provide  its  own SIGWINCH
-   handler, based on resizeterm.
+   The ncurses library provides a SIGWINCH signal handler, which pushes a
+   KEY_RESIZE  via the wgetch() calls. When ncurses returns that code, it
+   calls  resizeterm  to update the size of the standard screen's window,
+   repainting that (filling with blanks or truncating as needed). It also
+   resizes other windows, but its effect may be less satisfactory because
+   it  cannot  know  how you want the screen re-painted. You will usually
+   have to write special-purpose code to handle KEY_RESIZE yourself.
 
   Handling Multiple Terminal Screens
 
@@ -889,11 +888,11 @@
    To  understand why this is a problem, remember that screen updates are
    calculated  between  two  representations  of  the entire display. The
    documentation  says that when you refresh a window, it is first copied
-   to  the  virtual screen,  and  then  changes  are calculated to update
-   the  physical screen (and applied to the terminal). But "copied to" is
-   not  very  specific,  and  subtle differences in how copying works can
-   produce  different behaviors in the case where two overlapping windows
-   are each being refreshed at unpredictable intervals.
+   to  the  virtual screen, and then changes are calculated to update the
+   physical  screen (and applied to the terminal). But "copied to" is not
+   very specific, and subtle differences in how copying works can produce
+   different behaviors in the case where two overlapping windows are each
+   being refreshed at unpredictable intervals.
 
    What  happens to the overlapping region depends on what wnoutrefresh()
    does  with  its  argument  --  what portions of the argument window it
diff -Naur ncurses-5.6.orig/form/Makefile.in ncurses-5.6/form/Makefile.in
--- ncurses-5.6.orig/form/Makefile.in	2006-10-14 16:40:36.000000000 -0400
+++ ncurses-5.6/form/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.42 2006/10/14 20:40:36 tom Exp $
+# $Id: Makefile.in,v 1.47 2007/04/28 14:56:11 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996-on
 #
 # Makefile for form source code.
 #
@@ -91,7 +91,7 @@
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
 
-LINK		= $(LIBTOOL_LINK) $(CC)
+LINK		= $(LIBTOOL_LINK)
 LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 SHLIB_DIRS	= -L../lib
@@ -106,8 +106,6 @@
 
 RANLIB		= @LIB_PREP@
 
-IMPORT_LIB	= @IMPORT_LIB@
-SHARED_LIB	= @SHARED_LIB@
 LIBRARIES	= @LIBS_TO_MAKE@
 
 LINT		= @LINT@
@@ -126,7 +124,7 @@
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 # make copies to simplify include-paths while still keeping form's include
 # file in this directory.
diff -Naur ncurses-5.6.orig/form/fld_def.c ncurses-5.6/form/fld_def.c
--- ncurses-5.6.orig/form/fld_def.c	2005-04-16 13:31:17.000000000 -0400
+++ ncurses-5.6/form/fld_def.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_def.c,v 1.33 2005/04/16 17:31:17 tom Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.36 2007/10/13 19:29:58 tom Exp $")
 
 /* this can't be readonly */
 static FIELD default_field =
@@ -93,7 +93,7 @@
       assert(err != 0 && ap != (va_list *)0);
       if ((typ->status & _LINKED_TYPE) != 0)
 	{
-	  p = (TypeArgument *)malloc(sizeof(TypeArgument));
+	  p = typeMalloc(TypeArgument, 1);
 
 	  if (p != 0)
 	    {
@@ -141,7 +141,7 @@
       assert(err != 0 && argp != 0);
       if ((typ->status & _LINKED_TYPE) != 0)
 	{
-	  p = (TypeArgument *)malloc(sizeof(TypeArgument));
+	  p = typeMalloc(TypeArgument, 1);
 
 	  if (p != 0)
 	    {
@@ -289,8 +289,9 @@
       nrow >= 0 &&
       nbuf >= 0 &&
       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick: this resets the default error */
-      (New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
+      (New_Field = typeMalloc(FIELD, 1)) != 0)
     {
+      T((T_CREATE("field %p"), New_Field));
       *New_Field = default_field;
       New_Field->rows = rows;
       New_Field->cols = cols;
@@ -304,7 +305,7 @@
 
 #if USE_WIDEC_SUPPORT
       New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
-      New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
+      New_Field->expanded = typeCalloc(char *, 1 + (unsigned)nbuf);
 #endif
 
       if (_nc_Copy_Type(New_Field, &default_field))
diff -Naur ncurses-5.6.orig/form/fld_dup.c ncurses-5.6/form/fld_dup.c
--- ncurses-5.6.orig/form/fld_dup.c	2004-12-25 17:24:10.000000000 -0500
+++ ncurses-5.6/form/fld_dup.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_dup.c,v 1.10 2004/12/25 22:24:10 tom Exp $")
+MODULE_ID("$Id: fld_dup.c,v 1.12 2007/10/13 19:30:21 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform
@@ -56,8 +56,9 @@
   T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
   if (field && (frow >= 0) && (fcol >= 0) &&
       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick : this resets the default error */
-      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
+      (New_Field = typeMalloc(FIELD, 1)))
     {
+      T((T_CREATE("field %p"), New_Field));
       *New_Field = *_nc_Default_Field;
       New_Field->frow = frow;
       New_Field->fcol = fcol;
diff -Naur ncurses-5.6.orig/form/fld_ftlink.c ncurses-5.6/form/fld_ftlink.c
--- ncurses-5.6.orig/form/fld_ftlink.c	2004-12-25 17:24:10.000000000 -0500
+++ ncurses-5.6/form/fld_ftlink.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.13 2007/10/13 19:30:35 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -56,10 +56,11 @@
   T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
   if (type1 && type2)
     {
-      nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+      nftyp = typeMalloc(FIELDTYPE, 1);
 
       if (nftyp)
 	{
+	  T((T_CREATE("fieldtype %p"), nftyp));
 	  *nftyp = *_nc_Default_FieldType;
 	  nftyp->status |= _LINKED_TYPE;
 	  if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
diff -Naur ncurses-5.6.orig/form/fld_link.c ncurses-5.6/form/fld_link.c
--- ncurses-5.6.orig/form/fld_link.c	2004-12-25 17:24:10.000000000 -0500
+++ ncurses-5.6/form/fld_link.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.11 2007/10/13 19:30:43 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -57,8 +57,9 @@
   T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
   if (field && (frow >= 0) && (fcol >= 0) &&
       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick: this resets the default error */
-      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
+      (New_Field = typeMalloc(FIELD, 1)))
     {
+      T((T_CREATE("field %p"), New_Field));
       *New_Field = *_nc_Default_Field;
       New_Field->frow = frow;
       New_Field->fcol = fcol;
diff -Naur ncurses-5.6.orig/form/fld_newftyp.c ncurses-5.6/form/fld_newftyp.c
--- ncurses-5.6.orig/form/fld_newftyp.c	2004-12-25 17:24:10.000000000 -0500
+++ ncurses-5.6/form/fld_newftyp.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_newftyp.c,v 1.13 2004/12/25 22:24:10 tom Exp $")
+MODULE_ID("$Id: fld_newftyp.c,v 1.15 2007/10/13 19:30:55 tom Exp $")
 
 static FIELDTYPE const default_fieldtype =
 {
@@ -76,10 +76,11 @@
   T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
   if ((field_check) || (char_check))
     {
-      nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+      nftyp = typeMalloc(FIELDTYPE, 1);
 
       if (nftyp)
 	{
+	  T((T_CREATE("fieldtype %p"), nftyp));
 	  *nftyp = default_fieldtype;
 	  nftyp->fcheck = field_check;
 	  nftyp->ccheck = char_check;
diff -Naur ncurses-5.6.orig/form/frm_def.c ncurses-5.6/form/frm_def.c
--- ncurses-5.6.orig/form/frm_def.c	2006-11-04 11:57:15.000000000 -0500
+++ ncurses-5.6/form/frm_def.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_def.c,v 1.20 2006/11/04 16:57:15 tom Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.22 2007/10/13 19:31:17 tom Exp $")
 
 /* this can't be readonly */
 static FORM default_form =
@@ -186,8 +186,9 @@
     RETURN(E_BAD_ARGUMENT);
 
   /* allocate page structures */
-  if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
+  if ((pg = typeMalloc(_PAGE, page_nr)) != (_PAGE *) 0)
     {
+      T((T_CREATE("_PAGE %p"), pg));
       form->page = pg;
     }
   else
@@ -290,11 +291,12 @@
 {
   int err = E_SYSTEM_ERROR;
 
-  FORM *form = (FORM *)malloc(sizeof(FORM));
+  FORM *form = typeMalloc(FORM, 1);
 
   T((T_CALLED("new_form(%p)"), fields));
   if (form)
     {
+      T((T_CREATE("form %p"), form));
       *form = *_nc_Default_Form;
       if ((err = Associate_Fields(form, fields)) != E_OK)
 	{
diff -Naur ncurses-5.6.orig/form/frm_driver.c ncurses-5.6/form/frm_driver.c
--- ncurses-5.6.orig/form/frm_driver.c	2006-11-04 13:45:35.000000000 -0500
+++ ncurses-5.6/form/frm_driver.c	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_driver.c,v 1.76 2006/11/04 18:45:35 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.86 2008/01/19 20:11:03 tom Exp $")
 
 /*----------------------------------------------------------------------------
   This is the core module of the form library. It contains the majority
@@ -262,7 +262,19 @@
 static int
 fix_wchnstr(WINDOW *w, cchar_t *s, int n)
 {
+  int x;
+
   win_wchnstr(w, s, n);
+  /*
+   * This function is used to extract the text only from the window.
+   * Strip attributes and color from the string so they will not be added
+   * back when copying the string to the window.
+   */
+  for (x = 0; x < n; ++x)
+    {
+      RemAttr(s[x], A_ATTRIBUTES);
+      SetPair(s[x], 0);
+    }
   return n;
 }
 
@@ -651,6 +663,7 @@
 
 	  result = TRUE;	/* allow sharing of recovery on failure */
 
+	  T((T_CREATE("fieldcell %p"), newbuf));
 	  field->buf = newbuf;
 	  for (i = 0; i <= field->nbuf; i++)
 	    {
@@ -663,7 +676,7 @@
 	      new_bp[new_buflen] = myZEROS;
 	    }
 
-#if USE_WIDEC_SUPPORT
+#if USE_WIDEC_SUPPORT && NCURSES_EXT_FUNCS
 	  if (wresize(field->working, 1, Buffer_Length(field) + 1) == ERR)
 	    result = FALSE;
 #endif
@@ -724,6 +737,34 @@
   return (result);
 }
 
+#ifdef NCURSES_MOUSE_VERSION
+/*---------------------------------------------------------------------------
+|   Facility      :  libnform
+|   Function      :  int Field_encloses(FIELD *field, int ry, int rx)
+|
+|   Description   :  Check if the given coordinates lie within the given field.
+|
+|   Return Values :  E_OK              - success
+|                    E_BAD_ARGUMENT    - invalid form pointer
+|                    E_SYSTEM_ERROR    - form has no current field or
+|                                        field-window
++--------------------------------------------------------------------------*/
+static int
+Field_encloses(FIELD *field, int ry, int rx)
+{
+  T((T_CALLED("Field_encloses(%p)"), field));
+  if (field != 0
+      && field->frow <= ry
+      && (field->frow + field->rows) > ry
+      && field->fcol <= rx
+      && (field->fcol + field->cols) > rx)
+    {
+      RETURN(E_OK);
+    }
+  RETURN(E_INVALID_FIELD);
+}
+#endif
+
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform
 |   Function      :  int _nc_Position_Form_Cursor(FORM * form)
@@ -4149,6 +4190,83 @@
 	    res = (BI->cmd) (form);
 	}
     }
+#ifdef NCURSES_MOUSE_VERSION
+  else if (KEY_MOUSE == c)
+    {
+      MEVENT event;
+      WINDOW *win = form->win ? form->win : stdscr;
+      WINDOW *sub = form->sub ? form->sub : win;
+
+      getmouse(&event);
+      if ((event.bstate & (BUTTON1_CLICKED |
+			   BUTTON1_DOUBLE_CLICKED |
+			   BUTTON1_TRIPLE_CLICKED))
+	  && wenclose(win, event.y, event.x))
+	{			/* we react only if the click was in the userwin, that means
+				 * inside the form display area or at the decoration window.
+				 */
+	  int ry = event.y, rx = event.x;	/* screen coordinates */
+
+	  res = E_REQUEST_DENIED;
+	  if (mouse_trafo(&ry, &rx, FALSE))
+	    {			/* rx, ry are now "curses" coordinates */
+	      if (ry < sub->_begy)
+		{		/* we clicked above the display region; this is
+				 * interpreted as "scroll up" request
+				 */
+		  if (event.bstate & BUTTON1_CLICKED)
+		    res = form_driver(form, REQ_PREV_FIELD);
+		  else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+		    res = form_driver(form, REQ_PREV_PAGE);
+		  else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+		    res = form_driver(form, REQ_FIRST_FIELD);
+		}
+	      else if (ry > sub->_begy + sub->_maxy)
+		{		/* we clicked below the display region; this is
+				 * interpreted as "scroll down" request
+				 */
+		  if (event.bstate & BUTTON1_CLICKED)
+		    res = form_driver(form, REQ_NEXT_FIELD);
+		  else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+		    res = form_driver(form, REQ_NEXT_PAGE);
+		  else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+		    res = form_driver(form, REQ_LAST_FIELD);
+		}
+	      else if (wenclose(sub, event.y, event.x))
+		{		/* Inside the area we try to find the hit item */
+		  int i;
+
+		  ry = event.y;
+		  rx = event.x;
+		  if (wmouse_trafo(sub, &ry, &rx, FALSE))
+		    {
+		      int min_field = form->page[form->curpage].pmin;
+		      int max_field = form->page[form->curpage].pmax;
+
+		      for (i = min_field; i <= max_field; ++i)
+			{
+			  FIELD *field = form->field[i];
+
+			  if (Field_Is_Selectable(field)
+			      && Field_encloses(field, ry, rx) == E_OK)
+			    {
+			      res = _nc_Set_Current_Field(form, field);
+			      if (res == E_OK)
+				res = _nc_Position_Form_Cursor(form);
+			      if (res == E_OK
+				  && (event.bstate & BUTTON1_DOUBLE_CLICKED))
+				res = E_UNKNOWN_COMMAND;
+			      break;
+			    }
+			}
+		    }
+		}
+	    }
+	}
+      else
+	res = E_REQUEST_DENIED;
+    }
+#endif /* NCURSES_MOUSE_VERSION */
   else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
     {
       /*
@@ -4261,7 +4379,7 @@
   wclear(field->working);
   mvwaddstr(field->working, 0, 0, value);
 
-  if ((widevalue = (FIELD_CELL *)calloc(len, sizeof(FIELD_CELL))) == 0)
+  if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == 0)
     {
       RETURN(E_SYSTEM_ERROR);
     }
@@ -4341,10 +4459,7 @@
 	      init_mb(state);
 	      next = _nc_wcrtomb(0, data[n].chars[0], &state);
 	      if (!isEILSEQ(next))
-		{
-		  if (next != 0)
-		    need += next;
-		}
+		need += next;
 	    }
 	}
 
@@ -4358,7 +4473,7 @@
 	{
 	  wclear(field->working);
 	  mvwadd_wchnstr(field->working, 0, 0, data, size);
-	  mvwinnstr(field->working, 0, 0, result, (int)need + 1);
+	  mvwinnstr(field->working, 0, 0, result, (int)need);
 	}
 #else
       result = Address_Of_Nth_Buffer(field, buffer);
diff -Naur ncurses-5.6.orig/form/fty_alnum.c ncurses-5.6/form/fty_alnum.c
--- ncurses-5.6.orig/form/fty_alnum.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_alnum.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alnum.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_alnum.c,v 1.21 2007/10/13 19:31:52 tom Exp $")
 
 #define thisARG alnumARG
 
@@ -55,10 +55,13 @@
 static void *
 Make_This_Type(va_list *ap)
 {
-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *argp = typeMalloc(thisARG, 1);
 
   if (argp)
-    argp->width = va_arg(*ap, int);
+    {
+      T((T_CREATE("thisARG %p"), argp));
+      argp->width = va_arg(*ap, int);
+    }
 
   return ((void *)argp);
 }
@@ -75,10 +78,13 @@
 Copy_This_Type(const void *argp)
 {
   const thisARG *ap = (const thisARG *)argp;
-  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *result = typeMalloc(thisARG, 1);
 
   if (result)
-    *result = *ap;
+    {
+      T((T_CREATE("thisARG %p"), result));
+      *result = *ap;
+    }
 
   return ((void *)result);
 }
diff -Naur ncurses-5.6.orig/form/fty_alpha.c ncurses-5.6/form/fty_alpha.c
--- ncurses-5.6.orig/form/fty_alpha.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_alpha.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_alpha.c,v 1.21 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_alpha.c,v 1.23 2007/10/13 19:32:09 tom Exp $")
 
 #define thisARG alphaARG
 
@@ -55,10 +55,13 @@
 static void *
 Make_This_Type(va_list *ap)
 {
-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *argp = typeMalloc(thisARG, 1);
 
   if (argp)
-    argp->width = va_arg(*ap, int);
+    {
+      T((T_CREATE("thisARG %p"), argp));
+      argp->width = va_arg(*ap, int);
+    }
 
   return ((void *)argp);
 }
@@ -75,10 +78,13 @@
 Copy_This_Type(const void *argp)
 {
   const thisARG *ap = (const thisARG *)argp;
-  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *result = typeMalloc(thisARG, 1);
 
   if (result)
-    *result = *ap;
+    {
+      T((T_CREATE("thisARG %p"), result));
+      *result = *ap;
+    }
 
   return ((void *)result);
 }
diff -Naur ncurses-5.6.orig/form/fty_enum.c ncurses-5.6/form/fty_enum.c
--- ncurses-5.6.orig/form/fty_enum.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_enum.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_enum.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_enum.c,v 1.22 2007/10/13 19:32:26 tom Exp $")
 
 typedef struct
   {
@@ -56,7 +56,7 @@
 static void *
 Make_Enum_Type(va_list *ap)
 {
-  enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
+  enumARG *argp = typeMalloc(enumARG, 1);
 
   if (argp)
     {
@@ -64,6 +64,7 @@
       char **kp = (char **)0;
       int ccase, cunique;
 
+      T((T_CREATE("enumARG %p"), argp));
       argp->kwds = va_arg(*ap, char **);
       ccase = va_arg(*ap, int);
       cunique = va_arg(*ap, int);
@@ -96,10 +97,13 @@
     {
       const enumARG *ap = (const enumARG *)argp;
 
-      result = (enumARG *)malloc(sizeof(enumARG));
+      result = typeMalloc(enumARG, 1);
 
       if (result)
-	*result = *ap;
+	{
+	  T((T_CREATE("enumARG %p"), result));
+	  *result = *ap;
+	}
     }
   return (void *)result;
 }
diff -Naur ncurses-5.6.orig/form/fty_int.c ncurses-5.6/form/fty_int.c
--- ncurses-5.6.orig/form/fty_int.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_int.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_int.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_int.c,v 1.22 2007/10/13 19:32:40 tom Exp $")
 
 #if USE_WIDEC_SUPPORT
 #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
@@ -63,10 +63,11 @@
 static void *
 Make_This_Type(va_list *ap)
 {
-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *argp = typeMalloc(thisARG, 1);
 
   if (argp)
     {
+      T((T_CREATE("thisARG %p"), argp));
       argp->precision = va_arg(*ap, int);
       argp->low = va_arg(*ap, long);
       argp->high = va_arg(*ap, long);
@@ -90,9 +91,12 @@
 
   if (argp)
     {
-      result = (thisARG *) malloc(sizeof(thisARG));
+      result = typeMalloc(thisARG, 1);
       if (result)
-	*result = *ap;
+	{
+	  T((T_CREATE("thisARG %p"), result));
+	  *result = *ap;
+	}
     }
   return (void *)result;
 }
diff -Naur ncurses-5.6.orig/form/fty_num.c ncurses-5.6/form/fty_num.c
--- ncurses-5.6.orig/form/fty_num.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_num.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_num.c,v 1.23 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_num.c,v 1.25 2007/10/13 19:32:54 tom Exp $")
 
 #if HAVE_LOCALE_H
 #include <locale.h>
@@ -74,10 +74,11 @@
 static void *
 Make_This_Type(va_list *ap)
 {
-  thisARG *argn = (thisARG *) malloc(sizeof(thisARG));
+  thisARG *argn = typeMalloc(thisARG, 1);
 
   if (argn)
     {
+      T((T_CREATE("thisARG %p"), argn));
       argn->precision = va_arg(*ap, int);
       argn->low = va_arg(*ap, double);
       argn->high = va_arg(*ap, double);
@@ -107,9 +108,12 @@
 
   if (argp)
     {
-      result = (thisARG *) malloc(sizeof(thisARG));
+      result = typeMalloc(thisARG, 1);
       if (result)
-	*result = *ap;
+	{
+	  T((T_CREATE("thisARG %p"), result));
+	  *result = *ap;
+	}
     }
   return (void *)result;
 }
diff -Naur ncurses-5.6.orig/form/fty_regex.c ncurses-5.6/form/fty_regex.c
--- ncurses-5.6.orig/form/fty_regex.c	2006-04-22 17:33:05.000000000 -0400
+++ ncurses-5.6/form/fty_regex.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_regex.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
+MODULE_ID("$Id: fty_regex.c,v 1.21 2007/10/13 19:33:50 tom Exp $")
 
 #if HAVE_REGEX_H_FUNCS		/* We prefer POSIX regex */
 #include <regex.h>
@@ -105,15 +105,17 @@
   char *rx = va_arg(*ap, char *);
   RegExp_Arg *preg;
 
-  preg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
+  preg = typeMalloc(RegExp_Arg, 1);
 
   if (preg)
     {
-      if (((preg->pRegExp = (regex_t *) malloc(sizeof(regex_t))) != 0)
+      T((T_CREATE("RegExp_Arg %p"), preg));
+      if (((preg->pRegExp = typeMalloc(regex_t, 1)) != 0)
 	  && !regcomp(preg->pRegExp, rx,
 		      (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
 	{
-	  preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+	  T((T_CREATE("regex_t %p"), preg->pRegExp));
+	  preg->refCount = typeMalloc(unsigned long, 1);
 
 	  *(preg->refCount) = 1;
 	}
@@ -130,20 +132,21 @@
   char *rx = va_arg(*ap, char *);
   RegExp_Arg *pArg;
 
-  pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
+  pArg = typeMalloc(RegExp_Arg, 1);
 
   if (pArg)
     {
       int blen = RX_INCREMENT;
 
+      T((T_CREATE("RegExp_Arg %p"), pArg));
       pArg->compiled_expression = NULL;
-      pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+      pArg->refCount = typeMalloc(unsigned long, 1);
 
       *(pArg->refCount) = 1;
 
       do
 	{
-	  char *buf = (char *)malloc(blen);
+	  char *buf = typeMalloc(char, blen);
 
 	  if (buf)
 	    {
diff -Naur ncurses-5.6.orig/form/headers ncurses-5.6/form/headers
--- ncurses-5.6.orig/form/headers	1998-02-11 07:13:43.000000000 -0500
+++ ncurses-5.6/form/headers	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -29,3 +29,4 @@
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
 $(srcdir)/form.h
+# vile:makemode
diff -Naur ncurses-5.6.orig/form/modules ncurses-5.6/form/modules
--- ncurses-5.6.orig/form/modules	2004-12-25 18:29:22.000000000 -0500
+++ ncurses-5.6/form/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.14 2004/12/25 23:29:22 tom Exp $
+# $Id: modules,v 1.15 2006/12/24 00:52:58 tom Exp $
 ##############################################################################
-# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2004,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"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey
+# Author: Thomas E. Dickey	1995-on
 #
 
 @ base
@@ -72,3 +72,5 @@
 fty_ipv4	lib		$(srcdir)	$(FORM_PRIV_H)
 fty_num		lib		$(srcdir)	$(FORM_PRIV_H)
 fty_regex	lib		$(srcdir)	$(FORM_PRIV_H)
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/include/MKterm.h.awk.in ncurses-5.6/include/MKterm.h.awk.in
--- ncurses-5.6.orig/include/MKterm.h.awk.in	2006-11-25 20:18:23.000000000 -0500
+++ ncurses-5.6/include/MKterm.h.awk.in	2008-06-18 06:49:51.000000000 -0400
@@ -1,6 +1,7 @@
+# vile:awkmode
 BEGIN		{
 		    print  "/****************************************************************************"
-		    print  " * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *"
+		    print  " * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *"
 		    print  " *                                                                          *"
 		    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
 		    print  " * copy of this software and associated documentation files (the            *"
@@ -33,7 +34,7 @@
 		    print  "/*    and: Thomas E. Dickey                        1995-on                  */"
 		    print  "/****************************************************************************/"
 		    print  ""
-		    print  "/* $Id: MKterm.h.awk.in,v 1.47 2006/11/26 01:18:23 tom Exp $ */"
+		    print  "/* $Id: MKterm.h.awk.in,v 1.50 2008/05/24 23:13:59 tom Exp $ */"
 		    print  ""
 		    print  "/*"
 		    print  "**	term.h -- Definition of struct term"
@@ -227,31 +228,33 @@
 			print  "    char *      _termname;      /* used for termname() */"
 			print  "} TERMINAL;"
 			print  ""
-			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
-			print  ""
-			print  "#if BROKEN_LINKER"
-			print  "#define boolnames  _nc_boolnames()"
-			print  "#define boolcodes  _nc_boolcodes()"
-			print  "#define boolfnames _nc_boolfnames()"
-			print  "#define numnames   _nc_numnames()"
-			print  "#define numcodes   _nc_numcodes()"
-			print  "#define numfnames  _nc_numfnames()"
-			print  "#define strnames   _nc_strnames()"
-			print  "#define strcodes   _nc_strcodes()"
-			print  "#define strfnames  _nc_strfnames()"
-			print  ""
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);"
-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);"
+			print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
+			print  "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
+			print  ""
+			print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
+			print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
+			print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
+			print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
+			print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
+			print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
+			print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
+			print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
+			print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
+			print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
 			print  ""
 			print  "#else"
 			print  ""
+			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
+			print  ""
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
@@ -291,10 +294,10 @@
 			print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
 			print  ""
 			print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
-			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* implemented */"
+			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */"
 			print  "#else"
-			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* implemented */"
-			print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* implemented */"
+			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */"
+			print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */"
 			print  "#endif"
 			print  ""
 			print  "#endif /* __NCURSES_H */"
diff -Naur ncurses-5.6.orig/include/curses.h.in ncurses-5.6/include/curses.h.in
--- ncurses-5.6.orig/include/curses.h.in	2006-11-25 20:14:54.000000000 -0500
+++ ncurses-5.6/include/curses.h.in	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.167 2006/11/26 01:14:54 tom Exp $ */
+/* $Id: curses.h.in,v 1.186 2008/04/05 15:30:28 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -103,10 +103,17 @@
 #define	NCURSES_COLOR_T short
 
 /*
+ * Definition used to make WINDOW and similar structs opaque.
+ */
+#ifndef @cf_cv_enable_opaque@
+#define NCURSES_OPAQUE @NCURSES_OPAQUE@
+#endif
+
+/*
  * The internal type used for window dimensions.
  */
 #undef	NCURSES_SIZE_T
-#define	NCURSES_SIZE_T short
+#define	NCURSES_SIZE_T @NCURSES_SIZE_T@
 
 /*
  * Control whether tparm() supports varargs or fixed-parameter list.
@@ -137,7 +144,7 @@
 #include <stddef.h>	/* we want wchar_t */
 #endif /* _XOPEN_SOURCE_EXTENDED */
 
-/* XSI and SVr4 specify that curses implements 'bool'.  However, C++ may also
+/* X/Open and SVr4 specify that curses implements 'bool'.  However, C++ may also
  * implement it.  If so, we must use the C++ compiler's type to avoid conflict
  * with other interfaces.
  *
@@ -184,7 +191,7 @@
 #endif
 
 /*
- * XSI attributes.  In the ncurses implementation, they are identical to the
+ * X/Open attributes.  In the ncurses implementation, they are identical to the
  * A_ attributes.
  */
 #define WA_ATTRIBUTES	A_ATTRIBUTES
@@ -206,9 +213,6 @@
 #define WA_VERTICAL	A_VERTICAL
 
 /* colors */
-extern NCURSES_EXPORT_VAR(int) COLORS;
-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
-
 #define COLOR_BLACK	0
 #define COLOR_RED	1
 #define COLOR_GREEN	2
@@ -220,8 +224,8 @@
 
 /* line graphics */
 
-#if @BROKEN_LINKER@
-extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
+#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@
+NCURSES_WRAPPED_VAR(chtype*, acs_map);
 #define acs_map (_nc_acs_map())
 #else
 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
@@ -346,6 +350,8 @@
     attr_t	attr;
     wchar_t	chars[CCHARW_MAX];
 #if @NCURSES_EXT_COLORS@
+#undef NCURSES_EXT_COLORS
+#define NCURSES_EXT_COLORS @NCURSES_PATCH@
     int		ext_color;	/* color pair, must be more than 16-bits */
 #endif
 }
@@ -353,6 +359,7 @@
 
 #endif /* _XOPEN_SOURCE_EXTENDED */
 
+#if !NCURSES_OPAQUE
 struct ldat;
 
 struct _win_st
@@ -409,41 +416,7 @@
 #endif
 #endif
 };
-
-extern NCURSES_EXPORT_VAR(WINDOW *)   stdscr;
-extern NCURSES_EXPORT_VAR(WINDOW *)   curscr;
-extern NCURSES_EXPORT_VAR(WINDOW *)   newscr;
-
-extern NCURSES_EXPORT_VAR(int)	LINES;
-extern NCURSES_EXPORT_VAR(int)	COLS;
-extern NCURSES_EXPORT_VAR(int)	TABSIZE;
-
-/*
- * This global was an undocumented feature under AIX curses.
- */
-extern NCURSES_EXPORT_VAR(int) ESCDELAY;	/* ESC expire time in milliseconds */
-
-/*
- * These functions are extensions - not in XSI Curses.
- */
-#if @NCURSES_EXT_FUNCS@
-extern NCURSES_EXPORT(bool) is_term_resized (int, int);
-extern NCURSES_EXPORT(char *) keybound (int, int);
-extern NCURSES_EXPORT(const char *) curses_version (void);
-extern NCURSES_EXPORT(int) assume_default_colors (int, int);
-extern NCURSES_EXPORT(int) define_key (const char *, int);
-extern NCURSES_EXPORT(int) key_defined (const char *);
-extern NCURSES_EXPORT(int) keyok (int, bool);
-extern NCURSES_EXPORT(int) resize_term (int, int);
-extern NCURSES_EXPORT(int) resizeterm (int, int);
-extern NCURSES_EXPORT(int) use_default_colors (void);
-extern NCURSES_EXPORT(int) use_extended_names (bool);
-extern NCURSES_EXPORT(int) use_legacy_coding (int);
-extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
-extern NCURSES_EXPORT(void) nofilter(void);
-#else
-#define curses_version() NCURSES_VERSION
-#endif
+#endif /* NCURSES_OPAQUE */
 
 /*
  * This is an extension to support events...
@@ -537,7 +510,7 @@
 #endif
 
 /*
- * Function prototypes.  This is the complete XSI Curses list of required
+ * Function prototypes.  This is the complete X/Open Curses list of required
  * functions.  Those marked `generated' will have sources generated from the
  * macro definitions later in this file, in order to satisfy XPG4.2
  * requirements.
@@ -741,7 +714,7 @@
 extern NCURSES_EXPORT(int) standend (void);				/* generated */
 extern NCURSES_EXPORT(int) start_color (void);				/* implemented */
 extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int);	/* implemented */
-extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int);	/* implemented */
+extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int);	/* implemented */
 extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);			/* implemented */
 extern NCURSES_EXPORT(chtype) termattrs (void);				/* implemented */
 extern NCURSES_EXPORT(char *) termname (void);				/* implemented */
@@ -825,17 +798,16 @@
 extern NCURSES_EXPORT(int) putp (const char *);				/* implemented */
 
 #if NCURSES_TPARM_VARARGS
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* implemented */
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */
 #else
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* implemented */
-extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* implemented */
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */
+extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */
 #endif
 
-extern NCURSES_EXPORT_VAR(char) ttytype[];	/* needed for backward compatibility */
-
 /*
  * These functions are not in X/Open, but we use them in macro definitions:
  */
+extern NCURSES_EXPORT(int) getattrs (const WINDOW *);			/* generated */
 extern NCURSES_EXPORT(int) getcurx (const WINDOW *);			/* generated */
 extern NCURSES_EXPORT(int) getcury (const WINDOW *);			/* generated */
 extern NCURSES_EXPORT(int) getbegx (const WINDOW *);			/* generated */
@@ -846,12 +818,60 @@
 extern NCURSES_EXPORT(int) getpary (const WINDOW *);			/* generated */
 
 /*
- * vid_attr() was implemented originally based on a draft of XSI curses.
+ * vid_attr() was implemented originally based on a draft of X/Open curses.
  */
 #ifndef _XOPEN_SOURCE_EXTENDED
 #define vid_attr(a,pair,opts) vidattr(a)
 #endif
 
+/*
+ * These functions are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#undef  NCURSES_EXT_FUNCS
+#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
+typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
+typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
+extern NCURSES_EXPORT(char *) keybound (int, int);
+extern NCURSES_EXPORT(const char *) curses_version (void);
+extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+extern NCURSES_EXPORT(int) define_key (const char *, int);
+extern NCURSES_EXPORT(int) key_defined (const char *);
+extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(int) resize_term (int, int);
+extern NCURSES_EXPORT(int) resizeterm (int, int);
+extern NCURSES_EXPORT(int) set_escdelay (int);
+extern NCURSES_EXPORT(int) set_tabsize (int);
+extern NCURSES_EXPORT(int) use_default_colors (void);
+extern NCURSES_EXPORT(int) use_extended_names (bool);
+extern NCURSES_EXPORT(int) use_legacy_coding (int);
+extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
+extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
+extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+extern NCURSES_EXPORT(void) nofilter(void);
+
+/*
+ * These extensions provide access to information stored in the WINDOW even
+ * when NCURSES_OPAQUE is set:
+ */
+extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
+
+#else
+#define curses_version() NCURSES_VERSION
+#endif
+
 /* attributes */
 
 #define NCURSES_ATTR_SHIFT       8
@@ -892,11 +912,22 @@
 #define getmaxyx(win,y,x)	(y = getmaxy(win), x = getmaxx(win))
 #define getparyx(win,y,x)	(y = getpary(win), x = getparx(win))
 
-#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
-			 else getyx(newscr,(y),(x)); \
+#define getsyx(y,x) do { if (newscr) { \
+			     if (is_leaveok(newscr)) \
+				(y) = (x) = -1; \
+			     else \
+				 getyx(newscr,(y), (x)); \
+			} \
 		    } while(0)
-#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
-			 else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
+
+#define setsyx(y,x) do { if (newscr) { \
+			    if ((y) == -1 && (x) == -1) \
+				leaveok(newscr, TRUE); \
+			    else { \
+				leaveok(newscr, FALSE); \
+				wmove(newscr, (y), (x)); \
+			    } \
+			} \
 		    } while(0)
 
 #ifndef NCURSES_NOMACROS
@@ -918,15 +949,17 @@
 #define gettmode()
 
 /* It seems older SYSV curses versions define these */
-#define getattrs(win)		((win)?(win)->_attrs:A_NORMAL)
-#define getcurx(win)		((win)?(win)->_curx:ERR)
-#define getcury(win)		((win)?(win)->_cury:ERR)
-#define getbegx(win)		((win)?(win)->_begx:ERR)
-#define getbegy(win)		((win)?(win)->_begy:ERR)
-#define getmaxx(win)		((win)?((win)->_maxx + 1):ERR)
-#define getmaxy(win)		((win)?((win)->_maxy + 1):ERR)
-#define getparx(win)		((win)?(win)->_parx:ERR)
-#define getpary(win)		((win)?(win)->_pary:ERR)
+#if !NCURSES_OPAQUE
+#define getattrs(win)		((win) ? (win)->_attrs : A_NORMAL)
+#define getcurx(win)		((win) ? (win)->_curx : ERR)
+#define getcury(win)		((win) ? (win)->_cury : ERR)
+#define getbegx(win)		((win) ? (win)->_begx : ERR)
+#define getbegy(win)		((win) ? (win)->_begy : ERR)
+#define getmaxx(win)		((win) ? ((win)->_maxx + 1) : ERR)
+#define getmaxy(win)		((win) ? ((win)->_maxy + 1) : ERR)
+#define getparx(win)		((win) ? (win)->_parx : ERR)
+#define getpary(win)		((win) ? (win)->_pary : ERR)
+#endif /* NCURSES_OPAQUE */
 
 #define wstandout(win)      	(wattrset(win,A_STANDOUT))
 #define wstandend(win)      	(wattrset(win,A_NORMAL))
@@ -934,12 +967,14 @@
 #define wattron(win,at)		wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
 #define wattroff(win,at)	wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
 
+#if !NCURSES_OPAQUE
 #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
 #define wattrset(win,at)	((win)->_color = PAIR_NUMBER(at), \
 				 (win)->_attrs = (at))
 #else
 #define wattrset(win,at)	((win)->_attrs = (at))
 #endif
+#endif /* NCURSES_OPAQUE */
 
 #define scroll(win)		wscrl(win,1)
 
@@ -956,7 +991,10 @@
 #define winchstr(w, s)		winchnstr(w, s, -1)
 #define winsstr(w, s)		winsnstr(w, s, -1)
 
+#if !NCURSES_OPAQUE
 #define redrawwin(win)		wredrawln(win, 0, (win)->_maxy+1)
+#endif /* NCURSES_OPAQUE */
+
 #define waddstr(win,str)	waddnstr(win,str,-1)
 #define waddchstr(win,str)	waddchnstr(win,str,-1)
 
@@ -1064,27 +1102,31 @@
 /*
  * Some wide-character functions can be implemented without the extensions.
  */
+#if !NCURSES_OPAQUE
 #define getbkgd(win)                    ((win)->_bkgd)
+#endif /* NCURSES_OPAQUE */
 
 #define slk_attr_off(a,v)		((v) ? ERR : slk_attroff(a))
 #define slk_attr_on(a,v)		((v) ? ERR : slk_attron(a))
 
+#if !NCURSES_OPAQUE
 #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
 #define wattr_set(win,a,p,opts)		((win)->_attrs = ((a) & ~A_COLOR), \
 					 (win)->_color = (p), \
 					 OK)
-#define wattr_get(win,a,p,opts)		((void)((a) != 0 && (*(a) = (win)->_attrs)), \
-					 (void)((p) != 0 && (*(p) = (win)->_color)), \
+#define wattr_get(win,a,p,opts)		((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+					 (void)((p) != (void *)0 && (*(p) = (win)->_color)), \
 					 OK)
 #else
 #define wattr_set(win,a,p,opts)		((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-#define wattr_get(win,a,p,opts)		((void)((a) != 0 && (*(a) = (win)->_attrs)), \
-					 (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
+#define wattr_get(win,a,p,opts)		((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+					 (void)((p) != (void *)0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
 					 OK)
 #endif
+#endif /* NCURSES_OPAQUE */
 
 /*
- * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
+ * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
  * varargs.h.  It adds new calls vw_printw/vw_scanw, which are supposed to
  * use POSIX stdarg.h.  The ncurses versions of vwprintw/vwscanw already
  * use stdarg.h, so...
@@ -1100,9 +1142,76 @@
 NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
 #endif
 
+/*
+ * These macros are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#if !NCURSES_OPAQUE
+#define is_cleared(win)		((win)->_clear)
+#define is_idcok(win)		((win)->_idcok)
+#define is_idlok(win)		((win)->_idlok)
+#define is_immedok(win)		((win)->_immed)
+#define is_keypad(win)		((win)->_use_keypad)
+#define is_leaveok(win)		((win)->_leaveok)
+#define is_nodelay(win)		((win)->_delay == 0)
+#define is_notimeout(win)	((win)->_notimeout)
+#define is_scrollok(win)	((win)->_scroll)
+#define is_syncok(win)		((win)->_sync)
+#define wgetparent(win)		((win) ? (win)->_parent : 0)
+#define wgetscrreg(win,t,b)	((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
+#endif
+#endif
+
 #endif /* NCURSES_NOMACROS */
 
 /*
+ * Public variables.
+ *
+ * Notes:
+ *	a. ESCDELAY was an undocumented feature under AIX curses.
+ *	   It gives the ESC expire time in milliseconds.
+ *	b. ttytype is needed for backward compatibility
+ */
+#if @cf_cv_enable_reentrant@
+
+NCURSES_WRAPPED_VAR(WINDOW *, curscr);
+NCURSES_WRAPPED_VAR(WINDOW *, newscr);
+NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
+NCURSES_WRAPPED_VAR(char *, ttytype);
+NCURSES_WRAPPED_VAR(int, COLORS);
+NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
+NCURSES_WRAPPED_VAR(int, COLS);
+NCURSES_WRAPPED_VAR(int, ESCDELAY);
+NCURSES_WRAPPED_VAR(int, LINES);
+NCURSES_WRAPPED_VAR(int, TABSIZE);
+
+#define curscr      NCURSES_PUBLIC_VAR(curscr())
+#define newscr      NCURSES_PUBLIC_VAR(newscr())
+#define stdscr      NCURSES_PUBLIC_VAR(stdscr())
+#define ttytype     NCURSES_PUBLIC_VAR(ttytype())
+#define COLORS      NCURSES_PUBLIC_VAR(COLORS())
+#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
+#define COLS        NCURSES_PUBLIC_VAR(COLS())
+#define ESCDELAY    NCURSES_PUBLIC_VAR(ESCDELAY())
+#define LINES       NCURSES_PUBLIC_VAR(LINES())
+#define TABSIZE     NCURSES_PUBLIC_VAR(TABSIZE())
+
+#else
+
+extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
+extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
+extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
+extern NCURSES_EXPORT_VAR(char) ttytype[];
+extern NCURSES_EXPORT_VAR(int) COLORS;
+extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
+extern NCURSES_EXPORT_VAR(int) COLS;
+extern NCURSES_EXPORT_VAR(int) ESCDELAY;
+extern NCURSES_EXPORT_VAR(int) LINES;
+extern NCURSES_EXPORT_VAR(int) TABSIZE;
+
+#endif
+
+/*
  * Pseudo-character tokens outside ASCII range.  The curses wgetch() function
  * will return any given one of these only if the corresponding k- capability
  * is defined in your terminal's terminfo entry.
diff -Naur ncurses-5.6.orig/include/curses.tail ncurses-5.6/include/curses.tail
--- ncurses-5.6.orig/include/curses.tail	2006-05-27 12:28:29.000000000 -0400
+++ ncurses-5.6/include/curses.tail	2008-06-18 06:49:44.000000000 -0400
@@ -1,8 +1,9 @@
+/* $Id: curses.tail,v 1.15 2007/03/10 17:51:24 tom Exp $ */
 /*
+ * vile:cmode:
  * This file is part of ncurses, designed to be appended after curses.h.in
  * (see that file for the relevant copyright).
  */
-/* $Id: curses.tail,v 1.14 2006/05/27 16:28:29 tom Exp $ */
 
 /* mouse interface */
 
diff -Naur ncurses-5.6.orig/include/curses.wide ncurses-5.6/include/curses.wide
--- ncurses-5.6.orig/include/curses.wide	2006-05-27 15:44:23.000000000 -0400
+++ ncurses-5.6/include/curses.wide	2008-06-18 06:49:44.000000000 -0400
@@ -1,11 +1,11 @@
+/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
 /*
+ * vile:cmode:
  * This file is part of ncurses, designed to be appended after curses.h.in
  * (see that file for the relevant copyright).
  */
 #ifdef _XOPEN_SOURCE_EXTENDED
 
-/* $Id: curses.wide,v 1.32 2006/05/27 19:44:23 tom Exp $ */
-
 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
 
 #define NCURSES_WACS(c)	(&_nc_wacs[(unsigned char)c])
@@ -197,10 +197,13 @@
 #define wadd_wchstr(win,str)		wadd_wchnstr(win,str,-1)
 #define waddwstr(win,wstr)		waddnwstr(win,wstr,-1)
 #define wget_wstr(w,t)			wgetn_wstr(w,t,-1)
-#define wgetbkgrnd(win,wch)		(*wch = win->_bkgrnd, OK)
 #define win_wchstr(w,c)			win_wchnstr(w,c,-1)
 #define wins_wstr(w,t)			wins_nwstr(w,t,-1)
 
+#if !NCURSES_OPAQUE
+#define wgetbkgrnd(win,wch)		(*wch = win->_bkgrnd, OK)
+#endif
+
 #define mvadd_wch(y,x,c)		mvwadd_wch(stdscr,y,x,c)
 #define mvadd_wchnstr(y,x,s,n)		mvwadd_wchnstr(stdscr,y,x,s,n)
 #define mvadd_wchstr(y,x,s)		mvwadd_wchstr(stdscr,y,x,s)
diff -Naur ncurses-5.6.orig/include/headers ncurses-5.6/include/headers
--- ncurses-5.6.orig/include/headers	2001-04-07 16:52:04.000000000 -0400
+++ ncurses-5.6/include/headers	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,6 @@
+# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $
 ##############################################################################
-# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -26,10 +27,16 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
+# Author: Thomas E. Dickey	1996-on
 #
 term.h
 curses.h
 unctrl.h
 termcap.h
 $(srcdir)/ncurses_dll.h
+@ ticlib
+$(srcdir)/tic.h
+$(srcdir)/term_entry.h
+$(srcdir)/nc_tparm.h
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/include/nc_alloc.h ncurses-5.6/include/nc_alloc.h
--- ncurses-5.6.orig/include/nc_alloc.h	2005-01-15 19:27:35.000000000 -0500
+++ ncurses-5.6/include/nc_alloc.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997                   *
  ****************************************************************************/
-/* $Id: nc_alloc.h,v 1.13 2005/01/16 00:27:35 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.15 2007/02/03 18:40:23 tom Exp $ */
 
 #ifndef NC_ALLOC_included
 #define NC_ALLOC_included 1
@@ -67,8 +67,11 @@
 #define HAVE_NC_FREEALL 1
 struct termtype;
 extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
 extern NCURSES_EXPORT(void) _nc_free_tparm(void);
 extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
+extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
 #define ExitProgram(code) _nc_free_and_exit(code)
 #endif
 
@@ -87,6 +90,9 @@
 extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
 #endif
 
+/* entries.c */
+extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
+
 #define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
 #define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
 #define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
diff -Naur ncurses-5.6.orig/include/ncurses_defs ncurses-5.6/include/ncurses_defs
--- ncurses-5.6.orig/include/ncurses_defs	2006-08-05 15:27:02.000000000 -0400
+++ ncurses-5.6/include/ncurses_defs	2008-06-18 06:49:47.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.30 2006/08/05 19:27:02 tom Exp $
+# $Id: ncurses_defs,v 1.38 2008/02/10 00:12:03 tom Exp $
 ##############################################################################
-# Copyright (c) 2000-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -33,10 +33,8 @@
 
 BROKEN_LINKER
 BSD_TPUTS
-CC_HAS_INLINE_FUNCS
 CC_HAS_PROTOS
 CPP_HAS_PARAM_INIT
-CPP_HAS_VSCAN_FUNC
 CURSES_ACS_ARRAY	acs_map
 CURSES_WACS_ARRAY	_nc_wacs
 DECL_ERRNO
@@ -48,6 +46,8 @@
 HAVE_BSD_SIGNAL_H
 HAVE_BTOWC 
 HAVE_BUILTIN_H
+HAVE_CHGAT	1
+HAVE_COLOR_SET	1
 HAVE_DIRENT_H
 HAVE_ERRNO
 HAVE_FCNTL_H
@@ -60,6 +60,7 @@
 HAVE_GETEUID
 HAVE_GETMAXX	1
 HAVE_GETNSTR
+HAVE_GETPARX	1
 HAVE_GETOPT_H
 HAVE_GETTIMEOFDAY
 HAVE_GETTTYNAM
@@ -68,6 +69,7 @@
 HAVE_GPP_BUILTIN_H
 HAVE_GXX_BUILTIN_H
 HAVE_HAS_KEY
+HAVE_IOSTREAM
 HAVE_ISASCII
 HAVE_ISSETUGID
 HAVE_LANGINFO_CODESET
@@ -159,6 +161,7 @@
 HAVE_WRESIZE
 HAVE__DOSCAN
 MIXEDCASE_FILENAMES
+NCURSES_CHAR_EQ
 NCURSES_EXPANDED
 NCURSES_EXT_COLORS
 NCURSES_EXT_FUNCS
@@ -189,12 +192,10 @@
 USE_MY_MEMMOVE
 USE_OK_BCOPY
 USE_RCS_IDS
+USE_REENTRANT
 USE_SAFE_SPRINTF
 USE_SCROLL_HINTS
 USE_SIGWINCH
-USE_STDIO_VSCAN
-USE_STRSTREAM_VSCAN
-USE_STRSTREAM_VSCAN_CAST
 USE_SYMLINKS
 USE_SYSMOUSE
 USE_TERMCAP
diff -Naur ncurses-5.6.orig/include/ncurses_dll.h ncurses-5.6/include/ncurses_dll.h
--- ncurses-5.6.orig/include/ncurses_dll.h	2006-04-22 18:07:51.000000000 -0400
+++ ncurses-5.6/include/ncurses_dll.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -25,7 +25,7 @@
  * sale, use or other dealings in this Software without prior written       *
  * authorization.                                                           *
  ****************************************************************************/
-/* $Id: ncurses_dll.h,v 1.5 2006/04/22 22:07:51 tom Exp $ */
+/* $Id: ncurses_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
 
 #ifndef NCURSES_DLL_H_incl
 #define NCURSES_DLL_H_incl 1
@@ -76,4 +76,11 @@
 #  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
 #endif
 
+/*
+ * For reentrant code, we map the various global variables into SCREEN by
+ * using functions to access them.
+ */
+#define NCURSES_PUBLIC_VAR(name) _nc_##name
+#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
+
 #endif /* NCURSES_DLL_H_incl */
diff -Naur ncurses-5.6.orig/include/tic.h ncurses-5.6/include/tic.h
--- ncurses-5.6.orig/include/tic.h	2006-08-19 10:17:49.000000000 -0400
+++ ncurses-5.6/include/tic.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
  ****************************************************************************/
 
 /*
- * $Id: tic.h,v 1.55 2006/08/19 14:17:49 tom Exp $
+ * $Id: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $
  *	tic.h - Global variables and structures for the terminfo
  *			compiler.
  */
@@ -164,16 +164,6 @@
 extern NCURSES_EXPORT_VAR(struct token)	_nc_curr_token;
 
 	/*
-	 * List of keynames with their corresponding code.
-	 */
-struct kn {
-	const char *name;
-	int code;
-};
-
-extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
-
-	/*
 	 * Offsets to string capabilities, with the corresponding functionkey
 	 * codes.
 	 */
@@ -185,11 +175,11 @@
 #if	BROKEN_LINKER
 
 #define	_nc_tinfo_fkeys	_nc_tinfo_fkeysf()
-extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
+extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
 
 #else
 
-extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
+extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
 
 #endif
 
@@ -214,14 +204,9 @@
 	const char	*source;
 };
 
-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
-
-extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
-extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
-
 extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
-extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
+extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool);
+extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool);
 
 #define NOTFOUND	((struct name_table_entry *) 0)
 
@@ -259,7 +244,7 @@
 
 /* comp_hash.c: name lookup */
 extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
-	(const char *, const struct name_table_entry *const *);
+	(const char *, const short *);
 extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry
 	(const char *, int, const struct name_table_entry *);
 
diff -Naur ncurses-5.6.orig/install-sh ncurses-5.6/install-sh
--- ncurses-5.6.orig/install-sh	2001-06-22 10:37:33.000000000 -0400
+++ ncurses-5.6/install-sh	2008-06-18 06:49:44.000000000 -0400
@@ -1,19 +1,37 @@
 #! /bin/sh
 #
 # install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
 #
-# Copyright 1991 by the Massachusetts Institute of Technology
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
 #
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
+# Copyright (C) 1994 X Consortium
+#
+# 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, 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
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
 # `make' implicit rules from creating a file called install from it
@@ -56,7 +74,7 @@
 
 while [ x"$1" != x ]; do
     case $1 in
-	-c) instcmd="$cpprog"
+	-c) instcmd=$cpprog
 	    shift
 	    continue;;
 
@@ -79,7 +97,7 @@
 	    shift
 	    continue;;
 
-	-s) stripcmd="$stripprog"
+	-s) stripcmd=$stripprog
 	    shift
 	    continue;;
 
@@ -106,7 +124,7 @@
 
 if [ x"$src" = x ]
 then
-	echo "install:	no input file specified"
+	echo "$0: no input file specified" >&2
 	exit 1
 else
 	:
@@ -116,7 +134,7 @@
 	dst=$src
 	src=""
 
-	if [ -d $dst ]; then
+	if [ -d "$dst" ]; then
 		instcmd=:
 		chmodcmd=""
 	else
@@ -128,17 +146,17 @@
 # might cause directories to be created, which would be especially bad
 # if $src (and thus $dsttmp) contains '*'.
 
-	if [ -f $src -o -d $src ]
+	if [ -f "$src" ] || [ -d "$src" ]
 	then
 		:
 	else
-		echo "install:  $src does not exist"
+		echo "$0: $src does not exist" >&2
 		exit 1
 	fi
 
 	if [ x"$dst" = x ]
 	then
-		echo "install:	no destination specified"
+		echo "$0: no destination specified" >&2
 		exit 1
 	else
 		:
@@ -147,16 +165,16 @@
 # If destination is a directory, append the input filename; if your system
 # does not like double slashes in filenames, you may need to add some logic
 
-	if [ -d $dst ]
+	if [ -d "$dst" ]
 	then
-		dst="$dst"/`basename $src`
+		dst=$dst/`basename "$src"`
 	else
 		:
 	fi
 fi
 
 ## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 
 # Make sure that the destination directory exists.
 #  this part is taken from Noah Friedman's mkinstalldirs script
@@ -165,48 +183,48 @@
 if [ ! -d "$dstdir" ]; then
 defaultIFS='
 	'
-IFS="${IFS-${defaultIFS}}"
+IFS="${IFS-$defaultIFS}"
 
-oIFS="${IFS}"
+oIFS=$IFS
 # Some sh's can't handle IFS=/ for some reason.
 IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
+set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS=$oIFS
 
 pathcomp=''
 
 while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
+	pathcomp=$pathcomp$1
 	shift
 
-	if [ ! -d "${pathcomp}" ] ;
+	if [ ! -d "$pathcomp" ] ;
         then
-		$mkdirprog "${pathcomp}"
+		$mkdirprog "$pathcomp"
 	else
 		:
 	fi
 
-	pathcomp="${pathcomp}/"
+	pathcomp=$pathcomp/
 done
 fi
 
 if [ x"$dir_arg" != x ]
 then
-	$doit $instcmd $dst &&
+	$doit $instcmd "$dst" &&
 
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
 else
 
 # If we're going to rename the final executable, determine the name now.
 
 	if [ x"$transformarg" = x ]
 	then
-		dstfile=`basename $dst`
+		dstfile=`basename "$dst"`
 	else
-		dstfile=`basename $dst $transformbasename |
+		dstfile=`basename "$dst" $transformbasename |
 			sed $transformarg`$transformbasename
 	fi
 
@@ -214,20 +232,24 @@
 
 	if [ x"$dstfile" = x ]
 	then
-		dstfile=`basename $dst`
+		dstfile=`basename "$dst"`
 	else
 		:
 	fi
 
-# Make a temp file name in the proper directory.
+# Make a couple of temp file names in the proper directory.
 
 	dsttmp=$dstdir/#inst.$$#
+	rmtmp=$dstdir/#rm.$$#
 
-# Move or copy the file name to the temp name
+# Trap to clean up temp files at exit.
 
-	$doit $instcmd $src $dsttmp &&
+	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+	trap '(exit $?); exit' 1 2 13 15
 
-	trap "rm -f ${dsttmp}" 0 &&
+# Move or copy the file name to the temp name
+
+	$doit $instcmd "$src" "$dsttmp" &&
 
 # and set any options; do chmod last to preserve setuid bits
 
@@ -235,17 +257,38 @@
 # ignore errors from any of these, just make sure not to ignore
 # errors from the above "$doit $instcmd $src $dsttmp" command.
 
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+
+# Now remove or move aside any old file at destination location.  We try this
+# two ways since rm can't unlink itself on some systems and the destination
+# file might be busy for other reasons.  In this case, the final cleanup
+# might fail but the new file should still install successfully.
+
+{
+	if [ -f "$dstdir/$dstfile" ]
+	then
+		$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
+		$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
+		{
+		  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+		  (exit 1); exit
+		}
+	else
+		:
+	fi
+} &&
 
 # Now rename the file to the real destination.
 
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile
+	$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
 
 fi &&
 
+# The final little trick to "correctly" pass the exit status to the exit trap.
 
-exit 0
+{
+	(exit 0); exit
+}
diff -Naur ncurses-5.6.orig/man/Makefile.in ncurses-5.6/man/Makefile.in
--- ncurses-5.6.orig/man/Makefile.in	2005-07-16 13:26:45.000000000 -0400
+++ ncurses-5.6/man/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.39 2005/07/16 17:26:45 tom Exp $
+# $Id: Makefile.in,v 1.41 2007/03/31 15:54:06 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -52,7 +52,7 @@
 tags :
 
 $(DESTDIR)$(mandir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
 
@@ -77,4 +77,4 @@
 	sh $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
 
 distclean realclean: clean
-	rm -f Makefile ../edit_man.*
+	rm -f Makefile ../edit_man.* ../man_alias.*
diff -Naur ncurses-5.6.orig/man/captoinfo.1m ncurses-5.6/man/captoinfo.1m
--- ncurses-5.6.orig/man/captoinfo.1m	2006-05-13 11:14:01.000000000 -0400
+++ ncurses-5.6/man/captoinfo.1m	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,16 +27,16 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: captoinfo.1m,v 1.20 2006/05/13 15:14:01 tom Exp $
-.TH captoinfo 1M ""
+.\" $Id: captoinfo.1m,v 1.22 2007/06/02 20:40:07 tom Exp $
+.TH @CAPTOINFO@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
-\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
+\fB@CAPTOINFO@\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
 .SH SYNOPSIS
-\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fB@CAPTOINFO@\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
 .SH DESCRIPTION
-\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions.  For each
+\fB@CAPTOINFO@\fR looks in \fIfile\fR for \fBtermcap\fR descriptions.  For each
 one found, an equivalent \fBterminfo\fR description is written to standard
 output.  Termcap \fBtc\fR capabilities are translated directly to terminfo
 \fBuse\fR capabilities.
@@ -67,7 +67,7 @@
 .SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
 .PP
 Some obsolete nonstandard capabilities will automatically be translated
-into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR.
+into standard (SVr4/XSI Curses) terminfo capabilities by \fB@CAPTOINFO@\fR.
 Whenever one of these automatic translations is done, the program
 will issue an notification to stderr, inviting the user to check that
 it has not mistakenly translated a completely unknown and random
@@ -145,7 +145,7 @@
 .TE
 .PP
 If the single-line capabilities occur in an entry, they will automatically
-be composed into an \fBacsc\fR string.  The double-line capabilities and
+be composed into an \fIacsc\fR string.  The double-line capabilities and
 \fBGG\fR are discarded with a warning message.
 .PP
 IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
@@ -164,17 +164,17 @@
 font3	s3ds
 .TE
 .PP
-Additionally, the AIX \fBbox1\fR capability will be automatically translated to
-an \fBacsc\fR string.
+Additionally, the AIX \fIbox1\fR capability will be automatically translated to
+an \fIacsc\fR string.
 .PP
 Hewlett-Packard's terminfo library supports two nonstandard terminfo
-capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
+capabilities \fImeml\fR (memory lock) and \fImemu\fR (memory unlock).
 These will be discarded with a warning message.
 .SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
+This utility is actually a link to \fB@TIC@\fR(1M), running in \fI-I\fR mode.
+You can use other \fB@TIC@\fR options such as \fB-f\fR and  \fB-x\fR.
 .PP
-The trace option isn't identical to SVr4's.  Under SVr4, instead of following
+The trace option is not identical to SVr4's.  Under SVr4, instead of following
 the \fB-v\fR with a trace level n, you repeat it n times.
 .SH SEE ALSO
 \fB@INFOCMP@\fR(1M),
diff -Naur ncurses-5.6.orig/man/clear.1 ncurses-5.6/man/clear.1
--- ncurses-5.6.orig/man/clear.1	2006-07-01 17:55:09.000000000 -0400
+++ ncurses-5.6/man/clear.1	2008-06-18 06:49:44.000000000 -0400
@@ -26,20 +26,20 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: clear.1,v 1.5 2006/07/01 21:55:09 tom Exp $
-.TH clear 1 ""
+.\" $Id: clear.1,v 1.6 2006/12/24 18:07:53 tom Exp $
+.TH @CLEAR@ 1 ""
 .ds n 5
 .SH NAME
-\fBclear\fR - clear the terminal screen
+\fB@CLEAR@\fR - clear the terminal screen
 .SH SYNOPSIS
-\fBclear\fR
+\fB@CLEAR@\fR
 .br
 .SH DESCRIPTION
-\fBclear\fR clears your screen if this is possible.  It looks in the
+\fB@CLEAR@\fR clears your screen if this is possible.  It looks in the
 environment for the terminal type and then in the \fBterminfo\fR database to
 figure out how to clear the screen.
 .PP
-\fBclear\fR ignores any command-line parameters that may be present.
+\fB@CLEAR@\fR ignores any command-line parameters that may be present.
 .SH SEE ALSO
 \fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
 .PP
diff -Naur ncurses-5.6.orig/man/curs_add_wch.3x ncurses-5.6/man/curs_add_wch.3x
--- ncurses-5.6.orig/man/curs_add_wch.3x	2006-12-02 12:02:35.000000000 -0500
+++ ncurses-5.6/man/curs_add_wch.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_add_wch.3x,v 1.5 2006/12/02 17:02:35 tom Exp $
+.\" $Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp $
 .TH curs_add_wch 3X ""
 .SH NAME
 \fBadd_wch\fP,
@@ -82,7 +82,7 @@
 -
 If the character part of \fIwch\fP is
 a tab, newline, backspace or other control character,
-the window is updated and the cursor moves as if \fBaddch\fR(3X) were called.
+the window is updated and the cursor moves as if \fBaddch\fR were called.
 .PP
 The \fBecho_wchar\fP
 function is functionally equivalent to a call to
@@ -122,7 +122,7 @@
 .PP
 \fBcurses\fR(3X),
 \fBcurs_addch\fR(3X),
-\fBcurs_attr_get\fR(3X),
+\fBcurs_attr\fR(3X),
 \fBcurs_clear\fR(3X),
 \fBcurs_outopts\fR(3X),
 \fBcurs_refresh\fR(3X),
diff -Naur ncurses-5.6.orig/man/curs_addch.3x ncurses-5.6/man/curs_addch.3x
--- ncurses-5.6.orig/man/curs_addch.3x	2006-12-02 12:02:22.000000000 -0500
+++ ncurses-5.6/man/curs_addch.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addch.3x,v 1.25 2006/12/02 17:02:22 tom Exp $
+.\" $Id: curs_addch.3x,v 1.27 2007/06/02 20:40:07 tom Exp $
 .TH curs_addch 3X ""
 .SH NAME
 \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
@@ -87,7 +87,7 @@
 .SS Line Graphics
 The following variables may be used to add line drawing characters to the
 screen with routines of the \fBaddch\fR family.  The default character listed
-below is used if the \fBacsc\fR capability doesn't define a terminal-specific
+below is used if the \fBacsc\fR capability does not define a terminal-specific
 replacement for it.
 The names are taken from VT100 nomenclature.
 .PP
@@ -168,7 +168,7 @@
 \fBcurs_inch\fR(3X),
 \fBcurs_outopts\fR(3X),
 \fBcurs_refresh\fR(3X),
-\fBputc\fR(3S).
+\fBputc\fR(3).
 .PP
 Comparable functions in the wide-character (ncursesw) library are
 described in
diff -Naur ncurses-5.6.orig/man/curs_attr.3x ncurses-5.6/man/curs_attr.3x
--- ncurses-5.6.orig/man/curs_attr.3x	2006-07-15 14:39:05.000000000 -0400
+++ ncurses-5.6/man/curs_attr.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_attr.3x,v 1.30 2006/07/15 18:39:05 tom Exp $
+.\" $Id: curs_attr.3x,v 1.31 2007/03/17 20:30:33 tom Exp $
 .TH curs_attr 3X ""
 .na
 .hy 0
@@ -253,6 +253,9 @@
 if the window pointer is null.
 The \fBwcolor_set\fP function returns an error if the color pair parameter
 is outside the range 0..COLOR_PAIRS-1.
+This implementation also provides
+\fBgetattrs\fR
+for compatibility with older versions of curses.
 .SH SEE ALSO
 \fBcurses\fR(3X),
 \fBcurs_addch\fR(3X),
diff -Naur ncurses-5.6.orig/man/curs_border.3x ncurses-5.6/man/curs_border.3x
--- ncurses-5.6.orig/man/curs_border.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_border.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_border.3x,v 1.18 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_border.3x,v 1.19 2007/02/24 16:15:38 tom Exp $
 .TH curs_border 3X ""
 .na
 .hy 0
@@ -64,9 +64,9 @@
 .br
 \fBint wvline(WINDOW *win, chtype ch, int n);\fR
 .br
-\fBmvhline(int y, int x, chtype ch, int n);\fR
+\fBint mvhline(int y, int x, chtype ch, int n);\fR
 .br
-\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
+\fBint mvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
 .br
 \fBint mvvline(int y, int x, chtype ch, int n);\fR
 .br
diff -Naur ncurses-5.6.orig/man/curs_clear.3x ncurses-5.6/man/curs_clear.3x
--- ncurses-5.6.orig/man/curs_clear.3x	2005-10-01 15:34:43.000000000 -0400
+++ ncurses-5.6/man/curs_clear.3x	2008-06-18 06:49:45.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998,2005 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp $
+.\" $Id: curs_clear.3x,v 1.11 2007/12/29 15:58:38 tom Exp $
 .TH curs_clear 3X ""
 .na
 .hy 0
@@ -105,6 +105,12 @@
 That fact is not documented in other implementations,
 and may not be true of implementations
 which were not derived from SVr4 source.
+.PP
+Not obvious from the description,
+most implementations clear the screen after \fBwclear\fP
+even for a subwindow or derived window.
+If you do not want to clear the screen during the next \fBwrefresh\fP,
+use \fBwerase\fP instead.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
diff -Naur ncurses-5.6.orig/man/curs_deleteln.3x ncurses-5.6/man/curs_deleteln.3x
--- ncurses-5.6.orig/man/curs_deleteln.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_deleteln.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_deleteln.3x,v 1.10 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_deleteln.3x,v 1.11 2007/06/02 20:40:07 tom Exp $
 .TH curs_deleteln 3X ""
 .SH NAME
 \fBdeleteln\fR,
@@ -79,7 +79,7 @@
 Note that all but \fBwinsdelln\fR may be macros.
 .PP
 These routines do not require a hardware line delete or insert feature in the
-terminal.  In fact, they won't use hardware line delete/insert unless
+terminal.  In fact, they will not use hardware line delete/insert unless
 \fBidlok(..., TRUE)\fR has been set on the current window.
 .SH SEE ALSO
 \fBcurses\fR(3X)
diff -Naur ncurses-5.6.orig/man/curs_extend.3x ncurses-5.6/man/curs_extend.3x
--- ncurses-5.6.orig/man/curs_extend.3x	2006-02-25 16:04:43.000000000 -0500
+++ ncurses-5.6/man/curs_extend.3x	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
 .\"
 .\" Author: Thomas E. Dickey 1999-on
 .\"
-.\" $Id: curs_extend.3x,v 1.15 2006/02/25 21:04:43 tom Exp $
+.\" $Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp $
 .TH curs_extend 3X ""
 .SH NAME
 \fBcurses_version\fP,
@@ -56,7 +56,7 @@
 which may be compiled into the terminfo
 description, i.e., via the terminfo or termcap interfaces.
 Normally these names are available for use, since the essential decision
-is made by using the \fB-x\fP option of \fItic\fP to compile
+is made by using the \fB-x\fP option of \fB@TIC@\fP to compile
 extended terminal definitions.
 However you can disable this feature
 to ensure compatibility with other implementations of curses.
@@ -68,11 +68,11 @@
 \fBcurs_getch\fR(3X),
 \fBcurs_mouse\fR(3X),
 \fBcurs_print\fR(3X),
+\fBcurs_util\fR(3X),
 \fBdefault_colors\fR(3X),
 \fBdefine_key\fR(3X),
 \fBkeybound\fR(3X),
 \fBkeyok\fR(3X),
-\fBnofilter\fR(3X),
 \fBresizeterm\fR(3X),
 \fBwresize\fR(3X).
 .SH AUTHOR
diff -Naur ncurses-5.6.orig/man/curs_getcchar.3x ncurses-5.6/man/curs_getcchar.3x
--- ncurses-5.6.orig/man/curs_getcchar.3x	2006-07-15 18:51:07.000000000 -0400
+++ ncurses-5.6/man/curs_getcchar.3x	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2001-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 2001-2006,2008 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getcchar.3x,v 1.8 2006/07/15 22:51:07 wcmbrine Exp $
+.\" $Id: curs_getcchar.3x,v 1.11 2008/05/17 19:37:05 tom Exp $
 .TH curs_getcchar 3X ""
 .SH NAME
 \fBgetcchar\fP,
@@ -106,9 +106,14 @@
 -
 The wide-character string pointed to by \fIwch\fP.
 The string must be L'\\0' terminated,
-contain at most one character with strictly positive width,
-which must be the first,
-and contain no characters of negative width.
+contain at most one spacing character,
+which must be the first.
+.IP
+Up to \fBCCHARW_MAX\fP-1 nonspacing characters may follow.
+Additional nonspacing characters are ignored.
+.IP
+The string may contain a single control character instead.
+In that case, no nonspacing characters are allowed.
 .SH NOTES
 .PP
 The \fIopts\fP argument is reserved for future use.
@@ -132,10 +137,10 @@
 .SH SEE ALSO
 .PP
 Functions:
+\fBcurs_attr\fR(3X),
+\fBcurs_color\fR(3X),
 \fBcurses\fR(3X),
-\fBwcwidth\fR(3X),
-\fBcurs_attr_get\fR(3X),
-\fBcan_change_color\fR(3X).
+\fBwcwidth\fR(3).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_getyx.3x ncurses-5.6/man/curs_getyx.3x
--- ncurses-5.6.orig/man/curs_getyx.3x	2006-05-27 16:28:05.000000000 -0400
+++ ncurses-5.6/man/curs_getyx.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getyx.3x,v 1.13 2006/05/27 20:28:05 tom Exp $
+.\" $Id: curs_getyx.3x,v 1.16 2007/05/12 16:34:49 tom Exp $
 .TH curs_getyx 3X ""
 .SH NAME
 \fBgetyx\fR,
@@ -69,7 +69,7 @@
 \fBgetmaxyx\fR
 macros are described in the XSI Curses standard, Issue 4.
 .PP
-This implementation also provides
+This implementation also provides functions
 \fBgetbegx\fR,
 \fBgetbegy\fR,
 \fBgetcurx\fR,
@@ -79,10 +79,25 @@
 \fBgetparx\fR and
 \fBgetpary\fR
 for compatibility with older versions of curses.
-X/Open does not define a corresponding \fBgetcuryx\fP function,
-though that would be needed to make references to the WINDOW structure opaque.
+.PP
+Although X/Open Curses does not address this,
+many implementations provide members of the WINDOW structure
+containing values corresponding to these macros.
+For best portability, do not rely on using the data in WINDOW,
+since some implementations make WINDOW opaque (do not allow
+direct use of its members).
+.PP
+Besides the problem of opaque structures,
+the data stored in like-named members may not have like-values in
+different implementations.
+For example, the WINDOW._maxx and WINDOW._maxy values in ncurses
+have (at least since release 1.8.1) differed by one from some
+other implementations.
+The difference is hidden by means of the macro \fBgetmaxyx\fP.
 .SH SEE ALSO
-\fBcurses\fR(3X)
+\fBcurses\fR(3X),
+\fBcurs_legacy\fR(3X),
+\fBcurs_opaque\fR(3X)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_insstr.3x ncurses-5.6/man/curs_insstr.3x
--- ncurses-5.6.orig/man/curs_insstr.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_insstr.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_insstr.3x,v 1.17 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_insstr.3x,v 1.18 2006/12/24 14:59:30 tom Exp $
 .TH curs_insstr 3X ""
 .SH NAME
 \fBinsstr\fR,
@@ -90,7 +90,7 @@
 Also, no implementation of curses documents this inconsistency.
 .SH SEE ALSO
 \fBcurses\fR(3X),
-\fBunctrl\fR(3X),
+\fBcurs_util\fR(3X),
 \fBcurs_clear\fR(3X),
 \fBcurs_inch\fR(3X).
 .\"#
diff -Naur ncurses-5.6.orig/man/curs_legacy.3x ncurses-5.6/man/curs_legacy.3x
--- ncurses-5.6.orig/man/curs_legacy.3x	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/man/curs_legacy.3x	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,93 @@
+.\"***************************************************************************
+.\" Copyright (c) 2007 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_legacy.3x,v 1.1 2007/04/07 23:54:29 tom Exp $
+.TH curs_legacy 3X ""
+.SH NAME
+\fBgetbegx\fR,
+\fBgetbegy\fR,
+\fBgetcurx\fR,
+\fBgetcury\fR,
+\fBgetmaxx\fR,
+\fBgetmaxy\fR,
+\fBgetparx\fR,
+\fBgetpary\fR - get \fBcurses\fR cursor and window coordinates
+.SH SYNOPSIS
+\fB#include <curses.h>\fR
+.sp
+\fBint getbegx(WINDOW *win);\fR
+.br
+\fBint getbegy(WINDOW *win);\fR
+.br
+\fBint getcurx(WINDOW *win);\fR
+.br
+\fBint getcury(WINDOW *win);\fR
+.br
+\fBint getmaxx(WINDOW *win);\fR
+.br
+\fBint getmaxy(WINDOW *win);\fR
+.br
+\fBint getparx(WINDOW *win);\fR
+.br
+\fBint getpary(WINDOW *win);\fR
+.br
+.SH DESCRIPTION
+The \fBgetbegy\fR and \fBgetbegx\fR functions return the same
+data as \fBgetbegyx\fR.
+.PP
+The \fBgetcury\fR and \fBgetcurx\fR functions return the same
+data as \fBgetyx\fR.
+.PP
+The \fBgetmaxy\fR and \fBgetmaxx\fR functions return the same
+data as \fBgetmaxyx\fR.
+.PP
+The \fBgetpary\fR and \fBgetparx\fR functions return the same
+data as \fBgetparyx\fR.
+.SH RETURN VALUE
+These functions return an integer,
+or ERR if the window parameter is null.
+.SH NOTES
+All of these interfaces are provided as macros and functions.
+The macros are suppressed (and only the functions provided)
+when \fBNCURSES_OPAQUE\fR is defined.
+The standard forms such as \fBgetyx\fP must be implemented as macros,
+and (in this implementation) are defined in terms of the functions
+described here,
+to avoid reliance on internal details of the WINDOW structure.
+.SH PORTABILITY
+These functions were supported on Version 7, BSD or System V implementations.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_getyx\fR(3X),
+\fBcurs_opaque\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff -Naur ncurses-5.6.orig/man/curs_mouse.3x ncurses-5.6/man/curs_mouse.3x
--- ncurses-5.6.orig/man/curs_mouse.3x	2005-05-15 12:18:19.000000000 -0400
+++ ncurses-5.6/man/curs_mouse.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2005,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            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp $
 .TH curs_mouse 3X ""
 .na
 .hy 0
@@ -158,22 +158,23 @@
 It is useful for determining what subset of
 the screen windows enclose the location of a mouse event.
 .PP
-The \fBwmouse_trafo\fR function transforms a given pair of coordinates from
-stdscr-relative coordinates to screen-relative coordinates or vice versa.
+The \fBwmouse_trafo\fR function transforms a given pair of coordinates
+from stdscr-relative coordinates
+to coordinates relative to the given window or vice versa.
 Please remember, that stdscr-relative coordinates are not always identical
-to screen-relative coordinates due to the mechanism to reserve lines on top
-or bottom of the screen for other purposes (ripoff() call, see also slk_...
-functions).
+to window-relative coordinates due to the mechanism to reserve lines on top
+or bottom of the screen for other purposes
+(see the \fBripoffline()\fP and \fBslk_init\fR calls, for example).
 If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
-\fBpY, pX\fR must reference the coordinates of a location inside the window
-\fBwin\fR.
-They are converted to screen-relative coordinates and returned
+\fBpY, pX\fR must reference the coordinates of a location
+inside the window \fBwin\fR.
+They are converted to window-relative coordinates and returned
 through the pointers.
 If the conversion was successful, the function returns \fBTRUE\fR.
 If one of the parameters was NULL or the location is
 not inside the window, \fBFALSE\fR is returned.
 If \fBto_screen\fR is
-\fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative
+\fBFALSE\fR, the pointers \fBpY, pX\fR must reference window-relative
 coordinates.
 They are converted to stdscr-relative coordinates if the
 window \fBwin\fR encloses this point.
@@ -184,6 +185,10 @@
 are only replaced by the converted coordinates if the transformation was
 successful.
 .PP
+The \fBmouse_trafo\fR function performs the same translation
+as \fBwmouse_trafo\fR,
+using stdscr for \fBwin\fR.
+.PP
 The \fBmouseinterval\fR function sets the maximum time (in thousands of a
 second) that can elapse between press and release events for them to
 be recognized as a click.
@@ -259,7 +264,7 @@
 .RE
 If you are using an unsupported configuration,
 mouse events will not be visible to
-\fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
+\fBncurses\fR(3X) (and the \fBmousemask\fR function will always
 return \fB0\fR).
 .PP
 If the terminfo entry contains a \fBXM\fR string,
@@ -276,14 +281,17 @@
 3D-mice/trackballs/power gloves.
 .SH BUGS
 Mouse events under xterm will not in fact be ignored during cooked mode,
-if they have been enabled by \fBwmousemask\fR.
+if they have been enabled by \fBmousemask\fR.
 Instead, the xterm mouse
 report sequence will appear in the string read.
 .PP
 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 must have \fBkmous\fR set to "\\E[M" (the beginning
-of the response from xterm for mouse clicks).
+Your terminfo description should have \fBkmous\fR set to "\\E[M"
+(the beginning of the response from xterm for mouse clicks).
+Other values for \fBkmous\fR are permitted,
+but under the same assumption,
+i.e., it is the beginning of the response.
 .PP
 Because there are no standard terminal responses that would serve to identify
 terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
@@ -291,7 +299,9 @@
 or \fBkmous\fR is defined in
 the terminal description, then the terminal may send mouse events.
 .SH SEE ALSO
-\fBcurses\fR(3X).
+\fBcurses\fR(3X),
+\fBcurs_kernel\fR(3X),
+\fBcurs_slk\fR(3X).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_opaque.3x ncurses-5.6/man/curs_opaque.3x
--- ncurses-5.6.orig/man/curs_opaque.3x	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/man/curs_opaque.3x	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,133 @@
+.\"***************************************************************************
+.\" Copyright (c) 2007 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_opaque.3x,v 1.6 2007/09/08 18:49:13 tom Exp $
+.TH curs_opaque 3X ""
+.na
+.hy 0
+.SH NAME
+\fBis_cleared\fR,
+\fBis_idlok\fR,
+\fBis_idcok\fR,
+\fBis_immedok\fR,
+\fBis_keypad\fR,
+\fBis_leaveok\fR,
+\fBis_nodelay\fR,
+\fBis_timeout\fR,
+\fBis_scrollok\fR,
+\fBis_syncok\fR - \fBcurses\fR window properties
+.ad
+.hy
+.SH SYNOPSIS
+\fB#include <curses.h>\fR
+.sp
+\fBbool is_cleared(const WINDOW *win);\fR
+.br
+\fBbool is_idcok(const WINDOW *win);\fR
+.br
+\fBbool is_idlok(const WINDOW *win);\fR
+.br
+\fBbool is_immedok(const WINDOW *win);\fR
+.br
+\fBbool is_keypad(const WINDOW *win);\fR
+.br
+\fBbool is_leaveok(const WINDOW *win);\fR
+.br
+\fBbool is_nodelay(const WINDOW *win);\fR
+.br
+\fBbool is_notimeout(const WINDOW *win);\fR
+.br
+\fBbool is_scrollok(const WINDOW *win);\fR
+.br
+\fBbool is_syncok(const WINDOW *win);\fR
+.br
+\fBWINDOW * wgetparent(const WINDOW *win);\fR
+.br
+\fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR
+.br
+.SH DESCRIPTION
+This implementation provides functions which return properties
+set in the WINDOW structure, allowing it to be ``opaque'' if
+the symbol \fBNCURSES_OPAQUE\fR is defined:
+.TP 5
+\fBis_cleared\fR
+returns the value set in \fBclearok\fR
+.TP 5
+\fBis_idcok\fR
+returns the value set in \fBidcok\fR
+.TP 5
+\fBis_idlok\fR
+returns the value set in \fBidlok\fR
+.TP 5
+\fBis_immedok\fR
+returns the value set in \fBimmedok\fR
+.TP 5
+\fBis_keypad\fR
+returns the value set in \fBkeypad\fR
+.TP 5
+\fBis_leaveok\fR
+returns the value set in \fBleaveok\fR
+.TP 5
+\fBis_nodelay\fR
+returns the value set in \fBnodelay\fR
+.TP 5
+\fBis_notimeout\fR
+returns the value set in \fBnotimeout\fR
+.TP 5
+\fBis_scrollok\fR
+returns the value set in \fBscrollok\fR
+.TP 5
+\fBis_syncok\fR
+returns the value set in \fBsyncok\fR
+.TP 5
+\fBwgetparent\fR
+returns the parent WINDOW pointer for subwindows,
+or NULL for windows having no parent.
+.TP 5
+\fBwgetscrreg\fR
+returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP.
+.SH RETURN VALUE
+These functions all return TRUE or FALSE, except as noted.
+.SH NOTES
+Both a macro and a function are provided for each name.
+.SH PORTABILITY
+These routines are specific to ncurses.
+They were not supported on Version 7, BSD or System V implementations.
+It is recommended that any code depending on ncurses extensions
+be conditioned using NCURSES_VERSION.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_inopts\fR(3X),
+\fBcurs_outopts\fR(3X),
+\fBcurs_window\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff -Naur ncurses-5.6.orig/man/curs_outopts.3x ncurses-5.6/man/curs_outopts.3x
--- ncurses-5.6.orig/man/curs_outopts.3x	2005-05-15 12:18:32.000000000 -0400
+++ ncurses-5.6/man/curs_outopts.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp $
+.\" $Id: curs_outopts.3x,v 1.21 2007/06/02 20:40:07 tom Exp $
 .TH curs_outopts 3X ""
 .na
 .hy 0
@@ -91,7 +91,7 @@
 application needs insert/delete line, for example, for a screen editor.
 It is
 disabled by default because insert/delete line tends to be visually annoying
-when used in applications where it isn't really needed.
+when used in applications where it is not really needed.
 If insert/delete line
 cannot be used, \fBcurses\fR redraws the changed portions of all lines.
 .PP
diff -Naur ncurses-5.6.orig/man/curs_printw.3x ncurses-5.6/man/curs_printw.3x
--- ncurses-5.6.orig/man/curs_printw.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_printw.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_printw.3x,v 1.16 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_printw.3x,v 1.17 2006/12/24 16:05:17 tom Exp $
 .TH curs_printw 3X ""
 .na
 .hy 0
@@ -55,12 +55,12 @@
 .br
 .SH DESCRIPTION
 The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
-routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)].  In
+routines are analogous to \fBprintf\fR [see \fBprintf\fR(3)].  In
 effect, the string that would be output by \fBprintf\fR is output
 instead as though \fBwaddstr\fR were used on the given window.
 .PP
 The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
-to \fBvprintf\fR [see \fBprintf\fR(3S)]
+to \fBvprintf\fR [see \fBprintf\fR(3)]
 and perform a \fBwprintw\fR using a variable argument list.
 The third argument is a \fBva_list\fR, a pointer to a
 list of arguments, as defined in \fB<stdarg.h>\fR.
@@ -85,7 +85,7 @@
 This implementation uses \fB<stdarg.h>\fR for both, because that header
 is included in \fB<curses.h\fR>.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
+\fBcurses\fR(3X), \fBprintf\fR(3), \fBvprintf(3)\fR
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_scanw.3x ncurses-5.6/man/curs_scanw.3x
--- ncurses-5.6.orig/man/curs_scanw.3x	2006-02-25 16:42:22.000000000 -0500
+++ ncurses-5.6/man/curs_scanw.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scanw.3x,v 1.13 2006/02/25 21:42:22 tom Exp $
+.\" $Id: curs_scanw.3x,v 1.14 2006/12/24 16:05:49 tom Exp $
 .TH curs_scanw 3X ""
 .SH NAME
 \fBscanw\fR,
@@ -50,7 +50,7 @@
 \fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR
 .SH DESCRIPTION
 The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
-\fBscanf\fR [see \fBscanf\fR(3S)].  The effect of these routines is as though
+\fBscanf\fR [see \fBscanf\fR(3)].  The effect of these routines is as though
 \fBwgetstr\fR were called on the window, and the resulting line used as input
 for \fBsscanf\fR(3).  Fields which do not map to a variable in the \fIfmt\fR
 field are lost.
@@ -88,7 +88,7 @@
 One possible way to get useful results would be to use a "%n" conversion
 at the end of the format string to ensure that something was processed.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
+\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_scr_dump.3x ncurses-5.6/man/curs_scr_dump.3x
--- ncurses-5.6.orig/man/curs_scr_dump.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_scr_dump.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scr_dump.3x,v 1.6 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_scr_dump.3x,v 1.7 2006/12/24 16:05:49 tom Exp $
 .TH curs_scr_dump 3X ""
 .na
 .hy 0
@@ -93,7 +93,7 @@
 "old".
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_util\fR(3X), \fBsystem\fR(3S)
+\fBcurs_util\fR(3X), \fBsystem\fR(3)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_slk.3x ncurses-5.6/man/curs_slk.3x
--- ncurses-5.6.orig/man/curs_slk.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/curs_slk.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_slk.3x,v 1.15 2006/02/25 21:49:19 tom Exp $
+.\" $Id: curs_slk.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
 .TH curs_slk 3X ""
 .na
 .hy 0
@@ -95,7 +95,7 @@
 implementation supports a mode where it simulates 12 labels of up to five
 characters each. This is most common for todays PC like enduser devices.
 Please note that ncurses simulates this mode by taking over up to two lines at
-the bottom of the screen, it doesn't try to use any hardware support for this
+the bottom of the screen, it does not try to use any hardware support for this
 mode.
 .PP
 The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR
diff -Naur ncurses-5.6.orig/man/curs_termattrs.3x ncurses-5.6/man/curs_termattrs.3x
--- ncurses-5.6.orig/man/curs_termattrs.3x	2003-12-27 13:37:47.000000000 -0500
+++ ncurses-5.6/man/curs_termattrs.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termattrs.3x,v 1.9 2003/12/27 18:37:47 tom Exp $
+.\" $Id: curs_termattrs.3x,v 1.10 2007/06/02 20:40:07 tom Exp $
 .TH curs_termattrs 3X ""
 .SH NAME
 \fBbaudrate\fR,
@@ -101,7 +101,7 @@
 \fBnewterm\fR if \fBlongname\fR is going to be used with multiple
 terminals.
 .PP
-If a given terminal doesn't support a video attribute that an
+If a given terminal does not support a video attribute that an
 application program is trying to use, \fBcurses\fR may substitute a
 different video attribute for it.
 The \fBtermattrs\fR and \fBterm_attrs\fR functions
diff -Naur ncurses-5.6.orig/man/curs_termcap.3x ncurses-5.6/man/curs_termcap.3x
--- ncurses-5.6.orig/man/curs_termcap.3x	2006-02-25 16:50:01.000000000 -0500
+++ ncurses-5.6/man/curs_termcap.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termcap.3x,v 1.20 2006/02/25 21:50:01 tom Exp $
+.\" $Id: curs_termcap.3x,v 1.22 2007/06/02 20:40:07 tom Exp $
 .TH curs_termcap 3X ""
 .ds n 5
 .SH NAME
@@ -122,7 +122,7 @@
 .SH BUGS
 If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
 be aware that it will be returned in terminfo notation, not the older and
-not-quite-compatible termcap notation.  This won't cause problems if all
+not-quite-compatible termcap notation.  This will not cause problems if all
 you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
 terminfo-style strings as terminfo.
 (The \fBtgoto\fR function, if configured to support termcap, will check
@@ -158,7 +158,7 @@
 In particular, some applications are reported to declare and/or
 modify \fBospeed\fR.
 .SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
+\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_terminfo.3x ncurses-5.6/man/curs_terminfo.3x
--- ncurses-5.6.orig/man/curs_terminfo.3x	2006-11-04 16:50:03.000000000 -0500
+++ ncurses-5.6/man/curs_terminfo.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_terminfo.3x,v 1.24 2006/11/04 21:50:03 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.28 2007/05/26 20:09:06 tom Exp $
 .TH curs_terminfo 3X ""
 .ds n 5
 .na
@@ -64,7 +64,7 @@
 .br
 \fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
 .br
-\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
+\fBint restartterm(char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
 .br
 \fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR
 .br
@@ -99,16 +99,22 @@
 Initially, \fBsetupterm\fR should be called.  Note that
 \fBsetupterm\fR is automatically called by \fBinitscr\fR and
 \fBnewterm\fR.  This defines the set of terminal-dependent variables
-[listed in \fBterminfo\fR(\*n)].  The \fBterminfo\fR variables
+[listed in \fBterminfo\fR(\*n)].
+The \fBterminfo\fR variables
 \fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
-follows: If \fBuse_env(FALSE)\fR has been called, values for
+follows:
+.RS
+.PP
+If \fBuse_env(FALSE)\fR has been called, values for
 \fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
+.PP
 Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
 exist, their values are used.  If these environment variables do not
 exist and the program is running in a window, the current window size
 is used.  Otherwise, if the environment variables do not exist, the
 values for \fBlines\fR and \fBcolumns\fR specified in the
 \fBterminfo\fR database are used.
+.RE
 .PP
 The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
 order) to get the definitions for these strings, numbers, and flags.
@@ -183,7 +189,8 @@
 example, when reloading a game saved as a core image dump).  It assumes that
 the windows and the input and output options are the same as when memory was
 saved, but the terminal type and baud rate may be different.  Accordingly,
-it saves various tty state bits, does a setupterm, and then restores the bits.
+it saves various tty state bits, calls \fBsetupterm\fP,
+and then restores the bits.
 .PP
 The \fBtparm\fR routine instantiates the string \fIstr\fR with
 parameters \fIpi\fR.  A pointer is returned to the result of \fIstr\fR
@@ -288,6 +295,9 @@
 be considered non-portable.  All other functions are as described in the XSI
 curses standard.
 .PP
+\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
+This is not part of X/Open Curses, but is assumed by some applications.
+.PP
 In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
 returns \fBOK\fR or \fBERR\fR.  We have chosen to implement the XSI Curses
 semantics.
@@ -309,7 +319,7 @@
 So though it is documented as a terminfo function,
 \fBmvcur\fR is really a curses function which is not well specified.
 .PP
-XSI states that the old location must be given.
+XSI states that the old location must be given for \fBmvcur\fP.
 This implementation allows the caller to use -1's for the old ordinates.
 In that case, the old location is unknown.
 .PP
@@ -317,7 +327,7 @@
 are not stored in the arrays described in this section.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
-\fBputc\fR(3S), \fBterminfo\fR(\*n)
+\fBputc\fR(3), \fBterminfo\fR(\*n)
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/curs_threads.3x ncurses-5.6/man/curs_threads.3x
--- ncurses-5.6.orig/man/curs_threads.3x	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/man/curs_threads.3x	2008-06-18 06:49:49.000000000 -0400
@@ -0,0 +1,603 @@
+.\"***************************************************************************
+.\" Copyright (c) 2008 Free Software Foundation, Inc.                        *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_threads.3x,v 1.12 2008/04/12 18:22:51 tom Exp $
+.TH curs_threads 3X ""
+.na
+.hy 0
+.SH NAME
+\fBuse_screen\fR,
+\fBuse_window\fR - \fBcurses\fR thread support
+.ad
+.hy
+.SH SYNOPSIS
+\fB#include <curses.h>\fR
+.sp
+\fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);\fR
+\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
+.br
+\fBint set_escdelay(int size);\fR
+.br
+\fBint set_tabsize(int size);\fR
+.br
+\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
+.br
+\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
+.br
+.SH DESCRIPTION
+This implementation can be configured to provide rudimentary support
+for multi-threaded applications.
+This makes a different set of libraries, e.g., \fIlibncursest\fP since
+the binary interfaces are different.
+.PP
+Rather than modify the interfaces to pass a thread specifier to
+each function, it adds a few functions which can be used in any
+configuration which hide the mutex's needed to prevent concurrent
+use of the global variables when configured for threading.
+.PP
+In addition to forcing access to members of the \fBWINDOW\fP structure
+to be via functions (see \fBcurs_opaque\fP(3x)),
+it makes functions of the common global variables,
+e.g.,
+COLORS,
+COLOR_PAIRS,
+COLS,
+ESCDELAY,
+LINES,
+TABSIZE
+curscr,
+newscr and
+ttytype.
+Those variables are maintained as read-only values, stored in the \fBSCREEN\fP
+structure.
+.PP
+Even this is not enough to make a thread-safe application using curses.
+A multi-threaded application would be expected to have threads updating
+separate windows (within the same device),
+or updating on separate screens (on different devices).
+Also, a few of the global variables are considered writable by some
+applications.
+The functions described here address these special situations.
+.PP
+The ESCDELAY and TABSIZE global variables are modified by some applications.
+To modify them in any configuration,
+use the \fBset_escdelay\fP or \fBset_tabsize\fP functions.
+Other global variables are not modifiable.
+.PP
+The \fBuse_window\fP and \fBuse_screen\fP functions provide coarse
+granularity mutexes for their respective \fBWINDOW\fP and \fBSCREEN\fP
+parameters, and call a user-supplied function,
+passing it a \fIdata\fP parameter,
+and returning the value from the user-supplied function to the application.
+.\" ***************************************************************************
+.SS USAGE
+All of the ncurses library functions assume that the locale is not
+altered during operation.
+In addition,
+they use data which is maintained within a hierarchy of scopes.
+.RS
+.TP 3
+-
+global data, e.g., used in the low-level terminfo or termcap interfaces.
+.TP 3
+-
+terminal data, e.g., associated with a call to \fIset_curterm\fP.
+The terminal data are initialized when screens are created.
+.TP 3
+-
+screen data, e.g., associated with a call to \fInewterm\fP or \fIinitscr\fP.
+.TP 3
+-
+window data, e.g., associated with a call to \fInewwin\fP or \fIsubwin\fP.
+Windows are associated with screens.
+Pads are not necessarily associated with a particular screen.
+.IP
+Most curses applications operate on one or more windows within a single screen.
+.TP 3
+-
+reentrant, i.e., it uses only the data passed as parameters.
+.RE
+.PP
+This table lists the scope of data used for each symbol in the
+ncurses library when it is configured to support threading:
+.TS
+center tab(/);
+l l
+l l .
+Symbol/Scope
+=
+BC/global
+COLORS/screen (readonly)
+COLOR_PAIR/reentrant
+COLOR_PAIRS/screen (readonly)
+COLS/screen (readonly)
+ESCDELAY/screen (readonly, see \fIset_escdelay\fP)
+LINES/screen (readonly)
+PAIR_NUMBER/reentrant
+PC/global
+SP/global
+TABSIZE/screen (readonly)
+UP/global
+acs_map/screen (readonly)
+add_wch/window (stdscr)
+add_wchnstr/window (stdscr)
+add_wchstr/window (stdscr)
+addch/window (stdscr)
+addchnstr/window (stdscr)
+addchstr/window (stdscr)
+addnstr/window (stdscr)
+addnwstr/window (stdscr)
+addstr/window (stdscr)
+addwstr/window (stdscr)
+assume_default_colors/screen
+attr_get/window (stdscr)
+attr_off/window (stdscr)
+attr_on/window (stdscr)
+attr_set/window (stdscr)
+attroff/window (stdscr)
+attron/window (stdscr)
+attrset/window (stdscr)
+baudrate/screen
+beep/screen
+bkgd/window (stdscr)
+bkgdset/window (stdscr)
+bkgrnd/window (stdscr)
+bkgrndset/window (stdscr)
+boolcodes/global (readonly)
+boolfnames/global (readonly)
+boolnames/global (readonly)
+border/window (stdscr)
+border_set/window (stdscr)
+box/window (stdscr)
+box_set/window (stdscr)
+can_change_color/terminal
+cbreak/screen
+chgat/window (stdscr)
+clear/window (stdscr)
+clearok/window
+clrtobot/window (stdscr)
+clrtoeol/window (stdscr)
+color_content/screen
+color_set/window (stdscr)
+copywin/window locks(source, target)
+cur_term/terminal
+curs_set/screen
+curscr/screen (readonly)
+curses_version/global (readonly)
+def_prog_mode/terminal
+def_shell_mode/terminal
+define_key/screen
+del_curterm/screen
+delay_output/screen
+delch/window (stdscr)
+deleteln/window (stdscr)
+delscreen/global locks(screenlist, screen)
+delwin/global locks(windowlist)
+derwin/screen
+doupdate/screen
+dupwin/screen locks(window)
+echo/screen
+echo_wchar/window (stdscr)
+echochar/window (stdscr)
+endwin/screen
+erase/window (stdscr)
+erasechar/window (stdscr)
+erasewchar/window (stdscr)
+filter/global
+flash/terminal
+flushinp/screen
+get_wch/screen (input-operation)
+get_wstr/screen (input-operation)
+getattrs/window
+getbegx/window
+getbegy/window
+getbkgd/window
+getbkgrnd/window
+getcchar/reentrant
+getch/screen (input-operation)
+getcurx/window
+getcury/window
+getmaxx/window
+getmaxy/window
+getmouse/screen (input-operation)
+getn_wstr/screen (input-operation)
+getnstr/screen (input-operation)
+getparx/window
+getpary/window
+getstr/screen (input-operation)
+getwin/screen (input-operation)
+halfdelay/screen
+has_colors/terminal
+has_ic/terminal
+has_il/terminal
+has_key/screen
+hline/window (stdscr)
+hline_set/window (stdscr)
+idcok/window
+idlok/window
+immedok/window
+in_wch/window (stdscr)
+in_wchnstr/window (stdscr)
+in_wchstr/window (stdscr)
+inch/window (stdscr)
+inchnstr/window (stdscr)
+inchstr/window (stdscr)
+init_color/screen
+init_pair/screen
+initscr/global locks(screenlist)
+innstr/window (stdscr)
+innwstr/window (stdscr)
+ins_nwstr/window (stdscr)
+ins_wch/window (stdscr)
+ins_wstr/window (stdscr)
+insch/window (stdscr)
+insdelln/window (stdscr)
+insertln/window (stdscr)
+insnstr/window (stdscr)
+insstr/window (stdscr)
+instr/window (stdscr)
+intrflush/terminal
+inwstr/window (stdscr)
+is_cleared/window
+is_idcok/window
+is_idlok/window
+is_immedok/window
+is_keypad/window
+is_leaveok/window
+is_linetouched/window
+is_nodelay/window
+is_notimeout/window
+is_scrollok/window
+is_syncok/window
+is_term_resized/terminal
+is_wintouched/window
+isendwin/screen
+key_defined/screen
+key_name/global (static data)
+keybound/screen
+keyname/global (static data)
+keyok/screen
+keypad/window
+killchar/terminal
+killwchar/terminal
+leaveok/window
+longname/screen
+mcprint/terminal
+meta/screen
+mouse_trafo/window (stdscr)
+mouseinterval/screen
+mousemask/screen
+move/window (stdscr)
+mvadd_wch/window (stdscr)
+mvadd_wchnstr/window (stdscr)
+mvadd_wchstr/window (stdscr)
+mvaddch/window (stdscr)
+mvaddchnstr/window (stdscr)
+mvaddchstr/window (stdscr)
+mvaddnstr/window (stdscr)
+mvaddnwstr/window (stdscr)
+mvaddstr/window (stdscr)
+mvaddwstr/window (stdscr)
+mvchgat/window (stdscr)
+mvcur/screen
+mvdelch/window (stdscr)
+mvderwin/window (stdscr)
+mvget_wch/screen (input-operation)
+mvget_wstr/screen (input-operation)
+mvgetch/screen (input-operation)
+mvgetn_wstr/screen (input-operation)
+mvgetnstr/screen (input-operation)
+mvgetstr/screen (input-operation)
+mvhline/window (stdscr)
+mvhline_set/window (stdscr)
+mvin_wch/window (stdscr)
+mvin_wchnstr/window (stdscr)
+mvin_wchstr/window (stdscr)
+mvinch/window (stdscr)
+mvinchnstr/window (stdscr)
+mvinchstr/window (stdscr)
+mvinnstr/window (stdscr)
+mvinnwstr/window (stdscr)
+mvins_nwstr/window (stdscr)
+mvins_wch/window (stdscr)
+mvins_wstr/window (stdscr)
+mvinsch/window (stdscr)
+mvinsnstr/window (stdscr)
+mvinsstr/window (stdscr)
+mvinstr/window (stdscr)
+mvinwstr/window (stdscr)
+mvprintw/window (stdscr)
+mvscanw/screen
+mvvline/window (stdscr)
+mvvline_set/window (stdscr)
+mvwadd_wch/window
+mvwadd_wchnstr/window
+mvwadd_wchstr/window
+mvwaddch/window
+mvwaddchnstr/window
+mvwaddchstr/window
+mvwaddnstr/window
+mvwaddnwstr/window
+mvwaddstr/window
+mvwaddwstr/window
+mvwchgat/window
+mvwdelch/window
+mvwget_wch/screen (input-operation)
+mvwget_wstr/screen (input-operation)
+mvwgetch/screen (input-operation)
+mvwgetn_wstr/screen (input-operation)
+mvwgetnstr/screen (input-operation)
+mvwgetstr/screen (input-operation)
+mvwhline/window
+mvwhline_set/window
+mvwin/window
+mvwin_wch/window
+mvwin_wchnstr/window
+mvwin_wchstr/window
+mvwinch/window
+mvwinchnstr/window
+mvwinchstr/window
+mvwinnstr/window
+mvwinnwstr/window
+mvwins_nwstr/window
+mvwins_wch/window
+mvwins_wstr/window
+mvwinsch/window
+mvwinsnstr/window
+mvwinsstr/window
+mvwinstr/window
+mvwinwstr/window
+mvwprintw/window
+mvwscanw/screen
+mvwvline/window
+mvwvline_set/window
+napms/reentrant
+newpad/global locks(windowlist)
+newscr/screen (readonly)
+newterm/global locks(screenlist)
+newwin/global locks(windowlist)
+nl/screen
+nocbreak/screen
+nodelay/window
+noecho/screen
+nofilter/global
+nonl/screen
+noqiflush/terminal
+noraw/screen
+notimeout/window
+numcodes/global (readonly)
+numfnames/global (readonly)
+numnames/global (readonly)
+ospeed/global
+overlay/window locks(source, target)
+overwrite/window locks(source, target)
+pair_content/screen
+pecho_wchar/screen
+pechochar/screen
+pnoutrefresh/screen
+prefresh/screen
+printw/window
+putp/global
+putwin/window
+qiflush/terminal
+raw/screen
+redrawwin/window
+refresh/screen
+reset_prog_mode/screen
+reset_shell_mode/screen
+resetty/terminal
+resize_term/screen locks(windowlist)
+resizeterm/screen
+restartterm/screen
+ripoffline/global (static data)
+savetty/terminal
+scanw/screen
+scr_dump/screen
+scr_init/screen
+scr_restore/screen
+scr_set/screen
+scrl/window (stdscr)
+scroll/window
+scrollok/window
+set_curterm/screen
+set_escdelay/screen
+set_tabsize/screen
+set_term/global locks(screenlist, screen)
+setcchar/reentrant
+setscrreg/window (stdscr)
+setupterm/global
+slk_attr/screen
+slk_attr_off/screen
+slk_attr_on/screen
+slk_attr_set/screen
+slk_attroff/screen
+slk_attron/screen
+slk_attrset/screen
+slk_clear/screen
+slk_color/screen
+slk_init/screen
+slk_label/screen
+slk_noutrefresh/screen
+slk_refresh/screen
+slk_restore/screen
+slk_set/screen
+slk_touch/screen
+slk_wset/screen
+standend/window
+standout/window
+start_color/screen
+stdscr/screen (readonly)
+strcodes/global (readonly)
+strfnames/global (readonly)
+strnames/global (readonly)
+subpad/window
+subwin/window
+syncok/window
+term_attrs/screen
+termattrs/screen
+termname/terminal
+tgetent/global
+tgetflag/global
+tgetnum/global
+tgetstr/global
+tgoto/global
+tigetflag/terminal
+tigetnum/terminal
+tigetstr/terminal
+timeout/window (stdscr)
+touchline/window
+touchwin/window
+tparm/global (static data)
+tputs/screen
+trace/global (static data)
+ttytype/screen (readonly)
+typeahead/screen
+unctrl/screen
+unget_wch/screen (input-operation)
+ungetch/screen (input-operation)
+ungetmouse/screen (input-operation)
+untouchwin/window
+use_default_colors/screen
+use_env/global (static data)
+use_extended_names/global (static data)
+use_legacy_coding/screen
+use_screen/global locks(screenlist, screen)
+use_window/global locks(windowlist, window)
+vid_attr/screen
+vid_puts/screen
+vidattr/screen
+vidputs/screen
+vline/window (stdscr)
+vline_set/window (stdscr)
+vw_printw/window
+vw_scanw/screen
+vwprintw/window
+vwscanw/screen
+wadd_wch/window
+wadd_wchnstr/window
+wadd_wchstr/window
+waddch/window
+waddchnstr/window
+waddchstr/window
+waddnstr/window
+waddnwstr/window
+waddstr/window
+waddwstr/window
+wattr_get/window
+wattr_off/window
+wattr_on/window
+wattr_set/window
+wattroff/window
+wattron/window
+wattrset/window
+wbkgd/window
+wbkgdset/window
+wbkgrnd/window
+wbkgrndset/window
+wborder/window
+wborder_set/window
+wchgat/window
+wclear/window
+wclrtobot/window
+wclrtoeol/window
+wcolor_set/window
+wcursyncup/screen (affects window plus parents)
+wdelch/window
+wdeleteln/window
+wecho_wchar/window
+wechochar/window
+wenclose/window
+werase/window
+wget_wch/screen (input-operation)
+wget_wstr/screen (input-operation)
+wgetbkgrnd/window
+wgetch/screen (input-operation)
+wgetn_wstr/screen (input-operation)
+wgetnstr/screen (input-operation)
+wgetparent/window
+wgetscrreg/window
+wgetstr/screen (input-operation)
+whline/window
+whline_set/window
+win_wch/window
+win_wchnstr/window
+win_wchstr/window
+winch/window
+winchnstr/window
+winchstr/window
+winnstr/window
+winnwstr/window
+wins_nwstr/window
+wins_wch/window
+wins_wstr/window
+winsch/window
+winsdelln/window
+winsertln/window
+winsnstr/window
+winsstr/window
+winstr/window
+winwstr/window
+wmouse_trafo/window
+wmove/window
+wnoutrefresh/screen
+wprintw/window
+wredrawln/window
+wrefresh/screen
+wresize/window locks(windowlist)
+wscanw/screen
+wscrl/window
+wsetscrreg/window
+wstandend/window
+wstandout/window
+wsyncdown/screen (affects window plus parents)
+wsyncup/screen (affects window plus parents)
+wtimeout/window
+wtouchln/window
+wunctrl/global (static data)
+wvline/window
+wvline_set/window
+.TE
+.\" ***************************************************************************
+.SH RETURN VALUE
+These functions all return TRUE or FALSE, except as noted.
+.SH NOTES
+Both a macro and a function are provided for each name.
+.SH PORTABILITY
+These routines are specific to ncurses.
+They were not supported on Version 7, BSD or System V implementations.
+It is recommended that any code depending on ncurses extensions
+be conditioned using NCURSES_VERSION.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_opaque\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff -Naur ncurses-5.6.orig/man/curs_trace.3x ncurses-5.6/man/curs_trace.3x
--- ncurses-5.6.orig/man/curs_trace.3x	2005-05-15 13:02:54.000000000 -0400
+++ ncurses-5.6/man/curs_trace.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2000-2002,2005 Free Software Foundation, Inc.              *
+.\" Copyright (c) 2000-2005,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp $
+.\" $Id: curs_trace.3x,v 1.8 2007/02/24 17:33:49 tom Exp $
 .TH curs_trace 3X ""
 .na
 .hy 0
@@ -56,7 +56,7 @@
 .br
 \fBchar *_nc_tracebits(void);\fR
 .br
-\fBchar *_tracechar(const unsigned char ch);\fR
+\fBchar *_tracechar(int);\fR
 .br
 \fBchar *_tracechtype(chtype ch);\fR
 .br
diff -Naur ncurses-5.6.orig/man/curs_util.3x ncurses-5.6/man/curs_util.3x
--- ncurses-5.6.orig/man/curs_util.3x	2006-08-26 10:17:48.000000000 -0400
+++ ncurses-5.6/man/curs_util.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.21 2006/08/26 14:17:48 tom Exp $
+.\" $Id: curs_util.3x,v 1.25 2007/05/26 21:44:42 tom Exp $
 .TH curs_util 3X ""
 .na
 .hy 0
@@ -49,7 +49,7 @@
 .sp
 \fBchar *unctrl(chtype c);\fR
 .br
-\fBchar *wunctrl(cchar_t *c);\fR
+\fBwchar_t *wunctrl(cchar_t *c);\fR
 .br
 \fBchar *keyname(int c);\fR
 .br
@@ -146,6 +146,29 @@
 The XSI Curses standard, Issue 4 describes these functions.
 It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
 unsuccessful, but does not define any error conditions.
+This implementation checks for three cases:
+.RS
+.TP 5
+-
+the parameter is a 7-bit US-ASCII code.
+This is the case that X/Open Curses documented.
+.TP 5
+-
+the parameter is in the range 128-159, i.e., a C1 control code.
+If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter,
+\fBunctrl\fP returns the parameter, i.e., a one-character string with
+the parameter as the first character.
+Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls.
+.IP
+X/Open Curses does not document whether \fBunctrl\fP can be called before
+initializing curses.
+This implementation permits that,
+and returns the ``~@'', etc., values in that case.
+.TP 5
+-
+parameter values outside the 0 to 255 range.
+\fBunctrl\fP returns a null pointer.
+.RE
 .PP
 The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
 terms.  The description here is adapted from the XSI Curses standard (which
@@ -157,13 +180,24 @@
 Other implementations have different conventions.
 For example, they may show both sets of control characters with `^',
 and strip the parameter to 7 bits.
-Or they may ignore C1 controls and treat all of the upper-1280 codes as
+Or they may ignore C1 controls and treat all of the upper-128 codes as
 printable.
 This implementation uses 8 bits but does not modify the string to reflect
 locale.
 The \fBuse_legacy_coding\fP function allows the caller to
 change the output of \fBunctrl\fP.
 .PP
+Likewise, the \fBmeta\fP function allows the caller to change the
+output of \fBkeyname\fP, i.e.,
+it determines whether to use the `M-' prefix
+for ``meta'' keys (codes in the range 128 to 255).
+Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
+curses is initialized. 
+X/Open Curses does not document the treatment of codes 128 to 159.
+When treating them as ``meta'' keys
+(or if \fBkeyname\fP is called before initializing curses),
+this implementation returns strings ``M-^@'', ``M-^A'', etc.
+.PP
 The \fBkeyname\fP function may return the names of user-defined
 string capabilities which are defined in the terminfo entry via the \fB-x\fP
 option of \fBtic\fP.
@@ -178,11 +212,12 @@
 It is recommended that any code depending on ncurses extensions
 be conditioned using NCURSES_VERSION.
 .SH SEE ALSO
-\fBuse_legacy_coding\fR(3),
+\fBlegacy_coding\fR(3X),
 \fBcurses\fR(3X),
 \fBcurs_initscr\fR(3X),
 \fBcurs_kernel\fR(3X),
-\fBcurs_scr_dump\fR(3X).
+\fBcurs_scr_dump\fR(3X),
+\fBlegacy_coding\fR(3X).
 .\"#
 .\"# The following sets edit modes for GNU EMACS
 .\"# Local Variables:
diff -Naur ncurses-5.6.orig/man/default_colors.3x ncurses-5.6/man/default_colors.3x
--- ncurses-5.6.orig/man/default_colors.3x	2006-02-25 16:49:19.000000000 -0500
+++ ncurses-5.6/man/default_colors.3x	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
 .\"
 .\" Author: Thomas E. Dickey 1997,1999,2000,2005
 .\"
-.\" $Id: default_colors.3x,v 1.19 2006/02/25 21:49:19 tom Exp $
+.\" $Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp $
 .TH default_colors 3X ""
 .SH NAME
 \fBuse_default_colors\fR,
@@ -104,9 +104,8 @@
 If the \fIinitialize_pair\fP capability is found, this causes an
 error as well.
 .SH NOTES
-Associated with this extension, the \fBinit_pair\fR(3X) function accepts
-negative arguments to specify default foreground or background
-colors.
+Associated with this extension, the \fBinit_pair\fR function accepts
+negative arguments to specify default foreground or background colors.
 .PP
 The \fIuse_default_colors()\fP function was added to support \fIded\fP.
 This is a full-screen application which uses curses to manage only part
diff -Naur ncurses-5.6.orig/man/form.3x ncurses-5.6/man/form.3x
--- ncurses-5.6.orig/man/form.3x	2006-11-04 13:50:09.000000000 -0500
+++ ncurses-5.6/man/form.3x	2008-06-18 06:49:50.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form.3x,v 1.20 2006/11/04 18:50:09 tom Exp $
+.\" $Id: form.3x,v 1.21 2008/04/26 17:11:52 tom Exp $
 .TH form 3X ""
 .SH NAME
 \fBform\fR - curses extension for programming forms
@@ -69,7 +69,7 @@
 data_ahead	\fBform_data\fR(3X)
 data_behind	\fBform_data\fR(3X)
 dup_field	\fBform_field_new\fR(3X)
-dynamic_fieldinfo	\fBform_field_info\fR(3X)
+dynamic_field_info	\fBform_field_info\fR(3X)
 field_arg	\fBform_field_validation\fR(3X)
 field_back	\fBform_field_attributes\fR(3X)
 field_buffer	\fBform_field_buffer\fR(3X)
diff -Naur ncurses-5.6.orig/man/form_driver.3x ncurses-5.6/man/form_driver.3x
--- ncurses-5.6.orig/man/form_driver.3x	2006-11-04 13:51:00.000000000 -0500
+++ ncurses-5.6/man/form_driver.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_driver.3x,v 1.12 2006/11/04 18:51:00 tom Exp $
+.\" $Id: form_driver.3x,v 1.15 2007/06/02 22:56:49 tom Exp $
 .TH form_driver 3X ""
 .SH NAME
 \fBform_driver\fR - command-processing loop of the form system
@@ -38,7 +38,7 @@
 .SH DESCRIPTION
 Once a form has been posted (displayed), you should funnel input events to it
 through \fBform_driver\fR.  This routine has two major input cases; either
-the input is a form navigation request or it's a printable ASCII character.
+the input is a form navigation request or it is a printable ASCII character.
 The form driver requests are as follows:
 .TP 5
 REQ_NEXT_PAGE
@@ -221,6 +221,57 @@
 If the second argument is a printable ASCII character, the driver places it
 in the current position in the current field.  If it is one of the forms
 requests listed above, that request is executed.
+.SS MOUSE HANDLING
+.PP
+If the second argument is the KEY_MOUSE special key, the associated
+mouse event is translated into one of the above pre-defined requests.
+Currently only clicks in the user window (e.g. inside the form display
+area or the decoration window) are handled.
+.PP
+If you click above the display region of the form:
+.RS
+.TP
+a REQ_PREV_FIELD is generated for a single click,
+.TP
+a REQ_PREV_PAGE is generated for a double-click and
+.TP
+a REQ_FIRST_FIELD is generated for a triple-click.
+.RE
+.PP
+If you click below the display region of the form:
+.RS
+.TP
+a REQ_NEXT_FIELD is generated for a single click,
+.TP
+a REQ_NEXT_PAGE is generated for a double-click and
+.TP
+a REQ_LAST_FIELD is generated for a triple-click.
+.RE
+.PP
+If you click at an field inside the display area of the form:
+.RS
+.TP 3
+-
+the form cursor is positioned to that field.
+.TP 3
+-
+If you double-click a field,
+the form cursor is positioned to that field
+and \fBE_UNKNOWN_COMMAND\fR is returned.
+This return value makes sense,
+because a double click usually means that an field-specific action should
+be returned.
+It is exactly the purpose of this return value to signal that an
+application specific command should be executed.
+.TP 3
+-
+If a translation
+into a request was done, \fBform_driver\fR returns the result of this request.
+.RE
+.PP
+If you clicked outside the user window or the mouse event couldn't be translated
+into a form request an \fBE_REQUEST_DENIED\fR is returned.
+.SS APPLICATION-DEFINED COMMANDS
 .PP
 If the second argument is neither printable ASCII nor one of the above
 pre-defined form requests, the driver assumes it is an application-specific
diff -Naur ncurses-5.6.orig/man/form_field_new.3x ncurses-5.6/man/form_field_new.3x
--- ncurses-5.6.orig/man/form_field_new.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/form_field_new.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_new.3x,v 1.14 2006/11/04 17:12:00 tom Exp $
+.\" $Id: form_field_new.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
 .TH form_field_new 3X ""
 .SH NAME
 \fBform_field_new\fR - create and destroy form fields
@@ -93,8 +93,8 @@
 Version 7 or BSD versions.
 .PP
 It may be unwise to count on the set of attributes copied by
-\fBdup_field\fR(3X) being portable; the System V forms library documents are
-not very explicit about what gets copied and what doesn't.
+\fBdup_field\fR being portable; the System V forms library documents are
+not very explicit about what gets copied and what does not.
 .SH AUTHORS
 Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric
 S. Raymond.
diff -Naur ncurses-5.6.orig/man/form_field_opts.3x ncurses-5.6/man/form_field_opts.3x
--- ncurses-5.6.orig/man/form_field_opts.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/form_field_opts.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,20 +27,20 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_opts.3x,v 1.12 2006/11/04 17:12:00 tom Exp $
+.\" $Id: form_field_opts.3x,v 1.13 2007/02/24 17:34:27 tom Exp $
 .TH form_field_opts 3X ""
 .SH NAME
 \fBform_field_opts\fR - set and get field options
 .SH SYNOPSIS
 \fB#include <form.h>\fR
 .br
-int set_field_opts(FIELD *field, OPTIONS opts);
+int set_field_opts(FIELD *field, Field_Options opts);
 .br
-int field_opts_on(FIELD *field, OPTIONS opts);
+int field_opts_on(FIELD *field, Field_Options opts);
 .br
-int field_opts_off(FIELD *field, OPTIONS opts);
+int field_opts_off(FIELD *field, Field_Options opts);
 .br
-OPTIONS field_opts(const FIELD *field);
+Field_Options field_opts(const FIELD *field);
 .br
 .SH DESCRIPTION
 The function \fBset_field_opts\fR sets all the given field's option bits (field
diff -Naur ncurses-5.6.orig/man/form_field_validation.3x ncurses-5.6/man/form_field_validation.3x
--- ncurses-5.6.orig/man/form_field_validation.3x	2006-11-04 12:14:19.000000000 -0500
+++ ncurses-5.6/man/form_field_validation.3x	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_validation.3x,v 1.15 2006/11/04 17:14:19 tom Exp $
+.\" $Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp $
 .TH form_field_validation 3X ""
 .SH NAME
 \fBform_field_validation\fR - data type validation for fields
@@ -99,7 +99,7 @@
 TYPE_REGEXP
 Regular expression data.  Requires a regular expression \fB(char *)\fR third argument;
 the data is valid if the regular expression matches it.  Regular expressions
-are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
+are in the format of \fBregcomp\fR and \fBregexec\fR. Please notice
 that the regular expression must match the whole field. If you have for
 example an eight character wide field, a regular expression "^[0-9]*$" always
 means that you have to fill all eight positions with digits. If you want to
diff -Naur ncurses-5.6.orig/man/form_hook.3x ncurses-5.6/man/form_hook.3x
--- ncurses-5.6.orig/man/form_hook.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/form_hook.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,28 +27,28 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
+.\" $Id: form_hook.3x,v 1.9 2007/02/24 17:34:18 tom Exp $
 .TH form_hook 3X ""
 .SH NAME
 \fBform_hook\fR - set hooks for automatic invocation by applications
 .SH SYNOPSIS
 \fB#include <form.h>\fR
 .br
-int set_field_init(FORM *form, void (*func)(FORM *));
+int set_field_init(FORM *form, Form_Hook func);
 .br
-void (*)(FORM *) field_init(const FORM *form);
+Form_Hook field_init(const FORM *form);
 .br
-int set_field_term(FORM *form, void (*func)(FORM *));
+int set_field_term(FORM *form, Form_Hook func);
 .br
-void (*)(FORM *) field_term(const FORM *form);
+Form_Hook field_term(const FORM *form);
 .br
-int set_form_init(FORM *form, void (*func)(FORM *));
+int set_form_init(FORM *form, Form_Hook func);
 .br
-void (*)(FORM *) form_init(const FORM *form);
+Form_Hook form_init(const FORM *form);
 .br
-int set_form_term(FORM *form, void (*func)(FORM *));
+int set_form_term(FORM *form, Form_Hook func);
 .br
-void (*)(FORM *) form_term(const FORM *form);
+Form_Hook form_term(const FORM *form);
 .br
 .SH DESCRIPTION
 These functions make it possible to set hook functions to be called at various
diff -Naur ncurses-5.6.orig/man/form_opts.3x ncurses-5.6/man/form_opts.3x
--- ncurses-5.6.orig/man/form_opts.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/form_opts.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,20 +27,20 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
+.\" $Id: form_opts.3x,v 1.9 2007/02/24 17:34:36 tom Exp $
 .TH form_opts 3X ""
 .SH NAME
 \fBform_opts\fR - set and get form options
 .SH SYNOPSIS
 \fB#include <form.h>\fR
 .br
-int set_form_opts(FORM *form, OPTIONS opts);
+int set_form_opts(FORM *form, Field_Options opts);
 .br
-int form_opts_on(FORM *form, OPTIONS opts);
+int form_opts_on(FORM *form, Field_Options opts);
 .br
-int form_opts_off(FORM *form, OPTIONS opts);
+int form_opts_off(FORM *form, Field_Options opts);
 .br
-OPTIONS form_opts(const FORM *form);
+Field_Options form_opts(const FORM *form);
 .br
 .SH DESCRIPTION
 The function \fBset_form_opts\fR sets all the given form's option bits (form
diff -Naur ncurses-5.6.orig/man/infocmp.1m ncurses-5.6/man/infocmp.1m
--- ncurses-5.6.orig/man/infocmp.1m	2006-05-13 11:14:01.000000000 -0400
+++ ncurses-5.6/man/infocmp.1m	2008-06-18 06:49:44.000000000 -0400
@@ -27,14 +27,14 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
-.TH infocmp 1M ""
+.\" $Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp $
+.TH @INFOCMP@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
-\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
+\fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
 .SH SYNOPSIS
-\fBinfocmp\fR [\fB-\
+\fB@INFOCMP@\fR [\fB-\
 1\
 C\
 E\
@@ -66,7 +66,7 @@
 .br
       [\fItermname\fR...]
 .SH DESCRIPTION
-\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other
+\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
 terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
 \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
 binary file (\fBterm\fR) in a variety of formats.  In all cases, the boolean
@@ -77,7 +77,7 @@
 \fB-I\fR option will be assumed.  If more than one \fItermname\fR is specified,
 the \fB-d\fR option will be assumed.
 .SS Comparison Options [-d] [-c] [-n]
-\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
+\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
 \fItermname\fR with each of the descriptions given by the entries for the other
 terminal's \fItermnames\fR.  If a capability is defined for only one of the
 terminals, the value returned will depend on the type of the capability:
@@ -114,7 +114,7 @@
 .PP
 The source produced by the \fB-C\fR option may be used directly as a
 \fBtermcap\fR entry, but not all parameterized strings can be changed to
-the \fBtermcap\fR format.  \fBinfocmp\fR will attempt to convert most of the
+the \fBtermcap\fR format.  \fB@INFOCMP@\fR will attempt to convert most of the
 parameterized information, and anything not converted will be plainly marked in
 the output and commented out.  These should be edited by hand.
 .PP
@@ -162,7 +162,7 @@
 other terminals.  In this manner, it is possible to retrofit generic terminfo
 entries into a terminal's description.  Or, if two similar terminals exist, but
 were coded at different times or by different people so that each description
-is a full description, using \fBinfocmp\fR will show what can be done to change
+is a full description, using \fB@INFOCMP@\fR will show what can be done to change
 one description to be relative to the other.
 .PP
 A capability will get printed with an at-sign (@) if it no longer exists in the
@@ -176,18 +176,18 @@
 terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
 specifying two \fBuse=\fR entries that contain differing entries for the same
 capabilities will produce different results depending on the order that the
-entries are given in.  \fBinfocmp\fR will flag any such inconsistencies between
+entries are given in.  \fB@INFOCMP@\fR will flag any such inconsistencies between
 the other \fItermname\fR entries as they are found.
 .PP
 Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
 contains that capability will cause the second specification to be ignored.
-Using \fBinfocmp\fR to recreate a description can be a useful check to make
+Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
 sure that everything was specified correctly in the original source
 description.
 .PP
 Another error that does not cause incorrect compiled files, but will slow down
 the compilation time, is specifying extra \fBuse=\fR fields that are
-superfluous.  \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
+superfluous.  \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
 were not needed.
 .SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
 The location of the compiled \fBterminfo\fR database is taken from the
@@ -208,7 +208,7 @@
 of 60 characters.
 .TP
 \fB-a\fR
-tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
+tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
 them.  Capabilities are commented by prefixing them with a period.
 .TP 5
 \fB-E\fR
@@ -367,9 +367,9 @@
 untranslatable capabilities are commented-out.
 .TP 5
 \fB-U\fR
-tells \fBinfocmp\fP to not post-process the data after parsing the source file.
+tells \fB@INFOCMP@\fP to not post-process the data after parsing the source file.
 This feature helps when comparing the actual contents of two source files,
-since it excludes the inferences that \fBinfocmp\fP makes to fill in missing
+since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
 data.
 .TP 5
 \fB-V\fR
@@ -413,7 +413,7 @@
 Actual BSD curses versions will have a more restricted set.  To see only the
 4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
 .SH BUGS
-The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
+The \fB-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
 .SH SEE ALSO
 \fB@CAPTOINFO@\fR(1M),
 \fB@INFOTOCAP@\fR(1M),
diff -Naur ncurses-5.6.orig/man/infotocap.1m ncurses-5.6/man/infotocap.1m
--- ncurses-5.6.orig/man/infotocap.1m	2006-05-13 11:35:45.000000000 -0400
+++ ncurses-5.6/man/infotocap.1m	2008-06-18 06:49:44.000000000 -0400
@@ -27,16 +27,16 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infotocap.1m,v 1.6 2006/05/13 15:35:45 tom Exp $
-.TH infotocap 1M ""
+.\" $Id: infotocap.1m,v 1.8 2006/12/24 20:13:56 tom Exp $
+.TH @INFOTOCAP@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
-\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
+\fB@INFOTOCAP@\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
 .SH SYNOPSIS
-\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fB@INFOTOCAP@\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
 .SH DESCRIPTION
-\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions.  For each
+\fB@INFOTOCAP@\fR looks in \fIfile\fR for \fBterminfo\fR descriptions.  For each
 one found, an equivalent \fBtermcap\fR description is written to standard
 output.  Terminfo \fBuse\fR capabilities are translated directly to termcap
 \fBtc\fR capabilities.
@@ -59,12 +59,12 @@
 \*d
 Compiled terminal description database.
 .SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
+This utility is actually a link to \fI@TIC@\fR, running in \fI-C\fR mode.
+You can use other \fI@TIC@\fR options such as \fB-f\fR and  \fB-x\fR.
 .SH SEE ALSO
 \fBcurses\fR(3X),
-\fBtic\fR(1M),
-\fBinfocmp\fR(1M),
+\fB@TIC@\fR(1M),
+\fB@INFOCMP@\fR(1M),
 \fBterminfo\fR(\*n)
 .PP
 This describes \fBncurses\fR
diff -Naur ncurses-5.6.orig/man/legacy_coding.3x ncurses-5.6/man/legacy_coding.3x
--- ncurses-5.6.orig/man/legacy_coding.3x	2006-02-25 16:50:01.000000000 -0500
+++ ncurses-5.6/man/legacy_coding.3x	2008-06-18 06:49:44.000000000 -0400
@@ -28,7 +28,7 @@
 .\"
 .\" Author: Thomas E. Dickey
 .\"
-.\" $Id: legacy_coding.3x,v 1.2 2006/02/25 21:50:01 tom Exp $
+.\" $Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp $
 .TH legacy_coding 3X ""
 .SH NAME
 \fBuse_legacy_coding\fR \- use terminal's default colors
@@ -50,7 +50,7 @@
 .TP 5
 0
 the library functions normally,
-rendering nonprinting characters as described in \fBunctrl\fP(3X).
+rendering nonprinting characters as described in \fBunctrl\fP.
 .TP
 1
 the library ignores \fBisprintf\fP for codes in the range 160-255.
diff -Naur ncurses-5.6.orig/man/man_db.renames ncurses-5.6/man/man_db.renames
--- ncurses-5.6.orig/man/man_db.renames	2006-05-13 19:47:25.000000000 -0400
+++ ncurses-5.6/man/man_db.renames	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: man_db.renames,v 0.36 2006/05/13 23:47:25 tom Exp $
+# $Id: man_db.renames,v 0.40 2008/01/19 18:28:50 tom Exp $
 # Manual-page renamings for the man_db program
 #
 # Files:
@@ -67,8 +67,10 @@
 curs_instr.3x			instr.3ncurses
 curs_inwstr.3x			inwstr.3ncurses
 curs_kernel.3x			kernel.3ncurses
+curs_legacy.3x			legacy.3ncurses
 curs_mouse.3x			mouse.3ncurses
 curs_move.3x			move.3ncurses
+curs_opaque.3x			opaque.3ncurses
 curs_outopts.3x			outopts.3ncurses
 curs_overlay.3x			overlay.3ncurses
 curs_pad.3x			pad.3ncurses
@@ -82,6 +84,7 @@
 curs_termattrs.3x		termattrs.3ncurses
 curs_termcap.3x			termcap.3ncurses
 curs_terminfo.3x		terminfo.3ncurses
+curs_threads.3x			threads.3ncurses
 curs_touch.3x			touch.3ncurses
 curs_trace.3x			trace.3ncurses
 curs_util.3x			util.3ncurses
@@ -114,9 +117,9 @@
 form_win.3x			win.3form
 infocmp.1m			infocmp.1
 infotocap.1m			infotocap.1
+key_defined.3x			key_defined.3ncurses
 keybound.3x			keybound.3ncurses
 keyok.3x			keyok.3ncurses
-key_defined.3x			key_defined.3ncurses
 legacy_coding.3x		legacy_coding.3ncurses
 menu.3x				menu.3menu
 menu_attributes.3x		attributes.3menu
@@ -159,12 +162,15 @@
 vprintf.3s			vprintf.3
 wresize.3x			wresize.3ncurses
 #
-# Other cross-references:
-addch.3x			addch.3ncurses
-can_change_color.3x		can_change_color.3ncurses
-curs_attr_get.3x		attr_get.3ncurses
-dup_field.3x			dup_field.3ncurses
-init_pair.3x			init_pair.3ncurses
-#
 # Other:
 tack.1m				tack.1
+#
+getty.1				getty.8
+scanf.3				scanf.3
+ttys.5				ttys.4
+termio.7			termios.3
+system.3			system.3
+regcomp.3x			regcomp.3
+regexec.3x			regexec.3
+#
+# vile:cfgmode
diff -Naur ncurses-5.6.orig/man/manlinks.sed ncurses-5.6/man/manlinks.sed
--- ncurses-5.6.orig/man/manlinks.sed	2003-12-20 08:17:56.000000000 -0500
+++ ncurses-5.6/man/manlinks.sed	2008-06-18 06:49:46.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: manlinks.sed,v 1.12 2003/12/20 13:17:56 tom Exp $
+# $Id: manlinks.sed,v 1.13 2008/01/19 23:31:17 tom Exp $
 ##############################################################################
-# Copyright (c) 2000-2002,2003 Free Software Foundation, Inc.                #
+# Copyright (c) 2000-2003,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -35,6 +35,7 @@
 /\.\\"/d
 /^\.br/d
 /^\.sp/d
+/typedef/d
 s/^\.IX//
 s/\\f.//g
 s/[:,]/ /g
diff -Naur ncurses-5.6.orig/man/menu_driver.3x ncurses-5.6/man/menu_driver.3x
--- ncurses-5.6.orig/man/menu_driver.3x	2006-11-04 12:13:50.000000000 -0500
+++ ncurses-5.6/man/menu_driver.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_driver.3x,v 1.12 2006/11/04 17:13:50 tom Exp $
+.\" $Id: menu_driver.3x,v 1.14 2007/06/02 22:50:09 tom Exp $
 .TH menu_driver 3X ""
 .SH NAME
 \fBmenu_driver\fR - command-processing loop of the menu system
@@ -38,7 +38,7 @@
 .SH DESCRIPTION
 Once a menu has been posted (displayed), you should funnel input events to it
 through \fBmenu_driver\fR.  This routine has three major input cases; either
-the input is a menu navigation request, it's a printable ASCII character or it
+the input is a menu navigation request, it is a printable ASCII character or it
 is the KEY_MOUSE special key associated with an mouse event.
 The menu driver requests are as follows:
 .TP 5
@@ -100,25 +100,56 @@
 .PP
 If the second argument is one of the above pre-defined requests, the
 corresponding action is performed.
+.SS MOUSE HANDLING
 .PP
 If the second argument is the KEY_MOUSE special key, the associated
 mouse event is translated into one of the above pre-defined requests.
 Currently only clicks in the user window (e.g. inside the menu display
-area or the decoration window) are handled. If you click above the
-display region of the menu, a REQ_SCR_ULINE is generated, if you
-doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a
-REQ_FIRST_ITEM is generated. If you click below the display region of
-the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE
-is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you
-click at an item inside the display area of the menu, the menu cursor
-is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM
-is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
-sense, because a double click usually means that an item-specific action should
-be returned. It's exactly the purpose of this return value to signal that an
-application specific command should be executed. If a translation
+area or the decoration window) are handled.
+.PP
+If you click above the display region of the menu:
+.RS
+.TP
+a REQ_SCR_ULINE is generated for a single click,
+.TP
+a REQ_SCR_UPAGE is generated for a double-click and
+.TP
+a REQ_FIRST_ITEM is generated for a triple-click.
+.RE
+.PP
+If you click below the display region of the menu:
+.RS
+.TP
+a REQ_SCR_DLINE is generated for a single click,
+.TP
+a REQ_SCR_DPAGE is generated for a double-click and
+.TP
+a REQ_LAST_ITEM is generated for a triple-click.
+.RE
+.PP
+If you click at an item inside the display area of the menu:
+.RS
+.TP 3
+-
+the menu cursor is positioned to that item.
+.TP 3
+-
+If you double-click an item a REQ_TOGGLE_ITEM
+is generated and \fBE_UNKNOWN_COMMAND\fR is returned.
+This return value makes sense,
+because a double click usually means that an item-specific action should
+be returned.
+It is exactly the purpose of this return value to signal that an
+application specific command should be executed.
+.TP 3
+-
+If a translation
 into a request was done, \fBmenu_driver\fR returns the result of this request.
+.RE
+.PP
 If you clicked outside the user window or the mouse event couldn't be translated
 into a menu request an \fBE_REQUEST_DENIED\fR is returned.
+.SS APPLICATION-DEFINED COMMANDS
 .PP
 If the second argument is neither printable ASCII nor one of the above
 pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
diff -Naur ncurses-5.6.orig/man/menu_hook.3x ncurses-5.6/man/menu_hook.3x
--- ncurses-5.6.orig/man/menu_hook.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/menu_hook.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,28 +27,28 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
+.\" $Id: menu_hook.3x,v 1.9 2007/02/24 17:34:08 tom Exp $
 .TH menu_hook 3X ""
 .SH NAME
 \fBmenu_hook\fR - set hooks for automatic invocation by applications
 .SH SYNOPSIS
 \fB#include <menu.h>\fR
 .br
-int set_item_init(MENU *menu, void (*func)(MENU *));
+int set_item_init(MENU *menu, Menu_Hook func);
 .br
-void (*)(MENU *) item_init(const MENU *menu);
+Menu_Hook item_init(const MENU *menu);
 .br
-int set_item_term(MENU *menu, void (*func)(MENU *));
+int set_item_term(MENU *menu, Menu_Hook func);
 .br
-void (*)(MENU *) item_term(const MENU *menu);
+Menu_Hook item_term(const MENU *menu);
 .br
-int set_menu_init(MENU *menu, void (*func)(MENU *));
+int set_menu_init(MENU *menu, Menu_Hook func);
 .br
-void (*)(MENU *) menu_init(const MENU *menu);
+Menu_Hook menu_init(const MENU *menu);
 .br
-int set_menu_term(MENU *menu, void (*func)(MENU *));
+int set_menu_term(MENU *menu, Menu_Hook func);
 .br
-void (*)(MENU *) menu_term(const MENU *menu);
+Menu_Hook menu_term(const MENU *menu);
 .br
 .SH DESCRIPTION
 These functions make it possible to set hook functions to be called at various
diff -Naur ncurses-5.6.orig/man/menu_opts.3x ncurses-5.6/man/menu_opts.3x
--- ncurses-5.6.orig/man/menu_opts.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/menu_opts.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,20 +27,20 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu_opts.3x,v 1.9 2006/11/04 17:12:00 tom Exp $
+.\" $Id: menu_opts.3x,v 1.10 2007/02/24 17:33:59 tom Exp $
 .TH menu_opts 3X ""
 .SH NAME
 \fBmenu_opts\fR - set and get menu options
 .SH SYNOPSIS
 \fB#include <menu.h>\fR
 .br
-int set_menu_opts(MENU *menu, OPTIONS opts);
+int set_menu_opts(MENU *menu, Menu_Options opts);
 .br
-int menu_opts_on(MENU *menu, OPTIONS opts);
+int menu_opts_on(MENU *menu, Menu_Options opts);
 .br
-int menu_opts_off(MENU *menu, OPTIONS opts);
+int menu_opts_off(MENU *menu, Menu_Options opts);
 .br
-OPTIONS menu_opts(const MENU *menu);
+Menu_Options menu_opts(const MENU *menu);
 .br
 .SH DESCRIPTION
 The function \fBset_menu_opts\fR sets all the given menu's option bits (menu
diff -Naur ncurses-5.6.orig/man/mitem_opts.3x ncurses-5.6/man/mitem_opts.3x
--- ncurses-5.6.orig/man/mitem_opts.3x	2006-11-04 12:12:00.000000000 -0500
+++ ncurses-5.6/man/mitem_opts.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,20 +27,20 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: mitem_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
+.\" $Id: mitem_opts.3x,v 1.9 2007/02/24 17:33:32 tom Exp $
 .TH mitem_opts 3X ""
 .SH NAME
 \fBmitem_opts\fR - set and get menu item options
 .SH SYNOPSIS
 \fB#include <menu.h>\fR
 .br
-int set_item_opts(ITEM *item, OPTIONS opts);
+int set_item_opts(ITEM *item, Item_Options opts);
 .br
-int item_opts_on(ITEM *item, OPTIONS opts);
+int item_opts_on(ITEM *item, Item_Options opts);
 .br
-int item_opts_off(ITEM *item, OPTIONS opts);
+int item_opts_off(ITEM *item, Item_Options opts);
 .br
-OPTIONS item_opts(const ITEM *item);
+Item_Options item_opts(const ITEM *item);
 .br
 .SH DESCRIPTION
 The function \fBset_item_opts\fR sets all the given item's option bits (menu
diff -Naur ncurses-5.6.orig/man/ncurses.3x ncurses-5.6/man/ncurses.3x
--- ncurses-5.6.orig/man/ncurses.3x	2006-12-02 14:23:11.000000000 -0500
+++ ncurses-5.6/man/ncurses.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.81 2006/12/02 19:23:11 tom Exp $
+.\" $Id: ncurses.3x,v 1.89 2007/09/01 18:57:29 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ds n 5
@@ -39,19 +39,27 @@
 .br
 .SH DESCRIPTION
 The \fBncurses\fR library routines give the user a terminal-independent method
-of updating character screens with reasonable optimization.  This
-implementation is ``new curses'' (ncurses) and is the approved replacement for
+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 \fBncurses\fR
 version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
 .PP
-The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
-Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
-library is freely redistributable in source form.  Differences from the SVr4
+The \fBncurses\fR library emulates the \fBcurses\fR(3X) library of
+System V Release 4 UNIX,
+and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
+XSI stands for X/Open System Interfaces Extension.
+The \fBncurses\fR library is freely redistributable in source form.
+Differences from the SVr4
 curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
 described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
 of individual man pages.
 .PP
+The \fBncurses\fR library also provides many useful extensions,
+i.e., features which cannot be implemented by a simple add-on library
+but which require access to the internals of the library.
+.PP
 A program using these routines must be linked with the \fB-lncurses\fR option,
 or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
 (Your system integrator may also have installed these libraries under
@@ -68,8 +76,9 @@
 .PP
 To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
 must be called before any of the other routines that deal with windows
-and screens are used.  The routine \fBendwin\fR must be called before
-exiting.  To get character-at-a-time input without echoing (most
+and screens are used.
+The routine \fBendwin\fR must be called before exiting.
+To get character-at-a-time input without echoing (most
 interactive, screen oriented programs want this), the following
 sequence should be used:
 .sp
@@ -82,60 +91,72 @@
       \fBkeypad(stdscr, TRUE);\fR
 .sp
 Before a \fBcurses\fR program is run, the tab stops of the terminal
-should be set and its initialization strings, if defined, must be
-output.  This can be done by executing the \fBtput init\fR command
+should be set and its initialization strings, if defined, must be output.
+This can be done by executing the \fBtput init\fR command
 after the shell environment variable \fBTERM\fR has been exported.
 \fBtset(1)\fR is usually responsible for doing this.
 [See \fBterminfo\fR(\*n) for further details.]
 .PP
 The \fBncurses\fR library permits manipulation of data structures,
 called \fIwindows\fR, which can be thought of as two-dimensional
-arrays of characters representing all or part of a CRT screen.  A
-default window called \fBstdscr\fR, which is the size of the terminal
-screen, is supplied.  Others may be created with \fBnewwin\fR.
+arrays of characters representing all or part of a CRT screen.
+A default window called \fBstdscr\fR, which is the size of the terminal
+screen, is supplied.
+Others may be created with \fBnewwin\fR.
 .PP
 Note that \fBcurses\fR does not handle overlapping windows, that's done by
-the \fBpanel\fR(3X) library. This means that you can either use
+the \fBpanel\fR(3X) library.
+This means that you can either use
 \fBstdscr\fR or divide the screen into tiled windows and not using
-\fBstdscr\fR at all. Mixing the two will result in unpredictable, and
-undesired, effects.
+\fBstdscr\fR at all.
+Mixing the two will result in unpredictable, and undesired, effects.
 .PP
 Windows are referred to by variables declared as \fBWINDOW *\fR.
 These data structures are manipulated with routines described here and
-elsewhere in the \fBncurses\fR manual pages.  Among those, the most basic
-routines are \fBmove\fR and \fBaddch\fR.  More general versions of
+elsewhere in the \fBncurses\fR manual pages.
+Among those, the most basic
+routines are \fBmove\fR and \fBaddch\fR.
+More general versions of
 these routines are included with names beginning with \fBw\fR,
-allowing the user to specify a window.  The routines not beginning
+allowing the user to specify a window.
+The routines not beginning
 with \fBw\fR affect \fBstdscr\fR.
 .PP
 After using routines to manipulate a window, \fBrefresh\fR is called,
 telling \fBcurses\fR to make the user's CRT screen look like
-\fBstdscr\fR.  The characters in a window are actually of type
+\fBstdscr\fR.
+The characters in a window are actually of type
 \fBchtype\fR, (character and attribute data) so that other information
 about the character may also be stored with each character.
 .PP
-Special windows called \fIpads\fR may also be manipulated.  These are windows
+Special windows called \fIpads\fR may also be manipulated.
+These are windows
 which are not constrained to the size of the screen and whose contents need not
-be completely displayed.  See \fBcurs_pad\fR(3X) for more information.
+be completely displayed.
+See \fBcurs_pad\fR(3X) for more information.
 .PP
 In addition to drawing characters on the screen, video attributes and colors
 may be supported, causing the characters to show up in such modes as
 underlined, in reverse video, or in color on terminals that support such
-display enhancements.  Line drawing characters may be specified to be output.
+display enhancements.
+Line drawing characters may be specified to be output.
 On input, \fBcurses\fR is also able to translate arrow and function keys that
-transmit escape sequences into single values.  The video attributes, line
+transmit escape sequences into single values.
+The video attributes, line
 drawing characters, and input values use names, defined in \fB<curses.h>\fR,
 such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
 .PP
 If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
 program is executing in a window environment, line and column information in
-the environment will override information read by \fIterminfo\fR.  This would
-effect a program running in an AT&T 630 layer, for example, where the size of a
+the environment will override information read by \fIterminfo\fR.
+This would affect a program running in an AT&T 630 layer,
+for example, where the size of a
 screen is changeable (see \fBENVIRONMENT\fR).
 .PP
 If the environment variable \fBTERMINFO\fR is defined, any program using
 \fBcurses\fR checks for a local terminal definition before checking in the
-standard place.  For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
+standard place.
+For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
 compiled terminal definition is found in
 .sp
       \fB\*d/a/att4424\fR.
@@ -155,43 +176,100 @@
 .PP
 The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
 \fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
-screen.  The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
+screen.
+The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
 \fB0\fR, respectively.
 .PP
 The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
 which is used for certain low-level operations like clearing and redrawing a
-screen containing garbage.  The \fBcurscr\fR can be used in only a few
-routines.
-.
+screen containing garbage.
+The \fBcurscr\fR can be used in only a few routines.
+.\"
 .SS Routine and Argument Names
-Many \fBcurses\fR routines have two or more versions.  The routines prefixed
-with \fBw\fR require a window argument.  The routines prefixed with \fBp\fR
-require a pad argument.  Those without a prefix generally use \fBstdscr\fR.
+Many \fBcurses\fR routines have two or more versions.
+The routines prefixed with \fBw\fR require a window argument.
+The routines prefixed with \fBp\fR require a pad argument.
+Those without a prefix generally use \fBstdscr\fR.
 .PP
 The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
-coordinate to move to before performing the appropriate action.  The
-\fBmv\fR routines imply a call to \fBmove\fR before the call to the
-other routine.  The coordinate \fIy\fR always refers to the row (of
-the window), and \fIx\fR always refers to the column.  The upper
-left-hand corner is always (0,0), not (1,1).
+coordinate to move to before performing the appropriate action.
+The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
+other routine.
+The coordinate \fIy\fR always refers to the row (of
+the window), and \fIx\fR always refers to the column.
+The upper left-hand corner is always (0,0), not (1,1).
 .PP
 The routines prefixed with \fBmvw\fR take both a window argument and
-\fIx\fR and \fIy\fR coordinates.  The window argument is always
-specified before the coordinates.
+\fIx\fR and \fIy\fR coordinates.
+The window argument is always specified before the coordinates.
 .PP
 In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
 pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
 \fBWINDOW\fR.
 .PP
 Option setting routines require a Boolean flag \fIbf\fR with the value
-\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.  The
-variables \fIch\fR and \fIattrs\fR below are always of type
-\fBchtype\fR.  The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
-\fBchtype\fR are defined in \fB<curses.h>\fR.  The type \fBTERMINAL\fR
-is defined in \fB<term.h>\fR.  All other arguments are integers.
+\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
+Most of the data types used in the library routines,
+such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
+are defined in \fB<curses.h>\fR.
+Types used for the terminfo routines such as
+\fBTERMINAL\fR are defined in \fB<term.h>\fR.
+.PP
+This manual page describes functions which may appear in any configuration
+of the library.
+There are two common configurations of the library:
+.RS
+.TP 5
+ncurses
+the "normal" library, which handles 8-bit characters.
+The normal (8-bit) library stores characters combined with attributes
+in \fBchtype\fP data.
+.IP
+Attributes alone (no corresponding character) may be stored in \fBchtype\fP
+or the equivalent \fBattr_t\fP data.
+In either case, the data is stored in something like an integer.
+.IP
+Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
+.TP 5
+ncursesw
+the so-called "wide" library, which handles multibyte characters
+(See the section on \fBALTERNATE CONFIGURATIONS\fP).
+The "wide" library includes all of the calls from the "normal" library.
+It adds about one third more calls using data types which store
+multibyte characters:
+.RS
+.TP 5
+.B cchar_t
+corresponds to \fBchtype\fP.
+However it is a structure, because more data is stored than can fit into
+an integer.
+The characters are large enough to require a full integer value - and there
+may be more than one character per cell.
+The video attributes and color are stored in separate fields of the structure.
+.IP
+Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
+.TP 5
+.B wchar_t
+stores a "wide" character.
+Like \fBchtype\fP, this may be an integer.
+.TP 5
+.B wint_t
+stores a \fBwchar_t\fP or \fBWEOF\fP - not the same, though both may have
+the same size.
+.RE
+.IP
+The "wide" library provides new functions which are analogous to
+functions in the "normal" library.
+There is a naming convention which relates many of the normal/wide variants:
+a "_w" is inserted into the name.
+For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
+.RE
+.PP
+.\"
 .SS Routine Name Index
 The following table lists each \fBcurses\fR routine and the name of
-the manual page on which it is described.  Routines flagged with `*'
+the manual page on which it is described.
+Routines flagged with `*'
 are ncurses-specific, not described by XPG4 or present in SVr4.
 .PP
 .TS
@@ -275,15 +353,24 @@
 flushinp/\fBcurs_util\fR(3X)
 get_wch/\fBcurs_get_wch\fR(3X)
 get_wstr/\fBcurs_get_wstr\fR(3X)
+getattrs/\fBcurs_attr\fR(3X)
+getbegx/\fBcurs_legacy\fR(3X)*
+getbegy/\fBcurs_legacy\fR(3X)*
 getbegyx/\fBcurs_getyx\fR(3X)
 getbkgd/\fBcurs_bkgd\fR(3X)
 getbkgrnd/\fBcurs_bkgrnd\fR(3X)
 getcchar/\fBcurs_getcchar\fR(3X)
 getch/\fBcurs_getch\fR(3X)
+getcurx/\fBcurs_legacy\fR(3X)*
+getcury/\fBcurs_legacy\fR(3X)*
+getmaxx/\fBcurs_legacy\fR(3X)*
+getmaxy/\fBcurs_legacy\fR(3X)*
 getmaxyx/\fBcurs_getyx\fR(3X)
 getmouse/\fBcurs_mouse\fR(3X)*
 getn_wstr/\fBcurs_get_wstr\fR(3X)
 getnstr/\fBcurs_getstr\fR(3X)
+getparx/\fBcurs_legacy\fR(3X)*
+getpary/\fBcurs_legacy\fR(3X)*
 getparyx/\fBcurs_getyx\fR(3X)
 getstr/\fBcurs_getstr\fR(3X)
 getsyx/\fBcurs_kernel\fR(3X)
@@ -321,7 +408,18 @@
 instr/\fBcurs_instr\fR(3X)
 intrflush/\fBcurs_inopts\fR(3X)
 inwstr/\fBcurs_inwstr\fR(3X)
+is_cleared/\fBcurs_opaque\fR(3X)*
+is_idcok/\fBcurs_opaque\fR(3X)*
+is_idlok/\fBcurs_opaque\fR(3X)*
+is_immedok/\fBcurs_opaque\fR(3X)*
+is_keypad/\fBcurs_opaque\fR(3X)*
+is_leaveok/\fBcurs_opaque\fR(3X)*
 is_linetouched/\fBcurs_touch\fR(3X)
+is_nodelay/\fBcurs_opaque\fR(3X)*
+is_notimeout/\fBcurs_opaque\fR(3X)*
+is_scrollok/\fBcurs_opaque\fR(3X)*
+is_syncok/\fBcurs_opaque\fR(3X)*
+is_term_resized/\fBresizeterm\fR(3X)*
 is_wintouched/\fBcurs_touch\fR(3X)
 isendwin/\fBcurs_initscr\fR(3X)
 key_defined/\fBkey_defined\fR(3X)*
@@ -431,6 +529,7 @@
 nocbreak/\fBcurs_inopts\fR(3X)
 nodelay/\fBcurs_inopts\fR(3X)
 noecho/\fBcurs_inopts\fR(3X)
+nofilter/\fBcurs_util\fR(3X)*
 nonl/\fBcurs_outopts\fR(3X)
 noqiflush/\fBcurs_inopts\fR(3X)
 noraw/\fBcurs_inopts\fR(3X)
@@ -519,6 +618,7 @@
 use_default_colors/\fBdefault_colors\fR(3X)*
 use_env/\fBcurs_util\fR(3X)
 use_extended_names/\fBcurs_extend\fR(3X)*
+use_legacy_coding/\fBlegacy_coding\fR(3X)*
 vid_attr/\fBcurs_terminfo\fR(3X)
 vid_puts/\fBcurs_terminfo\fR(3X)
 vidattr/\fBcurs_terminfo\fR(3X)
@@ -617,16 +717,16 @@
 otherwise noted in the routine descriptions.
 .PP
 All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.  The return
-values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
+\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
+The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
 \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
 right-hand side of assignment statements).
 .PP
 Routines that return pointers return \fBNULL\fR on error.
 .SH ENVIRONMENT
 The following environment symbols are useful for customizing the
-runtime behavior of the \fBncurses\fR library.  The most important
-ones have been already discussed in detail.
+runtime behavior of the \fBncurses\fR library.
+The most important ones have been already discussed in detail.
 .TP 5
 BAUDRATE
 The debugging library checks this environment symbol when the application
@@ -722,7 +822,7 @@
 NCURSES_ASSUMED_COLORS
 Override the compiled-in assumption that the
 terminal's default colors are white-on-black
-(see \fBassume_default_colors\fR(3X)).
+(see \fBdefault_colors\fR(3X)).
 You may set the foreground and background color values with this environment
 variable by proving a 2-element list: foreground,background.
 For example, to tell ncurses to not assume anything
@@ -739,7 +839,7 @@
 .TP 5
 NCURSES_NO_MAGIC_COOKIES
 Some terminals use a magic-cookie feature which requires special handling
-to make highlighting and other video attributes display properly. 
+to make highlighting and other video attributes display properly.
 You can suppress the highlighting entirely for these terminals by
 setting this environment variable.
 .TP 5
@@ -761,18 +861,21 @@
 operations that the terminal does slowly, such as clearing the display.
 .IP
 As a result, many terminal descriptions (including the vt100)
-have delay times embedded.  You may wish to use these descriptions,
+have delay times embedded.
+You may wish to use these descriptions,
 but not want to pay the performance penalty.
 .IP
 Set the NCURSES_NO_PADDING symbol to disable all but mandatory
-padding.  Mandatory padding is used as a part of special control
+padding.
+Mandatory padding is used as a part of special control
 sequences such as \fIflash\fR.
 .TP 5
 NCURSES_NO_SETBUF
 Normally \fBncurses\fR enables buffered output during terminal initialization.
 This is done (as in SVr4 curses) for performance reasons.
 For testing purposes, both of \fBncurses\fR and certain applications,
-this feature is made optional.  Setting the NCURSES_NO_SETBUF variable
+this feature is made optional.
+Setting the NCURSES_NO_SETBUF variable
 disables output buffering, leaving the output in the original (usually
 line buffered) mode.
 .TP 5
@@ -944,12 +1047,14 @@
 .SH EXTENSIONS
 The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
 that falls back to the old-style /etc/termcap file if the terminal setup code
-cannot find a terminfo entry corresponding to \fBTERM\fR.  Use of this feature
+cannot find a terminfo entry corresponding to \fBTERM\fR.
+Use of this feature
 is not recommended, as it essentially includes an entire termcap compiler in
 the \fBncurses\fR startup code, at significant cost in core and startup cycles.
 .PP
 The \fBncurses\fR library includes facilities for capturing mouse events on
-certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
+certain terminals (including xterm).
+See the \fBcurs_mouse\fR(3X)
 manual page for details.
 .PP
 The \fBncurses\fR library includes facilities for responding to window
@@ -974,38 +1079,48 @@
 See the \fBdefault_colors\fR(3X) manual page for details.
 .PP
 The \fBncurses\fR library includes a function for directing application output
-to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
-manual page for details.
+to a printer attached to the terminal device.
+See the \fBcurs_print\fR(3X) manual page for details.
 .SH PORTABILITY
-The \fBncurses\fR library is intended to be BASE-level conformant with the XSI
-Curses standard.  The EXTENDED XSI Curses functionality
+The \fBncurses\fR library is intended to be BASE-level conformant with XSI
+Curses.
+The EXTENDED XSI Curses functionality
 (including color support) is supported.
 .PP
 A small number of local differences (that is, individual differences between
 the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
 sections of the library man pages.
 .PP
-The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.  See
-the \fBcurs_getch\fR(3X) manual page for details.
+This implementation also contains several extensions:
+.RS 5
+.PP
+The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBcurs_getch\fR(3X) manual page for details.
 .PP
-The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.  See
-the \fBcurs_slk\fR(3X) manual page for details.
+The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBcurs_slk\fR(3X) manual page for details.
 .PP
 The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
 \fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
-part of XPG4, nor are they present in SVr4.  See the \fBcurs_mouse\fR(3X)
-manual page for details.
+part of XPG4, nor are they present in SVr4.
+See the \fBcurs_mouse\fR(3X) manual page for details.
 .PP
-The routine \fBmcprint\fR was not present in any previous curses
-implementation.  See the \fBcurs_print\fR(3X) manual page for details.
+The routine \fBmcprint\fR was not present in any previous curses implementation.
+See the \fBcurs_print\fR(3X) manual page for details.
 .PP
-The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.  See
-the \fBwresize\fR(3X) manual page for details.
+The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
+See the \fBwresize\fR(3X) manual page for details.
+.PP
+The WINDOW structure's internal details can be hidden from application
+programs.
+See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
+.RE
 .PP
 In historic curses versions, delays embedded in the capabilities \fBcr\fR,
 \fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
-bits in the UNIX tty driver.  In this implementation, all padding is done by
-NUL sends.  This method is slightly more expensive, but narrows the interface
+bits in the UNIX tty driver.
+In this implementation, all padding is done by sending NUL bytes.
+This method is slightly more expensive, but narrows the interface
 to the UNIX kernel significantly and increases the package's portability
 correspondingly.
 .SH NOTES
@@ -1013,8 +1128,8 @@
 \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
 .PP
 If standard output from a \fBncurses\fR program is re-directed to something
-which is not a tty, screen updates will be directed to standard error.  This
-was an undocumented feature of AT&T System V Release 3 curses.
+which is not a tty, screen updates will be directed to standard error.
+This was an undocumented feature of AT&T System V Release 3 curses.
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
 Based on pcurses by Pavel Curtis.
diff -Naur ncurses-5.6.orig/man/panel.3x ncurses-5.6/man/panel.3x
--- ncurses-5.6.orig/man/panel.3x	2006-05-13 11:35:45.000000000 -0400
+++ ncurses-5.6/man/panel.3x	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: panel.3x,v 1.12 2006/05/13 15:35:45 tom Exp $
+.\" $Id: panel.3x,v 1.14 2007/05/12 20:45:20 tom Exp $
 .TH panel 3X ""
 .ds n 5
 .ds d @TERMINFO@
@@ -84,13 +84,13 @@
 high-level curses calls, and work anywhere terminfo curses does.
 .SH FUNCTIONS
 .TP
-\fBnew_panel(win)\fR
+.B new_panel(win)
 allocates  a  \fBPANEL\fR structure, associates it with
 \fBwin\fR, places the panel on the top of the stack  (causes  it
 to  be  displayed above any other panel) and returns a
 pointer to the new panel.
 .TP
-\fBvoid update_panels()\fR
+.B update_panels()
 refreshes the virtual screen to reflect the relations between the
 panels in the stack, but does not call doupdate() to refresh the
 physical screen.  Use this function and not wrefresh or wnoutrefresh.
@@ -98,52 +98,57 @@
 doupdate(), but doupdate() is the function responsible for updating
 the physical screen.
 .TP
-\fBdel_panel(pan)\fR
+.B del_panel(pan)
 removes the given panel from the  stack and deallocates the
 \fBPANEL\fR structure (but not its associated window).
 .TP
-\fBhide_panel(pan)\fR
+.B hide_panel(pan)
 removes the given panel from the panel stack and thus hides it from
 view. The \fBPANEL\fR structure is not lost, merely removed from the stack.
 .TP
-\fBshow_panel(pan)\fR
+.B panel_hidden(pan)
+returns TRUE if the panel is in the panel stack,
+FALSE if it is not.
+If the panel is a null pointer, return ERR.
+.TP
+.B show_panel(pan)
 makes a hidden panel visible by placing it on top of the panels in the
 panel stack. See COMPATIBILITY below.
 .TP
-\fBtop_panel(pan)\fR
+.B top_panel(pan)
 puts the given visible panel on top of all panels in the stack.  See
 COMPATIBILITY below.
 .TP
-\fBbottom_panel(pan)\fR
+.B bottom_panel(pan)
 puts panel at the bottom of all panels.
 .TP
-\fBmove_panel(pan,starty,startx)\fR
+.B move_panel(pan,starty,startx)
 moves the given panel window so that its upper-left corner is at
 \fBstarty\fR, \fBstartx\fR.  It does not change the position of the
 panel in the stack.  Be sure to use this function, not \fBmvwin()\fR,
 to move a panel window.
 .TP
-\fBreplace_panel(pan,window)\fR
+.B replace_panel(pan,window)
 replaces the current window of panel with \fBwindow\fR (useful, for
 example if you want to resize a panel; if you're using \fBncurses\fR,
 you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
 It does not change the position of the panel in the stack.
 .TP
-\fBpanel_above(pan)\fR
+.B panel_above(pan)
 returns a pointer to the panel above pan.  If the panel argument is
 \fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
 .TP
-\fBpanel_below(pan)\fR
+.B panel_below(pan)
 returns a pointer to the panel just below pan.  If the panel argument
 is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
 .TP
-\fBset_panel_userptr(pan,ptr)\fR
+.B set_panel_userptr(pan,ptr)
 sets the panel's user pointer.
 .TP
-\fBpanel_userptr(pan)\fR
+.B panel_userptr(pan)
 returns the user pointer for a given panel.
 .TP
-\fBpanel_window(pan)\fR
+.B panel_window(pan)
 returns a pointer to the window of the given panel.
 .SH DIAGNOSTICS
 Each routine that returns a pointer returns \fBNULL\fR if an error
diff -Naur ncurses-5.6.orig/man/term.5 ncurses-5.6/man/term.5
--- ncurses-5.6.orig/man/term.5	2006-12-02 20:08:16.000000000 -0500
+++ ncurses-5.6/man/term.5	2008-06-18 06:49:44.000000000 -0400
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.5,v 1.17 2006/12/03 01:08:16 tom Exp $
-.TH TERM 5
+.\" $Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp $
+.TH term 5
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -74,7 +74,7 @@
 or sign extension are made.
 .PP
 The compiled file is created with the
-.I tic
+.B @TIC@
 program, and read by the routine
 .IR setupterm .
 The file is divided into six parts:
diff -Naur ncurses-5.6.orig/man/term.7 ncurses-5.6/man/term.7
--- ncurses-5.6.orig/man/term.7	2006-02-25 16:47:06.000000000 -0500
+++ ncurses-5.6/man/term.7	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.7,v 1.15 2006/02/25 21:47:06 tom Exp $
-.TH TERM 7
+.\" $Id: term.7,v 1.18 2007/06/02 20:40:07 tom Exp $
+.TH term 7
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -66,14 +66,14 @@
 Terminal type descriptions are stored as files of capability data underneath
 \*d.  To browse a list of all terminal names recognized by the system, do
 .sp
-	toe | more
+	@TOE@ | more
 .sp
 from your shell.  These capability files are in a binary format optimized for
 retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
-to examine an entry, you must use the \fBinfocmp\fR(1) command.  Invoke it as
-follows:
+to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
+Invoke it as follows:
 .sp
-	infocmp \fIentry-name\fR
+	@INFOCMP@ \fIentry-name\fR
 .sp
 where \fIentry-name\fR is the name of the type you wish to examine (and the
 name of its capability file the subdirectory of \*d named for its first
@@ -119,7 +119,7 @@
 multi-platform environment!  If a model number follows, it should indicate
 either the OS release level or the console driver release level.
 .PP
-The root name for a terminal emulator (assuming it doesn't fit one of the
+The root name for a terminal emulator (assuming it does not fit one of the
 standard ANSI or vt100 types) should be the program name or a readily
 recognizable abbreviation of it (i.e. \fBversaterm\fR, \fBctrm\fR).
 .PP
diff -Naur ncurses-5.6.orig/man/terminfo.head ncurses-5.6/man/terminfo.head
--- ncurses-5.6.orig/man/terminfo.head	2006-05-13 11:35:45.000000000 -0400
+++ ncurses-5.6/man/terminfo.head	2008-06-18 06:49:44.000000000 -0400
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.head,v 1.13 2006/05/13 15:35:45 tom Exp $
-.TH TERMINFO 5 "" "" "File Formats"
+.\" $Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp $
+.TH terminfo 5 "" "" "File Formats"
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -51,7 +51,7 @@
 Entries in
 .I terminfo
 consist of a sequence of `,' separated fields (embedded commas may be
-escaped with a backslash or notated as \e054).
+escaped with a backslash or notated as \\054).
 White space after the `,' separator is ignored.
 The first entry for each terminal gives the names which are known for the
 terminal, separated by `|' characters.
@@ -62,14 +62,14 @@
 the last name may well contain upper case and blanks for readability.
 .PP
 Lines beginning with a `#' in the first column are treated as comments.
-While comment lines are legal at any point, the output of \fIcaptoinfo\fP
-and \fIinfotocap\fP (aliases for \fItic\fP)
+While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
+and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
 will move comments so they occur only between entries.
 .PP
 Newlines and leading tabs may be used for formatting entries for readability.
 These are removed from parsed entries.
-The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions:
-the result can be read by \fItic\fP.
+The \fB@INFOCMP@\ -f\fP option relies on this to format if-then-else expressions:
+the result can be read by \fB@TIC@\fP.
 .PP
 Terminal names (except for the last, verbose entry) should
 be chosen using the following conventions.
diff -Naur ncurses-5.6.orig/man/terminfo.tail ncurses-5.6/man/terminfo.tail
--- ncurses-5.6.orig/man/terminfo.tail	2006-04-01 17:47:01.000000000 -0500
+++ ncurses-5.6/man/terminfo.tail	2008-06-18 06:49:47.000000000 -0400
@@ -1,11 +1,11 @@
-.\" $Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp $
+.\" $Id: terminfo.tail,v 1.49 2008/02/16 20:57:43 tom Exp $
 .\" Beginning of terminfo.tail file
 .\" This file is part of ncurses.
 .\" See "terminfo.head" for copyright.
 .ps +1
-..
+.
 .SS A Sample Entry
-..
+.
 The following entry, describing an ANSI-standard terminal, is representative
 of what a \fBterminfo\fR entry for a modern terminal typically looks like.
 .PP
@@ -297,7 +297,7 @@
 Cursor addressing and other strings requiring parameters
 in the terminal are described by a
 parameterized string capability, with
-.IR printf (3S)
+.IR printf (3)
 like escapes \fB%x\fR in it.
 For example, to address the cursor, the
 .B cup
@@ -325,7 +325,9 @@
 outputs `%'
 .TP
 %\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
-as in \fBprintf\fP, flags are [-+#] and space
+as in \fBprintf\fP, flags are [-+#] and space.
+Use a `:' to allow the next character to be a `-' flag,
+avoiding interpreting "%-" as an operator.
 .TP
 %c
 print pop() like %c in \fBprintf\fP
@@ -395,7 +397,7 @@
 .IP
 where c\di\u are conditions, b\di\u are bodies.
 .IP
-Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see
+Use the \fB-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
 the structure of if-the-else's.
 Some strings, e.g., \fBsgr\fP can be very complicated when written
 on one line.
@@ -993,7 +995,7 @@
 They are normally sent to the terminal, by the
 .I init
 option of the
-.IR tput
+.IR @TPUT@
 program, each time the user logs in.
 They will be printed in the following order:
 .RS
@@ -1578,7 +1580,7 @@
 *
 and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
 the whole entry into the buffer, no matter what its length, to see
-if it's the entry it wants,
+if it is the entry it wants,
 .TP 5
 *
 and \fBtgetent()\fP is searching for a terminal type that either is the
@@ -1599,19 +1601,19 @@
 .PP
 The "after tc expansion" length will have a similar effect to the
 above, but only for people who actually set TERM to that terminal
-type, since \fBtgetent()\fP only does "tc" expansion once it's found the
+type, since \fBtgetent()\fP only does "tc" expansion once it is found the
 terminal type it was looking for, not while searching.
 .PP
 In summary, a termcap entry that is longer than 1023 bytes can cause,
 on various combinations of termcap libraries and applications, a core
 dump, warnings, or incorrect operation.
-If it's too long even before
+If it is too long even before
 "tc" expansion, it will have this effect even for users of some other
 terminal types and users whose TERM variable does not have a termcap
 entry.
 .PP
 When in -C (translate to termcap) mode, the \fBncurses\fR implementation of
-\fBtic\fR(1) issues warning messages when the pre-tc length of a termcap
+\fB@TIC@\fR(1M) issues warning messages when the pre-tc length of a termcap
 translation is too long.
 The -c (check) option also checks resolved (after tc
 expansion) lengths.
@@ -1688,7 +1690,7 @@
 \fB@TIC@\fR(1M),
 \fB@INFOCMP@\fR(1M),
 \fBcurses\fR(3X),
-\fBprintf\fR(3S),
+\fBprintf\fR(3),
 \fBterm\fR(\*n).
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
diff -Naur ncurses-5.6.orig/man/tic.1m ncurses-5.6/man/tic.1m
--- ncurses-5.6.orig/man/tic.1m	2006-05-13 11:14:01.000000000 -0400
+++ ncurses-5.6/man/tic.1m	2008-06-18 06:49:44.000000000 -0400
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tic.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
-.TH tic 1M ""
+.\" $Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp $
+.TH @TIC@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -92,7 +92,7 @@
 .TP
 \fB-C\fR
 Force source translation to termcap format.  Note: this differs from the \fB-C\fR
-option of \fIinfocmp\fR(1M) in that it does not merely translate capability
+option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability
 names, but also translates terminfo strings to termcap format.  Capabilities
 that are not translatable are left in the entry under their terminfo names
 but commented out with two preceding dots.
diff -Naur ncurses-5.6.orig/man/toe.1m ncurses-5.6/man/toe.1m
--- ncurses-5.6.orig/man/toe.1m	2006-05-13 11:14:01.000000000 -0400
+++ ncurses-5.6/man/toe.1m	2008-06-18 06:49:45.000000000 -0400
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: toe.1m,v 1.18 2006/05/13 15:14:01 tom Exp $
-.TH toe 1M ""
+.\" $Id: toe.1m,v 1.21 2008/01/05 20:57:16 tom Exp $
+.TH @TOE@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -37,10 +37,14 @@
 .br
 .SH DESCRIPTION
 .PP
-With no options, \fBtoe\fR lists all available terminal types by primary name
-with descriptions.  File arguments specify the directories to be scanned; if no
-such arguments are given, your default terminfo directory is scanned.  If you
-also specify the \fB-h\fR option, a directory header will be issued as each
+With no options,
+\fBtoe\fR lists all available terminal types by primary name
+with descriptions.
+File arguments specify the directories to be scanned; if no
+such arguments are given,
+your default terminfo directory is scanned.
+If you also specify the \fB-h\fR option,
+a directory header will be issued as each
 directory is entered.
 .PP
 There are other options intended for use by terminfo file maintainers:
@@ -50,16 +54,25 @@
 rather than only the first one that it finds.
 .TP
 \fB-u\fR \fIfile\fR
-says to issue a report on dependencies in the given file. This report condenses
-the `use' relation: each line consists of the primary name of a terminal that
-has use capabilities, followed by a colon, followed by the
+says to write a report to the standard output,
+listing dependencies in the given terminfo/termcap source file.
+The report condenses the `use' relation:
+each line consists of the primary name of a terminal that
+has use capabilities,
+followed by a colon,
+followed by the
 whitespace-separated primary names of all terminals which occur in those use
-capabilities, followed by a newline
+capabilities,
+followed by a newline
 .TP
 \fB-U\fR \fIfile\fR
-says to issue a report on reverse dependencies in the given file. This report
-reverses the `use' relation: each line consists of the primary name of a
-terminal that occurs in use capabilities, followed by a colon, followed by the
+says to write a report to the standard output,
+listing reverse dependencies in the given terminfo/termcap source file.
+The report reverses the `use' relation:
+each line consists of the primary name of a
+terminal that occurs in use capabilities,
+followed by a colon,
+followed by the
 whitespace-separated primary names of all terminals which depend on it,
 followed by a newline.
 .TP
@@ -67,10 +80,11 @@
 specifies that (verbose) output be written to standard error,
 showing \fBtoe\fR's progress.
 The optional parameter \fIn\fR is a number from 1 to 10,
-interpreted as for \fBtic\fR(1).
+interpreted as for \fB@TIC@\fR(1M).
 .TP
 \fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
+reports the version of ncurses which was used in this program,
+and exits.
 .SH FILES
 .TP 5
 \fB\*d/?/*\fR
diff -Naur ncurses-5.6.orig/man/tput.1 ncurses-5.6/man/tput.1
--- ncurses-5.6.orig/man/tput.1	2006-05-13 11:14:01.000000000 -0400
+++ ncurses-5.6/man/tput.1	2008-06-18 06:49:44.000000000 -0400
@@ -27,27 +27,27 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tput.1,v 1.25 2006/05/13 15:14:01 tom Exp $
-.TH tput 1 ""
+.\" $Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp $
+.TH @TPUT@ 1 ""
 .ds d @TERMINFO@
 .ds n 1
 .SH NAME
-\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
+\fB@TPUT@\fR, \fBreset\fR - initialize a terminal or query terminfo database
 .SH SYNOPSIS
-\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
+\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
 .br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
+\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBinit\fR
 .br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
+\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBreset\fR
 .br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
+\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
 .br
-\fBtput -S\fR  \fB<<\fR
+\fB@TPUT@ -S\fR  \fB<<\fR
 .br
-\fBtput -V\fR
+\fB@TPUT@ -V\fR
 .br
 .SH DESCRIPTION
-The \fBtput\fR utility uses the \fBterminfo\fR database to make the
+The \fB@TPUT@\fR utility uses the \fBterminfo\fR database to make the
 values of terminal-dependent capabilities and information available to
 the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
 return the long name of the requested terminal type.
@@ -55,15 +55,15 @@
 .RS
 .TP 5
 string
-\fBtput\fR writes the string to the standard output.
+\fB@TPUT@\fR writes the string to the standard output.
 No trailing newline is supplied.
 .TP
 integer
-\fBtput\fR writes the decimal value to the standard output,
+\fB@TPUT@\fR writes the decimal value to the standard output,
 with a trailing newline.
 .TP
 boolean
-\fBtput\fR simply sets the exit code
+\fB@TPUT@\fR simply sets the exit code
 (\fB0\fR for TRUE if the terminal has the capability,
 \fB1\fR for FALSE if it does not),
 and writes nothing to the standard output.
@@ -74,7 +74,7 @@
 (e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
 (See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
 For a complete list of capabilities
-and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
+and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
 .TP
 \fB-T\fR\fItype\fR
 indicates the \fItype\fR of terminal.  Normally this option is
@@ -94,21 +94,21 @@
 .IP
 Most parameters are numbers.
 Only a few terminfo capabilities require string parameters;
-\fBtput\fR uses a table to decide which to pass as strings.
-Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
+\fB@TPUT@\fR uses a table to decide which to pass as strings.
+Normally \fB@TPUT@\fR uses \fBtparm\fR (3X) to perform the substitution.
 If no parameters are given for the capability,
-\fBtput\fR writes the string without performing the substitution.
+\fB@TPUT@\fR writes the string without performing the substitution.
 .TP
 \fB-S\fR
-allows more than one capability per invocation of \fBtput\fR.  The
-capabilities must be passed to \fBtput\fR from the standard input
+allows more than one capability per invocation of \fB@TPUT@\fR.  The
+capabilities must be passed to \fB@TPUT@\fR from the standard input
 instead of from the command line (see example).
 Only one \fIcapname\fR is allowed per line.
 The \fB-S\fR option changes the
 meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
 EXIT CODES section).
 .IP
-Again, \fBtput\fR uses a table and the presence of parameters in its input
+Again, \fB@TPUT@\fR uses a table and the presence of parameters in its input
 to decide whether to use \fBtparm\fR (3X),
 and how to interpret the parameters.
 .TP
@@ -157,58 +157,58 @@
 name in the first line of the terminal's description in the
 \fBterminfo\fR database [see \fBterm\fR(5)].
 .PP
-If \fBtput\fR is invoked by a link named \fBreset\fR, this has the
-same effect as \fBtput reset\fR.
+If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
+same effect as \fB@TPUT@ reset\fR.
 See \fBtset\fR for comparison, which has similar behavior.
 .SH EXAMPLES
 .TP 5
-\fBtput init\fR
+\fB@TPUT@ init\fR
 Initialize the terminal according to the type of
 terminal in the environmental variable \fBTERM\fR.  This
 command should be included in everyone's .profile after
 the environmental variable \fBTERM\fR has been exported, as
 illustrated on the \fBprofile\fR(5) manual page.
 .TP 5
-\fBtput -T5620 reset\fR
+\fB@TPUT@ -T5620 reset\fR
 Reset an AT&T 5620 terminal, overriding the type of
 terminal in the environmental variable \fBTERM\fR.
 .TP 5
-\fBtput cup 0 0\fR
+\fB@TPUT@ cup 0 0\fR
 Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
 (the upper left corner of the screen, usually known as the "home"
 cursor position).
 .TP 5
-\fBtput clear\fR
+\fB@TPUT@ clear\fR
 Echo the clear-screen sequence for the current terminal.
 .TP 5
-\fBtput cols\fR
+\fB@TPUT@ cols\fR
 Print the number of columns for the current terminal.
 .TP 5
-\fBtput -T450 cols\fR
+\fB@TPUT@ -T450 cols\fR
 Print the number of columns for the 450 terminal.
 .TP 5
-\fBbold=`tput smso` offbold=`tput rmso`\fR
+\fBbold=`@TPUT@ smso` offbold=`@TPUT@ rmso`\fR
 Set the shell variables \fBbold\fR, to begin stand-out mode
 sequence, and \fBoffbold\fR, to end standout mode sequence,
 for the current terminal.  This might be followed by a
 prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
 .TP 5
-\fBtput hc\fR
+\fB@TPUT@ hc\fR
 Set exit code to indicate if the current terminal is a hard copy terminal.
 .TP 5
-\fBtput cup 23 4\fR
+\fB@TPUT@ cup 23 4\fR
 Send the sequence to move the cursor to row 23, column 4.
 .TP 5
-\fBtput cup\fR
+\fB@TPUT@ cup\fR
 Send the terminfo string for cursor-movement, with no parameters substituted.
 .TP 5
-\fBtput longname\fR
+\fB@TPUT@ longname\fR
 Print the long name from the \fBterminfo\fR database for the
 type of terminal specified in the environmental
 variable \fBTERM\fR.
 .PP
 .RS 5
-\fBtput -S <<!\fR
+\fB@TPUT@ -S <<!\fR
 .br
 \fB> clear\fR
 .br
@@ -220,7 +220,7 @@
 .RE
 .TP 5
 \&
-This example shows \fBtput\fR processing several capabilities in one invocation.
+This example shows \fB@TPUT@\fR processing several capabilities in one invocation.
 It clears the screen,
 moves the cursor to position 10, 10
 and turns on bold (extra bright) mode.
@@ -238,7 +238,7 @@
 section of \fBterminfo\fR(5)
 .SH EXIT CODES
 If the \fB-S\fR option is used,
-\fBtput\fR checks for errors from each line,
+\fB@TPUT@\fR checks for errors from each line,
 and if any errors are found, will set the exit code to 4 plus the
 number of lines with errors.
 If no errors are found, the exit code is \fB0\fR.
@@ -285,8 +285,8 @@
 =
 \fB0\fR	T{
 (\fIcapname\fR is a numeric variable that is not specified in the
-\fBterminfo\fR(\*n) database for this terminal type, e.g.
-\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
+\fBterminfo\fR(5) database for this terminal type, e.g.
+\fB@TPUT@ -T450 lines\fR and \fB@TPUT@ -T2621 xmc\fR)
 T}
 \fB1\fR	no error message is printed, see the \fBEXIT CODES\fR section.
 \fB2\fR	usage error
diff -Naur ncurses-5.6.orig/man/tset.1 ncurses-5.6/man/tset.1
--- ncurses-5.6.orig/man/tset.1	2006-07-29 07:34:07.000000000 -0400
+++ ncurses-5.6/man/tset.1	2008-06-18 06:49:44.000000000 -0400
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.18 2006/07/29 11:34:07 tom Exp $
+.\" $Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp $
 .TH tset 1 ""
 .SH NAME
 \fBtset\fR, \fBreset\fR - terminal initialization
@@ -272,7 +272,7 @@
 csh(1),
 sh(1),
 stty(1),
-setupterm(3X),
+curs_terminfo(3X),
 tty(4),
 terminfo(5),
 ttys(5),
diff -Naur ncurses-5.6.orig/menu/Makefile.in ncurses-5.6/menu/Makefile.in
--- ncurses-5.6.orig/menu/Makefile.in	2006-10-14 16:40:36.000000000 -0400
+++ ncurses-5.6/menu/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.43 2006/10/14 20:40:36 tom Exp $
+# $Id: Makefile.in,v 1.48 2007/04/28 14:56:11 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996-on
 #
 # Makefile for menu source code.
 #
@@ -91,7 +91,7 @@
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
 
-LINK		= $(LIBTOOL_LINK) $(CC)
+LINK		= $(LIBTOOL_LINK)
 LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 SHLIB_DIRS	= -L../lib
@@ -106,8 +106,6 @@
 
 RANLIB		= @LIB_PREP@
 
-IMPORT_LIB	= @IMPORT_LIB@
-SHARED_LIB	= @SHARED_LIB@
 LIBRARIES	= @LIBS_TO_MAKE@
 
 LINT		= @LINT@
@@ -128,7 +126,7 @@
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 # make copies to simplify include-paths while still keeping menu's include
 # file in this directory.
diff -Naur ncurses-5.6.orig/menu/headers ncurses-5.6/menu/headers
--- ncurses-5.6.orig/menu/headers	1998-02-11 07:13:49.000000000 -0500
+++ ncurses-5.6/menu/headers	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -30,3 +30,4 @@
 #
 $(srcdir)/eti.h
 $(srcdir)/menu.h
+# vile:makemode
diff -Naur ncurses-5.6.orig/menu/menu.h ncurses-5.6/menu/menu.h
--- ncurses-5.6.orig/menu/menu.h	2003-11-08 15:48:24.000000000 -0500
+++ ncurses-5.6/menu/menu.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: menu.h,v 1.18 2003/11/08 20:48:24 tom Exp $ */
+/* $Id: menu.h,v 1.19 2007/02/24 17:32:13 tom Exp $ */
 
 #ifndef ETI_MENU
 #define ETI_MENU
@@ -217,23 +217,23 @@
 extern NCURSES_EXPORT(int)	post_menu (MENU *);
 extern NCURSES_EXPORT(int)	scale_menu (const MENU *,int *,int *);
 extern NCURSES_EXPORT(int)	set_current_item (MENU *menu,ITEM *item);
-extern NCURSES_EXPORT(int)	set_item_init (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)	set_item_init (MENU *, Menu_Hook);
 extern NCURSES_EXPORT(int)	set_item_opts (ITEM *,Item_Options);
-extern NCURSES_EXPORT(int)	set_item_term (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)	set_item_term (MENU *, Menu_Hook);
 extern NCURSES_EXPORT(int)	set_item_userptr (ITEM *, void *);
 extern NCURSES_EXPORT(int)	set_item_value (ITEM *,bool);
 extern NCURSES_EXPORT(int)	set_menu_back (MENU *,chtype);
 extern NCURSES_EXPORT(int)	set_menu_fore (MENU *,chtype);
 extern NCURSES_EXPORT(int)	set_menu_format (MENU *,int,int);
 extern NCURSES_EXPORT(int)	set_menu_grey (MENU *,chtype);
-extern NCURSES_EXPORT(int)	set_menu_init (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)	set_menu_init (MENU *, Menu_Hook);
 extern NCURSES_EXPORT(int)	set_menu_items (MENU *,ITEM **);
 extern NCURSES_EXPORT(int)	set_menu_mark (MENU *, const char *);
 extern NCURSES_EXPORT(int)	set_menu_opts (MENU *,Menu_Options);
 extern NCURSES_EXPORT(int)	set_menu_pad (MENU *,int);
 extern NCURSES_EXPORT(int)	set_menu_pattern (MENU *,const char *);
 extern NCURSES_EXPORT(int)	set_menu_sub (MENU *,WINDOW *);
-extern NCURSES_EXPORT(int)	set_menu_term (MENU *,void(*)(MENU *));
+extern NCURSES_EXPORT(int)	set_menu_term (MENU *, Menu_Hook);
 extern NCURSES_EXPORT(int)	set_menu_userptr (MENU *,void *);
 extern NCURSES_EXPORT(int)	set_menu_win (MENU *,WINDOW *);
 extern NCURSES_EXPORT(int)	set_top_row (MENU *,int);
diff -Naur ncurses-5.6.orig/menu/modules ncurses-5.6/menu/modules
--- ncurses-5.6.orig/menu/modules	2004-12-25 17:06:33.000000000 -0500
+++ ncurses-5.6/menu/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.16 2004/12/25 22:06:33 tom Exp $
+# $Id: modules,v 1.17 2006/12/24 00:52:39 tom Exp $
 ##############################################################################
-# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
+# Copyright (c) 1998-2004,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"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey	1996-on
 #
 
 @ base
@@ -59,3 +59,5 @@
 m_trace		lib		$(srcdir)	$(MENU_PRIV_H)
 m_userptr	lib		$(srcdir)	$(MENU_PRIV_H)
 m_win		lib		$(srcdir)	$(MENU_PRIV_H)
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/misc/Makefile.in ncurses-5.6/misc/Makefile.in
--- ncurses-5.6.orig/misc/Makefile.in	2006-10-21 09:28:03.000000000 -0400
+++ ncurses-5.6/misc/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.40 2006/10/21 13:28:03 tom Exp $
+# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -76,7 +76,7 @@
 
 sources :
 
-install : install.data install.scripts
+install : install.data install.libs
 
 install.data :	terminfo.tmp \
 		$(DESTDIR)$(libdir) \
@@ -103,7 +103,7 @@
 
 NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
 
-install.scripts :	ncurses-config
+install.libs : $(DESTDIR)$(bindir) ncurses-config
 	$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
 
 terminfo.tmp : run_tic.sed $(source)
@@ -115,19 +115,20 @@
 	ticdir=${ticdir} \
 	$(SHELL) $(srcdir)/gen_edit.sh >$@
 
+$(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(datadir) \
 $(DESTDIR)$(tabsetdir) :
-	$(SHELL) $(top_srcdir)/mkinstalldirs $@
+	$(SHELL) $(top_srcdir)/mkdirs.sh $@
 
-uninstall : uninstall.data uninstall.scripts
+uninstall : uninstall.data uninstall.libs
 
 uninstall.data :
 	-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
 	-test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
 	-test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
 
-uninstall.scripts :
+uninstall.libs :
 	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
 
 tags :
diff -Naur ncurses-5.6.orig/misc/ncurses-config.in ncurses-5.6/misc/ncurses-config.in
--- ncurses-5.6.orig/misc/ncurses-config.in	2006-10-28 16:22:52.000000000 -0400
+++ ncurses-5.6/misc/ncurses-config.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
 #!@SHELL@
-# $Id: ncurses-config.in,v 1.11 2006/10/28 20:22:52 tom Exp $
+# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
 ##############################################################################
-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
+# Copyright (c) 2006,2007 Free 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"), #
@@ -40,6 +40,11 @@
 
 THIS="ncurses@DFT_ARG_SUFFIX@"
 
+LANG=C;		export LANG
+LANGUAGE=C;	export LANGUAGE
+LC_ALL=C;	export LC_ALL
+LC_CTYPE=C;	export LC_CTYPE
+
 test $# = 0 && exec @SHELL@ $0 --error
 
 while test $# -gt 0; do
diff -Naur ncurses-5.6.orig/misc/shlib ncurses-5.6/misc/shlib
--- ncurses-5.6.orig/misc/shlib	2005-06-25 18:41:17.000000000 -0400
+++ ncurses-5.6/misc/shlib	2008-06-18 06:49:44.000000000 -0400
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
-# $Id: shlib,v 1.10 2005/06/25 22:41:17 tom Exp $
+# $Id: shlib,v 1.11 2007/01/13 17:09:52 tom Exp $
 # Use this script as a wrapper when running executables linked to shared
 # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
 # the soname's path within the linked executable (such as IRIX), e.g,
@@ -81,6 +81,7 @@
 do
 	if test -d $p; then
 		q=`cd $p; pwd`
+		break
 	elif test -f configure && test ! -d ../$p ; then
 		break
 	fi
diff -Naur ncurses-5.6.orig/misc/terminfo.src ncurses-5.6/misc/terminfo.src
--- ncurses-5.6.orig/misc/terminfo.src	2006-10-07 13:52:03.000000000 -0400
+++ ncurses-5.6/misc/terminfo.src	2008-06-18 06:49:50.000000000 -0400
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #	bug-ncurses@gnu.org
 #
-#	$Revision: 1.303 $
-#	$Date: 2006/10/07 17:52:03 $
+#	$Revision: 1.328 $
+#	$Date: 2008/04/29 00:49:41 $
 #
 # The original header is preserved below for reference.  It is noted that there
 # is a "newer" version which differs in some cosmetic details (but actually
@@ -317,6 +317,16 @@
 	OTbs,
 	bel=^G, cr=^M, cud1=^J, ind=^J,
 
+# This is almost the same as "dumb", but with no prespecified width.
+# DEL and ^C are hardcoded to act as kill characters.
+# ^D acts as a line break (just like newline).
+# It also interprets
+#      \033];xxx\007 
+# for compatibility with xterm -TD
+9term|Plan9 terminal emulator for X,
+	am,
+	OTnl=^J, bel=^G, cud1=^J,
+
 #### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
 #
 # See the end-of-file comment for more on these.
@@ -2691,8 +2701,9 @@
 vt100-putty|Reset PuTTY to pure vt100,
 	rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
 	use=vt100,
+# palette is hardcoded...
 putty-256color|PuTTY 0.58 with xterm 256-colors,
-	use=xterm+256color, use=putty,
+	initc@, use=xterm+256color, use=putty,
 
 # One of the keyboard selections is "VT100+".
 # pterm (the X11 port) uses shifted F1-F10 as F11-F20
@@ -3006,20 +3017,17 @@
 	cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
 	rin=\E[%p1%dT, use=xterm-xf86-v43,
 
-# This is the most common alias for xterm-new.
 xterm-xfree86|xterm terminal emulator (XFree86),
-	use=xterm-new,
-#	use=xterm-old,
+	use=xterm-xf86-v44,
 
 # This version reflects the current xterm features.
 xterm-new|modern xterm terminal emulator,
 	npc,
 	indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
-	kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
-	kRIT=\E[1;2C, kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, kent=\EOM, khome=\EOH,
-	kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
-	kpp=\E[5~, kri=\E[1;2A, rin=\E[%p1%dT, use=xterm+pcfkeys,
+	kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
+	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
+	knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
 	use=xterm-basic,
 #
 # This fragment describes as much of XFree86 xterm's "pc-style" function
@@ -3038,7 +3046,16 @@
 # The meta key may also be used as a modifier in this scheme, adding another
 # bit to the parameter.
 xterm+pcfkeys|fragment for PC-style fkeys,
-	use=xterm+pcf2, use=xterm+pcc2,
+	use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
+	use=xterm+pce2,
+#
+xterm+noapp|fragment with cursor keys in normal mode,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
+	khome=\E[H,
+
+xterm+app|fragment with cursor keys in application mode,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
+	khome=\EOH,
 #
 # The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
 # and revised in patch #167 (2002/8/24).  Some other terminal emulators copied
@@ -3060,25 +3077,41 @@
 # modifyCursorKeys resource.  These fragments list the modified cursor-keys
 # that might apply to xterm+pcfkeys with different values of that resource.
 xterm+pcc3|fragment with modifyCursorKeys:3,
-	kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
-	kLFT5=\E[>1;5D, kLFT6=\E[>1;6D, kRIT5=\E[>1;5C,
-	kRIT6=\E[>1;6C, kUP=\E[>1;2A, kUP5=\E[>1;5A,
-	kUP6=\E[>1;6A,
+	kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
+	kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
+	kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
+	kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
+	kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
+	kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
+	kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
+	kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
+	kUP7=\E[>1;7A,
 
 xterm+pcc2|fragment with modifyCursorKeys:2,
-	kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D,
-	kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A,
-	kUP5=\E[1;5A, kUP6=\E[1;6A,
+	kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
+	kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
+	kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
+	kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
+	kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
+	kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
+	kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
 
 xterm+pcc1|fragment with modifyCursorKeys:1,
-	kDN=\E[2B, kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D,
-	kLFT6=\E[6D, kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A,
-	kUP5=\E[5A, kUP6=\E[6A,
+	kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
+	kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
+	kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
+	kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
+	kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
+	kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
 
 xterm+pcc0|fragment with modifyCursorKeys:0,
-	kDN=\EO2B, kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D,
-	kLFT6=\EO6D, kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A,
-	kUP5=\EO5A, kUP6=\EO6A,
+	kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
+	kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
+	kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
+	kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
+	kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
+	kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
+
 #
 # Here are corresponding fragments from xterm patch #216:
 #
@@ -3101,24 +3134,63 @@
 	kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
 	kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
 #
-xterm+pcf2|fragment with modifyFunctionKeys:0,
+xterm+pcf2|fragment with modifyFunctionKeys:2,
 	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[2P, kf14=\E[2Q, kf15=\E[2R, kf16=\E[2S,
+	kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
 	kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
 	kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
-	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[5P, kf26=\E[5Q,
-	kf27=\E[5R, kf28=\E[5S, kf29=\E[15;5~, kf3=\EOR,
+	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
+	kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
 	kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
 	kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
-	kf36=\E[24;5~, kf37=\E[6P, kf38=\E[6Q, kf39=\E[6R,
-	kf4=\EOS, kf40=\E[6S, kf41=\E[15;6~, kf42=\E[17;6~,
+	kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
+	kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
 	kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
-	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\E[3P,
-	kf5=\E[15~, kf50=\E[3Q, kf51=\E[3R, kf52=\E[3S,
-	kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
-	kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
-	kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\E[4P,
-	kf62=\E[4Q, kf63=\E[4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
+	kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
+	kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
+	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
+	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
+	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~,
+#
+# Chunks from xterm #230:
+xterm+pce2|fragment with modifyCursorKeys:2,
+	kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+	kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
+	kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
+	kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
+	kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
+	kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
+	kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
+	kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
+	kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
+	kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
+	kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
+	use=xterm+edit,
+
+xterm+edit|fragment for 6-key editing-keypad,
+	kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	use=xterm+pc+edit,
+
+xterm+pc+edit|fragment for pc-style editing keypad,
+	kend=\E[4~, khome=\E[1~,
+
+xterm+vt+edit|fragment for vt220-style editing keypad,
+	kfnd=\E[1~, kslt=\E[4~,
+
+#
+# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
+# Alternatively, the same scheme with old-style function keys as in xterm-r6
+# is shown here (because that is used in mrxvt and mlterm):
+xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
+	kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
+	kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
+	kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
+	kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
+	kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
+	kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
+	kf63=\E[13;4~, use=xterm+pcf2,
 #
 # This chunk is used for building the VT220/Sun/PC keyboard variants.
 xterm-basic|modern xterm terminal emulator - common,
@@ -3135,8 +3207,8 @@
 	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
 	ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
 	ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
-	kdch1=\E[3~, kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
-	meml=\El, memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+	kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+	memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
 	rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
 	rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
 	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
@@ -3157,6 +3229,8 @@
 xterm-16color|xterm with 16 colors like aixterm,
 	use=ibm+16color, use=xterm-new,
 
+# This is a compile-time feature of XFree86 xterm beginning with
+# patch #111 (1999/7/10) -TD
 xterm+256color|xterm 256-color feature,
 	ccc,
 	colors#256, pairs#32767,
@@ -3165,6 +3239,18 @@
 	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
 	setb@, setf@,
 
+# This is a compile-time feature of XFree86 xterm beginning with
+# patch #115 (1999/9/18) -TD
+#
+# Note that the escape sequences used are the same as for 256-colors - xterm
+# has a different table of default color resource values.  If built for
+# 256-colors, it can still handle an 88-color palette by using the initc
+# capability.
+#
+# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
+# which support the xterm+256color feature support the associated initc
+# capability.  So it is cancelled in the entries which use this and/or the
+# xterm+256color block.
 xterm+88color|xterm 88-color feature,
 	colors#88, pairs#7744, use=xterm+256color,
 
@@ -3268,7 +3354,8 @@
 	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
 	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	use=xterm-basic, use=vt220+keypad,
+	use=xterm+app, use=xterm+edit, use=xterm-basic,
+	use=vt220+keypad,
 
 xterm-vt52|xterm emulating dec vt52,
 	cols#80, it#8, lines#24,
@@ -3279,11 +3366,11 @@
 	kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
 
 xterm-noapp|xterm with cursor keys in normal mode,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rmcup@,
-	rmkx=\E>, smcup@, smkx=\E=, use=xterm,
+	rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
+	use=xterm,
 
 xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
-	lines#24, use=xterm,
+	lines#24, use=xterm-old,
 
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System),
@@ -3307,7 +3394,7 @@
 #
 # xterm with bold instead of underline
 xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
-	smso=\E[7m, smul=\E[1m, use=xterm,
+	smso=\E[7m, smul=\E[1m, use=xterm-old,
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
@@ -3444,11 +3531,23 @@
 	rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
 	use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
 
+# GNOME Terminal 2.18.1 (2007 snapshot)
+#
+# For any "recent" version of gnome-terminal, it is futile to attempt to
+# support modifiers on cursor- and keypad keys because the program usually
+# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
+# of the keys (which more/less correspond to the termcap values), and will
+# interpret those according to the $TERM value, but others not in the
+# terminfo according to some constantly changing set of hacker guidelines -TD
+gnome-2007|GNOME Terminal snapshot 2.18.1,
+	use=xterm+pcc2, use=gnome-fc5,
+
 gnome|GNOME Terminal,
-	use=gnome-fc5,
+	use=gnome-2007,
 
+# palette is hardcoded...
 gnome-256color|GNOME Terminal with xterm 256-colors,
-	use=xterm+256color, use=gnome,
+	initc@, use=xterm+256color, use=gnome,
 
 # XFCE Terminal 0.2.5.4beta2
 #
@@ -3551,14 +3650,29 @@
 konsole|KDE console window,
 	use=konsole-xf4x,
 
-# Based on mlterm 2.9.2's mlterm.ti, with corrections/additions from reading
-# the source code and running tack -TD
+# palette is hardcoded...
+konsole-256color|KDE console window with xterm 256-colors,
+	initc@, use=xterm+256color, use=konsole,
+
+# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
 #
-# This is nominally a vt102 emulator, with features borrowed from rxvt and
+# It is nominally a vt102 emulator, with features borrowed from rxvt and
 # xterm.
 #
-# There are some problems with vttest:
-#	test of character sets leaves it in line-drawing mode.
+# The function keys are numbered based on shift/control/alt modifiers, except
+# that the control-modifier itself is used to spawn a new copy of mlterm (the
+# "-P" option).  So control/F1 to control/F12 may not be usable, depending on
+# how it is configured.
+#
+#				kf1 to kf12	\E[11~   to \E[24~
+#	shift			kf1 to kf12	\E[11;2~ to \E[24;2~
+#	alt			kf1 to kf12	\E[11;3~ to \E[24;3~
+#	shift/alt		kf1 to kf12	\E[11;4~ to \E[24;4~
+#	control			kf1 to kf12	\E[11;5~ to \E[24;5~ (maybe)
+#	control/shift		kf1 to kf12	\E[11;6~ to \E[24;6~
+#	control/alt		kf1 to kf12	\E[11;7~ to \E[24;7~
+#	control/shit/alt	kf1 to kf12	\E[11;8~ to \E[24;8~
+#
 mlterm|multi lingual terminal emulator,
 	am, eslok, km, mc5i, mir, msgr, npc, xenl,
 	colors#8, cols#80, it#8, lines#24, pairs#64,
@@ -3574,21 +3688,29 @@
 	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
 	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
 	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
-	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
-	kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, mc0=\E[i,
-	nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l,
-	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
-	rmso=\E[27m, rmul=\E[24m,
+	kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, khome=\EOH,
+	kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~,
+	mc0=\E[i, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+	rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
+	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
 	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
 	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7\E[?47h,
+	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
 	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
+	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
+	vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
+
+# The insert/delete/home/end keys do not respond to modifiers because mlterm
+# looks in its termcap to decide which string to send.  If it used terminfo
+# (when available), it could use the extended names introduced for xterm.
+mlterm+pcfkeys|fragment for PC-style fkeys,
+	kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
+	kDN=\EO1;2B, kDN5=\EO1;5B, kDN6=\EO1;6B, kIC5=\E[2;5~,
+	kIC6=\E[2;6~, kLFT5=\EO1;5D, kLFT6=\EO1;6D,
+	kNXT5=\E[6;5~, kNXT6=\E[6;6~, kPRV5=\E[5;5~,
+	kPRV6=\E[5;6~, kRIT5=\EO1;5C, kRIT6=\EO1;6C, kUP=\EO1;2A,
+	kUP5=\EO1;5A, kUP6=\EO1;6A,
 
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
@@ -3607,7 +3729,7 @@
 #
 # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
 # Since rxvt is not really compatible with xterm, it should be configured as
-# "rxvt" (monochrome) and "rxvt-color".
+# "rxvt" or "rxvt-color".
 #
 # removed dch/dch1 because they are inconsistent with bce/ech -TD
 # remove km as per tack test -TD
@@ -3677,6 +3799,7 @@
 #  F18              ESC [ 32 ~   ESC [ 32 $   ESC [ 32 ^   ESC [ 32 @
 #  F19              ESC [ 33 ~   ESC [ 33 $   ESC [ 33 ^   ESC [ 33 @
 #  F20              ESC [ 34 ~   ESC [ 34 $   ESC [ 34 ^   ESC [ 34 @
+#
 #                                                          Application
 #  Up               ESC [ A      ESC [ a      ESC O a      ESC O A
 #  Down             ESC [ B      ESC [ b      ESC O b      ESC O B
@@ -3704,10 +3827,18 @@
 #  XK_KP_8          8                                      ESC O x
 #  XK_KP_9          9                                      ESC O y
 #
+# The source-code for rxvt actually defines mappings for F21-F35, using
+# "ESC [ 35 ~" to "ESC [  49 ~".  Keyboards with more than 12 function keys
+# are rare, so this entry uses the shift- and control-modifiers as in
+# xterm+pcfkeys to define keys past F12.
+#
+# kIC is normally not used, since rxvt performs a paste for that (shifted
+# insert), unless private mode 35 is set.
+#
 # kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
 # Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
 rxvt+pcfkeys|fragment for PC-style fkeys,
-	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E2$, kLFT=\E[d,
+	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
 	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
 	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
 	kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
@@ -3722,7 +3853,10 @@
 	kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
 	kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, kDN=\E[b, kDN5=\EOb, kLFT5=\EOd, kRIT5=\EOc,
+	kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
+	kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
+	kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
+	kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
 	kUP=\E[a, kUP5=\EOa,
 
 rxvt|rxvt terminal emulator (X Window System),
@@ -3747,6 +3881,13 @@
 rxvt-16color|xterm with 16 colors like aixterm,
 	ncv#32, use=ibm+16color, use=rxvt,
 
+# mrxvt 0.5.3
+#
+# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
+# makes its function-keys different from other flavors of rxvt -TD
+mrxvt|multitabbed rxvt,
+	use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
+
 # From: Michael Jennings <mej@valinux.com>
 #
 # Eterm 0.9.3
@@ -4218,13 +4359,20 @@
 #       if the terminal is wide (132 cols or more)).  If even this
 #       entry cannot be found, "vt100" is used as a substitute.
 #
+# Notwithstanding the manpage, screen uses its own notion of the termcap
+# and some keys from "screen.<term>" are ignored.  Here is an entry which
+# covers those (tested with screen 4.00.02) -TD
+screen+fkeys|function-keys according to screen,
+	kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
+	khome=\E[1~, kslt@,
+#
 # Here are a few customized entries which are useful -TD
 #
 # Notes:
 # (a)	screen does not support invis.
 # (b)	screen's implementation of bw is incorrect according to tack.
 # (c)	screen appears to hardcode the strings for khome/kend, making it
-#	necessary to override the "use=" clause's values.
+#	necessary to override the "use=" clause's values (screen+fkeys).
 # (d)	screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
 #	which is NOT the same as the terminfo screen.<term>.
 # (e)	when screen finds one of these customized entries, it sets $TERM to
@@ -4236,24 +4384,29 @@
 #	translation.  They are suppressed here to show what is tested by tack.
 screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
 	bce@, bw,
-	invis@, kIC@, kNXT@, kPRV@, kend=\E[4~, khome=\E[1~, meml@,
-	memu@,
+	invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
 	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-	use=xterm-new,
+	use=screen+fkeys, use=xterm-new,
 # xterm-r6 does not really support khome/kend unless it is propped up by
 # the translations resource.
 screen.xterm-r6|screen customized for X11R6 xterm,
-	bw, use=xterm-r6,
+	bw, use=screen+fkeys, use=xterm-r6,
 # Color applications running in screen and TeraTerm do not play well together
 # on Solaris because Sun's curses implementation gets confused.
 screen.teraterm|disable ncv in teraterm,
 	ncv#127,
 	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	use=screen,
+	use=screen+fkeys, use=screen,
+# Other terminals
+screen.rxvt|screen in rxvt,
+	bw,
+	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
+	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
 # fix the backspace key
 screen.linux|screen in linux console,
 	bw,
-	kbs=\177, kcbt@, use=screen,
+	kbs=\177, kcbt@, use=screen+fkeys, use=screen,
 
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
 	cols#132, use=screen,
@@ -15183,6 +15336,82 @@
 	sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
 	vpa=\013%p1%{64}%+%c,
 
+# Newbury Data Recording Limited (Newbury Data)
+#
+# Have been manufacturing and reselling  various peripherals for a long time
+# They don't make terminals anymore, but are still in business (in 2007).
+# Their e-mail address is at ndsales@newburydata.co.uk
+# and their post address is:
+#
+# Newbury Data Recording Ltd,
+# Premier Park, Road One,
+# Winsford, Cheshire, CW7 3PT
+#
+# Their technical support is still good, they sent me for free a printed copy
+# of the 9500 user manual and I got it just 1 week after I first contacted them
+# (in 2005)!
+
+# NDR 9500
+# Manufactured in the early/mid eighties, behaves almost the same as a
+# Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
+# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
+# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
+# 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
+# recognized:  if you type in "ESC !", the next (third) character is not
+# echoed, showing that the terminal was actually waiting for a parameter!
+ndr9500|nd9500|Newbury Data 9500,
+	am, bw, hs, mc5i, mir, msgr, ul, xon,
+	cols#80, lines#24, wsl#79,
+	acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
+	clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+	dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
+	flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+	ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
+	kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
+	kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+	ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+	kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
+	kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
+	kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+	kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
+	pfloc=\E|%{48}%p1%+%c2%p2\031,
+	pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
+	rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
+	sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
+	sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
+	tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
+
+ndr9500-nl|NDR 9500 with no status line,
+	hs@,
+	wsl@,
+	dsl@, fsl@, tsl@, use=ndr9500,
+
+ndr9500-25|NDR 9500 with 25th line enabled,
+	lines#25, use=ndr9500,
+
+ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
+	lines#25, use=ndr9500-nl,
+
+ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
+	msgr@,
+	xmc#1,
+	blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
+	sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
+	sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
+
+ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
+	lines#25, use=ndr9500-mc,
+
+ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
+	hs@,
+	wsl@,
+	dsl@, fsl@, tsl@, use=ndr9500-mc,
+
+ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
+	lines#25, use=ndr9500-mc-nl,
+
 #### Perkin-Elmer (Owl)
 #
 # These are official terminfo entries from within Perkin-Elmer.
@@ -18147,19 +18376,19 @@
 h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
 	OTbs, am, eslok, hs, mir, msgr,
 	cols#80, it#8, lines#24,
-	acsc=, bel=^G, clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	cvvis=\Ex4, dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH,
-	ht=^I, ind=^J, ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
-	kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
-	lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
-	smacs=\EF, smir=\E@, smso=\Ep,
-	tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
+	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
+	clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
+	dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
+	ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
+	kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
+	lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
+	smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
 h19-u|heathkit with underscore cursor,
 	cnorm@, cvvis@, use=h19-b,
 h19-g|h19g|heathkit w/block cursor,
-	cnorm=\Ex4, use=h19-b,
+	cnorm=\Ex4, cvvis@, use=h19-b,
 alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
 	lines#60,
 	dl1=\EM, il1=\EL, use=h19,
@@ -18285,14 +18514,15 @@
 z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
 	OTbs, OTpt, mir, msgr,
 	OTkn#10, cols#80, it#8, lines#24,
-	acsc=, clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>,
-	cuu1=\EA, cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>,
-	ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES,
-	kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
-	kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
-	smacs=\EF, smir=\E@, smso=\Ep,
+	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
+	clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
+	cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
+	home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
+	kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
+	kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
+	khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
+	smir=\E@, smso=\Ep,
 p19|h19-b with il1/dl1,
 	dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
 # From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
@@ -20696,6 +20926,99 @@
 #	* Back off the xterm entry to use r6 as a base.
 # 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
 #	* Added dec-vt220 at Adrian Garside's request.
+#
+#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
+#
+# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
+#	* Minor corrections to xterm entries.
+#	* Replaced EWAN telnet entry.
+#	* Dropped the reorder script generator.  It was a fossil.
+# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
+#	* Replaced minitel-2 entry.
+#	* Added MGR, ansi-nt.
+# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
+#	* Thorsten Lockert added termcap `bs' to a lot of types, working from
+#	  the 4.4BSD Lite2 file.
+#
+# 10.1.1 (Sat May  3 21:41:27 EDT 1997):
+#	* Use setaf/setab consistently with SVr4.
+#	* Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
+# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
+#	* update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
+#	* add xterm-16color, for XFree86 3.3
+# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
+#	* correct typo in emu
+#	* correct typo in vt102-w (Robert Wuest)
+#	* make new entry xterm-xf86-v33, restored xterm-xf86-v32.
+# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
+#	* remove ech capability from rxvt (it does the wrong thing)
+# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
+#	* remove spurious newlines from several entries (hp+color, wy50,
+#	  wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
+#	  gs6300)
+# 10.1.6 (Sat Jul  5 15:08:16 EDT 1997)
+#	* correct rmso capability of wy50-mc
+# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
+#	* add cbt to xterm-xf86-v32
+#	* disentangle some entries from 'xterm', preferring xterm-r6 in case
+#	  'xterm' is derived from xterm-xf86-v32, which implements ech and
+#	  other capabilities not in xterm-r6.
+#	* remove alternate character set from kterm entry.
+# 10.1.8 (Sat Aug  2 18:43:18 EDT 1997)
+#	* correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
+# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
+#	* add xterm-8bit entry.
+# 10.1.10 (Sat Oct  4 18:17:13 EDT 1997)
+#	* repair several places where early version of tic replaced \, with \\\,
+#	* make acsc entries canonical form (sorted, uniq).
+#	* modify acsc entries for linux, linux-koi8
+#	* new rxvt entry, from corrected copy of distribution in rxvt 2.21b
+#	* add color, mouse support to kterm.
+# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
+#	* correct wy120 smxon/tbc capabilities which were stuck together.
+# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
+#	* add entry for xterm-xf86-v39t
+# 10.1.13 (Sat Nov  8 13:43:33 EST 1997)
+#	* add u8,u9 to sun-il description
+# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
+#	* add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
+#	  version.
+#	* add hds200 description (Walter Skorski)
+#	* add EMX 0.9b descriptions
+#	* correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
+#	* rename xhpterm back to hpterm.
+# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
+#	* change initc in linux-c-nc to use 0..1000 range.
+# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
+#	* remove hpa/vpa from rxvt, which implements them incorrectly.
+#	* add sgr0 for rxvt.
+#	* remove bogus smacs/rmacs from EMX descriptions.
+# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
+#	* revised entry for att7300
+# 10.1.18 (Sat Jan  3 17:58:49 EST 1998)
+#	* use \0 rather than \200.
+#	* rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
+# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
+#	* change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
+#	* rename xterm-xf86-v39t to xterm-xf86-v40
+#	* remove bold/underline from sun console entries since they're not
+#	  implemented.
+# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
+#	* add beterm entry (Fred Fish)
+#	* add irix-color/xwsh entry.
+#	* turn ncv off for linux.
+# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
+#	* set ncv for FreeBSD console (treat colors with reverse specially).
+#	* remove sgr string from qnx based on report by Xiaodan Tang
+# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
+#	* remove spurious commas from descriptions
+#	* correct xterm-8bit to match XFree86 3.9Ad F1-F4.
+# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
+#	* add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
+#	  apparently based on cp-866).
+#
+#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
+#
 # 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
 #	* Replaced minitel-2 entry.
 #	* Added MGR, ansi-nt.
@@ -20748,6 +21071,8 @@
 #	* Incorporated att700 from the Boundless Technology FTP site.
 #	* Miscellaneous contact-address and Web-page updates.
 #
+#-(changelog-beginning-ncurses-4.2)---------------------------------------------
+#
 # 1998/5/9
 #	* add nxterm and xterm-color terminfo description (request by Cristian
 #	  Gafton <gafton@redhat.com>).
@@ -21309,6 +21634,51 @@
 #	* add several GNU Screen variations with 16- and 256-colors, and
 #	  status line (Alain Bench).
 #
+# 2007-03-03
+#	* add Newbury Data entries (Jean-Charles Billaud).
+#
+# 2007-06-10
+#	* corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
+#
+# 2007-07-14
+#	* restore section of pre-ncurses-4.2 changelog to fix attribution -TD
+#	* add konsole-256color entry -TD
+#
+# 2007-08-18
+#	* add 9term entry (request by Juhapekka Tolvanen) -TD
+#
+# 2007-10-13
+#	* correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
+#	* add shift-control- and control-modified keys for rxvt editing
+#	  keypad -TD
+#	* update mlterm entry to 2.9.3 -TD
+#	* add mlterm+pcfkeys -TD
+#
+# 2007-10-20
+#	* move kLFT, kRIT, kind and kri capabilities from xterm-new to
+#	  xterm+pcc0, etc., to make the corresponding building blocks reflect
+#	  xterm's capabilities -TD
+#	* add mrxvt entry -TD
+#	* add xterm+r6f2, use in mlterm and mrxvt entries -TD
+#
+# 2007-11-03
+#	* correct acsc strings for h19 and z100 (Benjamin Sittler)
+#
+# 2007-11-11
+#	* use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
+#	  xterm starting with patch #216 -TD
+#	* make legacy xterm entries such as xterm-24 inherit from xterm-old,
+#	  to match xterm #230 -TD
+#	* extend xterm+pccX entries to match xterm #230 -TD
+#	* add xterm+app, xterm+noapp, from xterm #230 -TD
+#	* add/use xterm+pce2 from xterm #230, in xterm+pcfkeys -TD
+#
+# 2008-04-19
+#	* add screen.rxvt -TD
+#
+# 2008-04-28
+#	* add screen+fkeys (prompted by Debian # 478094) -TD
+#
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
diff -Naur ncurses-5.6.orig/mk-1st.awk ncurses-5.6/mk-1st.awk
--- ncurses-5.6.orig/mk-1st.awk	2006-10-07 20:14:08.000000000 -0400
+++ ncurses-5.6/mk-1st.awk	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.68 2006/10/08 00:14:08 tom Exp $
+# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -37,9 +37,12 @@
 #	model		  (directory into which we compile, e.g., "obj")
 #	prefix		  (e.g., "lib", for Unix-style libraries)
 #	suffix		  (e.g., "_g.a", for debug libraries)
-#	subset		  ("none", "base", "base+ext_funcs" or "termlib")
+#	subset		  ("none", "base", "base+ext_funcs" or "termlib", etc.)
 #	ShlibVer	  ("rel", "abi" or "auto", to augment DoLinks variable)
 #	ShlibVerInfix ("yes" or "no", determines location of version #)
+#   TermlibRoot   ("tinfo" or other root for libterm.so)
+#   TermlibSuffix (".so" or other suffix for libterm.so)
+#	ReLink		  ("yes", or "no", flag to rebuild shared libs on install)
 #	DoLinks		  ("yes", "reverse" or "no", flag to add symbolic links)
 #	rmSoLocs	  ("yes" or "no", flag to add extra clean target)
 #	ldconfig	  (path for this tool, if used)
@@ -52,6 +55,64 @@
 #	Mixed-case variable names are ok.
 #	HP/UX requires shared libraries to have executable permissions.
 #
+function is_ticlib() {
+		return ( subset ~ /^ticlib$/ );
+	}
+function is_termlib() {
+		return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
+	}
+# see lib_name
+function lib_name_of(a_name) {
+		return sprintf("%s%s%s", prefix, a_name, suffix)
+	}
+# see imp_name
+function imp_name_of(a_name) {
+		if (ShlibVerInfix == "cygdll") {
+			result = sprintf("%s%s%s.a", prefix, a_name, suffix);
+		} else {
+			result = "";
+		}
+		return result;
+	}
+# see abi_name
+function abi_name_of(a_name) {
+		if (ShlibVerInfix == "cygdll") {
+			result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
+		} else if (ShlibVerInfix == "yes") {
+			result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
+		} else {
+			result = sprintf("%s.$(ABI_VERSION)", lib_name_of(a_name));
+		}
+		return result;
+	}
+# see rel_name
+function rel_name_of(a_name) {
+		if (ShlibVerInfix == "cygdll") {
+			result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
+		} else if (ShlibVerInfix == "yes") {
+			result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
+		} else {
+			result = sprintf("%s.$(REL_VERSION)", lib_name_of(a_name));
+		}
+		return result;
+	}
+# see end_name
+function end_name_of(a_name) {
+		if ( MODEL != "SHARED" ) {
+			result = lib_name_of(a_name);
+		} else if ( DoLinks == "reverse") {
+			result = lib_name_of(a_name);
+		} else {
+			if ( ShlibVer == "rel" ) {
+				result = rel_name_of(a_name);
+			} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
+				result = abi_name_of(a_name);
+			} else {
+				result = lib_name_of(a_name);
+			}
+		}
+		return result
+	}
 function symlink(src,dst) {
 		if ( src != dst ) {
 			printf "rm -f %s; ", dst
@@ -64,19 +125,19 @@
 function removelinks(directory) {
 		rmlink(directory, end_name);
 		if ( DoLinks == "reverse" ) {
-				if ( ShlibVer == "rel" ) {
-					rmlink(directory, abi_name);
-					rmlink(directory, rel_name);
-				} else if ( ShlibVer == "abi" ) {
-					rmlink(directory, abi_name);
-				}
+			if ( ShlibVer == "rel" ) {
+				rmlink(directory, abi_name);
+				rmlink(directory, rel_name);
+			} else if ( ShlibVer == "abi" ) {
+				rmlink(directory, abi_name);
+			}
 		} else {
-				if ( ShlibVer == "rel" ) {
-					rmlink(directory, abi_name);
-					rmlink(directory, lib_name);
-				} else if ( ShlibVer == "abi" ) {
-					rmlink(directory, lib_name);
-				}
+			if ( ShlibVer == "rel" ) {
+				rmlink(directory, abi_name);
+				rmlink(directory, lib_name);
+			} else if ( ShlibVer == "abi" ) {
+				rmlink(directory, lib_name);
+			}
 		}
 	}
 function make_shlib(objs, shlib_list) {
@@ -103,27 +164,53 @@
 			printf ")\n"
 		}
 	}
-function shlib_rule(directory) {
-		if ( ShlibVer == "cygdll" ) {
-				dst_libs = sprintf("%s/$(SHARED_LIB) %s/$(IMPORT_LIB)", directory, directory);
-		} else {
-				dst_libs = sprintf("%s/%s", directory, end_name);
+# termlib may be named explicitly via "--with-termlib=XXX", which overrides
+# any suffix.  Temporarily override "suffix" to account for this.
+function termlib_end_of() {
+	termlib_save_suffix = suffix;
+	suffix = TermlibSuffix;
+	termlib_temp_result = end_name_of(TermlibRoot);
+	suffix = termlib_save_suffix;
+	return termlib_temp_result;
+}
+function shlib_build(directory) {
+		dst_libs = sprintf("%s/%s", directory, end_name);
+		printf "%s : \\\n", dst_libs
+		printf "\t\t%s \\\n", directory
+		if (subset ~ /^base/ || subset == "ticlib" ) {
+			save_suffix = suffix
+			sub(/^[^.]\./,".",suffix)
+			if (directory != "../lib") {
+				printf "\t\t%s/%s \\\n", "../lib", termlib_end_of();
+			}
+			printf "\t\t%s/%s \\\n", directory, termlib_end_of();
+			suffix = save_suffix
 		}
-		printf "%s : %s $(%s_OBJS)\n", dst_libs, directory, OBJS
+		printf "\t\t$(%s_OBJS)\n", OBJS
 		printf "\t@echo linking $@\n"
-		print "\t-@rm -f %s", dst_libs;
-		if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
-				make_shlib(OBJS, "TINFO_LIST")
+		if ( is_ticlib() ) {
+			make_shlib(OBJS, "TICS_LIST")
+		} else if ( is_termlib() ) {
+			make_shlib(OBJS, "TINFO_LIST")
 		} else {
-				make_shlib(OBJS, "SHLIB_LIST")
+			make_shlib(OBJS, "SHLIB_LIST")
 		}
 		sharedlinks(directory)
 	}
+function shlib_install(directory) {
+		src_lib1 = sprintf("../lib/%s", end_name);
+		dst_lib1 = sprintf("%s/%s", directory, end_name);
+		printf "%s : \\\n", dst_lib1
+		printf "\t\t%s \\\n", directory
+		printf "\t\t%s\n", src_lib1
+		printf "\t@echo installing $@\n"
+		printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1;
+		sharedlinks(directory)
+	}
 function install_dll(directory,filename) {
 		src_name = sprintf("../lib/%s", filename);
 		dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename);
 		printf "\t@echo installing %s as %s\n", src_name, dst_name
-		printf "\t-@rm -f %s\n", dst_name
 		if ( directory == "$(bindir)" ) {
 			program = "$(INSTALL) -m 755";
 		} else {
@@ -153,6 +240,9 @@
 					printf "#  subset:        %s\n", subset 
 					printf "#  ShlibVer:      %s\n", ShlibVer 
 					printf "#  ShlibVerInfix: %s\n", ShlibVerInfix 
+					printf "#  TermlibRoot:   %s\n", TermlibRoot 
+					printf "#  TermlibSuffix: %s\n", TermlibSuffix 
+					printf "#  ReLink:        %s\n", ReLink 
 					printf "#  DoLinks:       %s\n", DoLinks 
 					printf "#  rmSoLocs:      %s\n", rmSoLocs 
 					printf "#  ldconfig:      %s\n", ldconfig 
@@ -163,7 +253,9 @@
 				}
 				using = 1
 			}
-			if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
+			if ( is_ticlib() ) {
+				OBJS  = MODEL "_P"
+			} else if ( is_termlib() ) {
 				OBJS  = MODEL "_T"
 			} else {
 				OBJS  = MODEL
@@ -205,33 +297,15 @@
 		if ( found == 1 )
 		{
 			print  ""
-			lib_name = sprintf("%s%s%s", prefix, name, suffix)
+			lib_name = lib_name_of(name);
 			if ( MODEL == "SHARED" )
 			{
-				if (ShlibVerInfix == "cygdll") {
-					abi_name = sprintf("%s%s$(ABI_VERSION)%s", "cyg", name, suffix);
-					rel_name = sprintf("%s%s$(REL_VERSION)%s", "cyg", name, suffix);
-					imp_name = sprintf("%s%s%s.a", prefix, name, suffix);
-				} else if (ShlibVerInfix == "yes") {
-					abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix);
-					rel_name = sprintf("%s%s.$(REL_VERSION)%s", prefix, name, suffix);
-				} else {
-					abi_name = sprintf("%s.$(ABI_VERSION)", lib_name);
-					rel_name = sprintf("%s.$(REL_VERSION)", lib_name);
-				}
-				if ( DoLinks == "reverse") {
-					end_name = lib_name;
-				} else {
-					if ( ShlibVer == "rel" ) {
-						end_name = rel_name;
-					} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
-						end_name = abi_name;
-					} else {
-						end_name = lib_name;
-					}
-				}
+				abi_name = abi_name_of(name);
+				rel_name = rel_name_of(name);
+				imp_name = imp_name_of(name);
+				end_name = end_name_of(name);
 
-				shlib_rule("../lib")
+				shlib_build("../lib")
 
 				print  ""
 				print  "install \\"
@@ -249,7 +323,11 @@
 					lib_dir = "$(DESTDIR)$(libdir)";
 					printf "install.%s :: %s/%s\n", name, lib_dir, end_name
 					print ""
-					shlib_rule(lib_dir)
+					if ( ReLink == "yes" ) {
+						shlib_build(lib_dir)
+					} else {
+						shlib_install(lib_dir)
+					}
 				}
 
 				if ( overwrite == "yes" && name == "ncurses" )
@@ -393,3 +471,4 @@
 			}
 		}
 	}
+# vile:ts=4 sw=4
diff -Naur ncurses-5.6.orig/mk-hdr.awk ncurses-5.6/mk-hdr.awk
--- ncurses-5.6.orig/mk-hdr.awk	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/mk-hdr.awk	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,107 @@
+# $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
+##############################################################################
+# Copyright (c) 2007 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas E. Dickey	2007
+#
+# Generate install/uninstall rules for header files
+# Variables:
+#	subset	  ("none", "base", "base+ext_funcs" or "termlib", etc.)
+#	compat	  ("yes" or "no", flag to add link to curses.h
+#
+function basename(path) {
+	sub(/^.*\//,"",path)
+	return path;
+}
+BEGIN	{
+		found = 0
+		using = 1
+		count = 0
+	}
+	/^@/ {
+		using = 0
+		if (subset == "none") {
+			using = 1
+		} else if (index(subset,$2) > 0) {
+			using = 1
+		} else {
+			using = 0
+		}
+	}
+	/^[@#]/ {
+		next
+	}
+	{
+		if (using && NF != 0) {
+			if (found == 0) {
+				print  ""
+				print  "# generated by mk-hdr.awk"
+				printf "#  subset:     %s\n", subset 
+				printf "#  compat:     %s\n", compat 
+				print  ""
+				found = 1
+			}
+			data[count] = $1
+			count = count + 1
+		}
+	}
+END	{
+		if ( count > 0 )
+		{
+			print "${DESTDIR}${includedir} :"
+			print "	sh ${srcdir}/../mkdirs.sh $@"
+			print ""
+			print "install \\"
+			print "install.libs \\"
+			print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
+
+			for (i = 0; i < count - 1; ++i) {
+				printf "		%s \\\n", data[i]
+			}
+			printf "		%s\n", data[count - 1]
+
+			for (i = 0; i < count; ++i) {
+				printf "	@ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
+				if (data[i] == "curses.h" && compat == "yes") {
+					printf "	@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
+				}
+			}
+			print ""
+			print "uninstall \\"
+			print "uninstall.libs \\"
+			print "uninstall.includes ::"
+
+			for (i = 0; i < count; ++i) {
+				printf "	-@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
+				if (data[i] == "curses.h" && compat == "yes") {
+					printf "	-@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
+				}
+			}
+		}
+	}
+# vile:ts=4 sw=4
diff -Naur ncurses-5.6.orig/mkdirs.sh ncurses-5.6/mkdirs.sh
--- ncurses-5.6.orig/mkdirs.sh	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/mkdirs.sh	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,51 @@
+#! /bin/sh
+# $Id: mkdirs.sh,v 1.5 2007/03/25 22:29:46 tom Exp $
+# -----------------------------------------------------------------------------
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Last modified: 1994-03-25
+# Public domain
+# -----------------------------------------------------------------------------
+
+errstatus=0
+umask 022
+
+for file in ${1+"$@"} ; do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d in ${1+"$@"} ; do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp" 1>&2
+        case "$pathcomp" in
+          [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
+            ;;               # DOSISH systems
+          * )
+            mkdir "$pathcomp"
+            errstatus=$?
+            if test $errstatus != 0
+            then
+               # may have failed if invoked in a parallel "make -j# install"
+               if test -d "$pathcomp"
+               then
+                  errstatus=0
+               fi
+            fi
+            ;;
+        esac
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff -Naur ncurses-5.6.orig/mkinstalldirs ncurses-5.6/mkinstalldirs
--- ncurses-5.6.orig/mkinstalldirs	2002-06-29 14:52:57.000000000 -0400
+++ ncurses-5.6/mkinstalldirs	1969-12-31 19:00:00.000000000 -0500
@@ -1,38 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Last modified: 1994-03-25
-# Public domain
-#
-
-errstatus=0
-umask 022
-
-for file in ${1+"$@"} ; do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d in ${1+"$@"} ; do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
-        case "$pathcomp" in
-          [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
-                ;;               # DOSISH systems
-          * )          mkdir "$pathcomp" || errstatus=$? ;;
-        esac
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff -Naur ncurses-5.6.orig/ncurses/Makefile.in ncurses-5.6/ncurses/Makefile.in
--- ncurses-5.6.orig/ncurses/Makefile.in	2006-10-14 15:08:11.000000000 -0400
+++ ncurses-5.6/ncurses/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.101 2006/10/14 19:08:11 tom Exp $
+# $Id: Makefile.in,v 1.112 2007/09/01 20:45:53 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -112,12 +112,13 @@
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
 
-LINK		= $(LIBTOOL) $(CC)
+LINK		= $(LIBTOOL)
 LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 SHLIB_DIRS	= -L../lib
 SHLIB_LIST	= $(SHLIB_DIRS) @SHLIB_LIST@
 TINFO_LIST	= $(SHLIB_DIRS) @TINFO_LIST@
+TICS_LIST	= $(SHLIB_DIRS) @TICS_LIST@
 
 MK_SHARED_LIB	= @MK_SHARED_LIB@
 
@@ -128,8 +129,6 @@
 
 RANLIB		= @LIB_PREP@
 
-IMPORT_LIB	= @IMPORT_LIB@
-SHARED_LIB	= @SHARED_LIB@
 LIBRARIES	= @LIBS_TO_MAKE@
 
 LINT		= @LINT@
@@ -138,6 +137,7 @@
 
 FALLBACK_LIST	= @FALLBACK_LIST@
 
+USE_BIG_STRINGS	= @USE_BIG_STRINGS@
 TERMINFO_CAPS	= $(top_srcdir)/include/@TERMINFO_CAPS@
 
 AUTO_SRC = \
@@ -151,11 +151,10 @@
 	./names.c \
 	./unctrl.c \
 	init_keytry.h \
-	keys.list \
-	names-stamp
+	keys.list
 
 TEST_DEPS	= ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-TEST_ARGS	= -L../lib -lncurses@DFT_ARG_SUFFIX@
+TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
 TEST_LDFLAGS	= @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
 TEST_PROGS = \
@@ -179,7 +178,7 @@
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 ../lib : ; mkdir $@
 
@@ -197,7 +196,7 @@
 
 make_keys$(BUILD_EXEEXT) : \
 		$(tinfo)/make_keys.c \
-		names-stamp
+		names.c
 	$(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
 
 make_hash$(BUILD_EXEEXT) : \
@@ -211,27 +210,21 @@
 ./comp_captab.c: \
 		make_hash$(BUILD_EXEEXT) \
 		../include/hashsize.h \
+		$(tinfo)/MKcaptab.sh \
 		$(tinfo)/MKcaptab.awk
-	sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ > $@
+	sh $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/@TERMINFO_CAPS@ > $@
 
 ./lib_keyname.c: keys.list $(base)/MKkeyname.awk
-	$(AWK) -f $(base)/MKkeyname.awk keys.list > $@
+	$(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
 
-names-stamp: $(tinfo)/MKnames.awk
-	$(AWK) -f $(tinfo)/MKnames.awk $(srcdir)/../include/@TERMINFO_CAPS@
-	cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >names.c
-	cat namehdr boolcodes numcodes strcodes codeftr >codes.c
-	-rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
-	@echo >$@
+./codes.c: $(tinfo)/MKcodes.awk
+	$(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
 
-./names.c: names-stamp
-	@echo made $@
-
-./codes.c: names-stamp
-	@echo made $@
+./names.c: $(tinfo)/MKnames.awk
+	$(AWK) -f $(tinfo)/MKnames.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
 
 ./unctrl.c: $(base)/MKunctrl.awk
-	echo | $(AWK) -f $(base)/MKunctrl.awk >$@
+	echo | $(AWK) -f $(base)/MKunctrl.awk bigstrings=$(USE_BIG_STRINGS) >$@
 
 tags:
 	ctags *.[ch] */*.[ch]
@@ -267,17 +260,17 @@
 	sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
 
 captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
+	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
 
 hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
+	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
 
-hashmap$x : $(serial)/hashmap.c $(TEST_DEPS)
-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(TEST_LDFLAGS)
+hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
+	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
 
 lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
 		../@DFT_OBJ_SUBDIR@/dump_entry$o
-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
+	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
 
 link_test$x : ./link_test.c $(TEST_DEPS) \
 		../@DFT_OBJ_SUBDIR@/link_test$o
diff -Naur ncurses-5.6.orig/ncurses/base/MKkeyname.awk ncurses-5.6/ncurses/base/MKkeyname.awk
--- ncurses-5.6.orig/ncurses/base/MKkeyname.awk	2006-05-20 13:35:30.000000000 -0400
+++ ncurses-5.6/ncurses/base/MKkeyname.awk	2008-06-18 06:49:51.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: MKkeyname.awk,v 1.30 2006/05/20 17:35:30 tom Exp $
+# $Id: MKkeyname.awk,v 1.39 2008/05/31 19:54:58 tom Exp $
 ##############################################################################
-# Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -33,20 +33,41 @@
 	print "#include <tic.h>"
 	print "#include <term_entry.h>"
 	print ""
-	print "const struct kn _nc_key_names[] = {"
+	first = 1;
 }
 
 /^[^#]/ {
-	printf "\t{ \"%s\", %s },\n", $1, $1;
+		if (bigstrings) {
+			if (first)  {
+				print "struct kn { short offset; int code; };"
+				print "static const struct kn _nc_key_names[] = {"
+			}
+			printf "\t{ %d, %s },\n", offset, $1
+			offset += length($1) + 1
+			names = names"\n\t\""$1"\\0\""
+		} else {
+			if (first) {
+				print "struct kn { const char *name; int code; };"
+				print "static const struct kn _nc_key_names[] = {"
+			}
+			printf "\t{ \"%s\", %s },\n", $1, $1;
+		}
+		first = 0;
 	}
 
 END {
-	printf "\t{ 0, 0 }};\n"
+	if (bigstrings) {
+		printf "\t{ -1, 0 }};\n"
+		print ""
+		print "static const char key_names[] = "names";"
+	} else {
+		printf "\t{ 0, 0 }};\n"
+	}
 	print ""
 	print "#define SIZEOF_TABLE 256"
-	print "static char **keyname_table;"
+	print "#define MyTable _nc_globals.keyname_table"
 	print ""
-	print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
+	print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *sp, int c)"
 	print "{"
 	print "	int i;"
 	print "	char name[20];"
@@ -56,21 +77,30 @@
 	print "	if (c == -1) {"
 	print "		result = \"-1\";"
 	print "	} else {"
-	print "		for (i = 0; _nc_key_names[i].name != 0; i++) {"
-	print "			if (_nc_key_names[i].code == c) {"
-	print "				result = (NCURSES_CONST char *)_nc_key_names[i].name;"
-	print "				break;"
-	print "			}"
-	print "		}"
+	if (bigstrings) {
+		print "		for (i = 0; _nc_key_names[i].offset != -1; i++) {"
+		print "			if (_nc_key_names[i].code == c) {"
+		print "				result = (NCURSES_CONST char *)key_names + _nc_key_names[i].offset;"
+		print "				break;"
+		print "			}"
+		print "		}"
+	} else {
+		print "		for (i = 0; _nc_key_names[i].name != 0; i++) {"
+		print "			if (_nc_key_names[i].code == c) {"
+		print "				result = (NCURSES_CONST char *)_nc_key_names[i].name;"
+		print "				break;"
+		print "			}"
+		print "		}"
+	}
 	print ""
 	print "		if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {"
-	print "			if (keyname_table == 0)"
-	print "				keyname_table = typeCalloc(char *, SIZEOF_TABLE);"
-	print "			if (keyname_table != 0) {"
-	print "				if (keyname_table[c] == 0) {"
+	print "			if (MyTable == 0)"
+	print "				MyTable = typeCalloc(char *, SIZEOF_TABLE);"
+	print "			if (MyTable != 0) {"
+	print "				if (MyTable[c] == 0) {"
 	print "					int cc = c;"
 	print "					p = name;"
-	print "					if (cc >= 128) {"
+	print "					if (cc >= 128 && (sp == 0 || sp->_use_meta)) {"
 	print "						strcpy(p, \"M-\");"
 	print "						p += 2;"
 	print "						cc -= 128;"
@@ -81,9 +111,9 @@
 	print "						strcpy(p, \"^?\");"
 	print "					else"
 	print "						sprintf(p, \"%c\", cc);"
-	print "					keyname_table[c] = strdup(name);"
+	print "					MyTable[c] = strdup(name);"
 	print "				}"
-	print "				result = keyname_table[c];"
+	print "				result = MyTable[c];"
 	print "			}"
 	print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
 	print "		} else if (result == 0 && cur_term != 0) {"
@@ -111,24 +141,20 @@
 	print "	return result;"
 	print "}"
 	print ""
-	print "#if USE_WIDEC_SUPPORT"
-	print "NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)"
+	print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
 	print "{"
-	print "	NCURSES_CONST char *result = keyname((int)c);"
-	print "	if (!strncmp(result, \"M-\", 2)) result = 0;"
-	print "	return result;"
+	print "\treturn _nc_keyname(SP, c);"
 	print "}"
-	print "#endif"
 	print ""
 	print "#if NO_LEAKS"
 	print "void _nc_keyname_leaks(void)"
 	print "{"
 	print "	int j;"
-	print "	if (keyname_table != 0) {"
+	print "	if (MyTable != 0) {"
 	print "		for (j = 0; j < SIZEOF_TABLE; ++j) {"
-	print "			FreeIfNeeded(keyname_table[j]);"
+	print "			FreeIfNeeded(MyTable[j]);"
 	print "		}"
-	print "		FreeAndNull(keyname_table);"
+	print "		FreeAndNull(MyTable);"
 	print "	}"
 	print "}"
 	print "#endif /* NO_LEAKS */"
diff -Naur ncurses-5.6.orig/ncurses/base/MKlib_gen.sh ncurses-5.6/ncurses/base/MKlib_gen.sh
--- ncurses-5.6.orig/ncurses/base/MKlib_gen.sh	2006-07-01 17:25:39.000000000 -0400
+++ ncurses-5.6/ncurses/base/MKlib_gen.sh	2008-06-18 06:49:45.000000000 -0400
@@ -2,10 +2,10 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.27 2006/07/01 21:25:39 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.30 2008/01/05 23:21:10 tom Exp $)
 #
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -62,7 +62,7 @@
 if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
 if test "${LC_COLLATE+set}"  = set; then LC_COLLATE=C;  export LC_COLLATE;  fi
 
-preprocessor="$1 -I../include"
+preprocessor="$1 -DNCURSES_INTERNALS -I../include"
 AWK="$2"
 USE="$3"
 
@@ -406,7 +406,11 @@
 | sed -e 's/NCURSES_EXPORT(\(.*\)) \(.*\) (\(.*\))/\1 \2(\3)/' \
 | sed -f $ED2 \
 | $AWK -f $AW1 using=$USE \
-| sed -e 's/^\([a-z_][a-z_]*[ *]*\)/\1 gen_/' -e 's/  / /g' >>$TMP
+| sed \
+	-e 's/ [ ]*$//g' \
+	-e 's/^\([a-zA-Z_][a-zA-Z_]*[ *]*\)/\1 gen_/' \
+	-e 's/gen_$//' \
+	-e 's/  / /g' >>$TMP
 
 $preprocessor $TMP 2>/dev/null \
 | sed \
@@ -418,4 +422,5 @@
 | sed \
 	-e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/	return \1;/' \
 	-e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/	return \1;/' \
+	-e 's/gen_//' \
 | sed -f $ED4
diff -Naur ncurses-5.6.orig/ncurses/base/MKunctrl.awk ncurses-5.6/ncurses/base/MKunctrl.awk
--- ncurses-5.6.orig/ncurses/base/MKunctrl.awk	2005-12-17 17:48:37.000000000 -0500
+++ ncurses-5.6/ncurses/base/MKunctrl.awk	2008-06-18 06:49:51.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: MKunctrl.awk,v 1.11 2005/12/17 22:48:37 tom Exp $
+# $Id: MKunctrl.awk,v 1.22 2008/05/31 19:36:11 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -27,81 +27,164 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
+# Author: Thomas E. Dickey (1997-on)
 #
 
 BEGIN	{
 		print "/* generated by MKunctrl.awk */"
 		print ""
 		print "#include <curses.priv.h>"
+		print "#include <ctype.h>"
+		print ""
+		print "#if USE_WIDEC_SUPPORT"
+		print "#if HAVE_WCTYPE_H"
+		print "#include <wctype.h>"
+		print "#endif"
+		print "#endif"
 		print ""
 		print "#undef unctrl"
 		print ""
 	}
 END	{
-		print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
+		print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)"
 		print "{"
 
-		printf "static const char* const table[] = {"
+		blob=""
+		offset=0
+		if (bigstrings) {
+			printf "static const short unctrl_table[] = {"
+		} else {
+			printf "static const char* const unctrl_table[] = {"
+		}
 		for ( ch = 0; ch < 256; ch++ ) {
 			gap = ","
-			if ((ch % 8) == 0)
+			part=""
+			if ((ch % 8) == 0) {
 				printf "\n    "
+				if (ch != 0)
+					blob = blob "\""
+				blob = blob "\n    \""
+			}
+			if (bigstrings)
+				printf "%4d%s", offset, gap;
 			if (ch < 32) {
-				printf "\"^\\%03o\"", ch + 64
+				part = sprintf ("^\\%03o", ch + 64);
+				offset = offset + 3;
 			} else if (ch == 127) {
-				printf "\"^?\""
+				part = "^?";
+				offset = offset + 3;
 			} else if (ch >= 128 && ch < 160) {
-				printf "\"~\\%03o\"", ch - 64
+				part = sprintf("~\\%03o", ch - 64);
+				offset = offset + 3;
+			} else if (ch == 255) {
+				part = "~?";
+				offset = offset + 3;
+			} else if (ch >= 160) {
+				part = sprintf("M-\\%03o", ch - 128);
+				offset = offset + 4;
 			} else {
-				printf "\"\\%03o\"", ch
 				gap = gap " "
+				part = sprintf("\\%03o", ch);
+				offset = offset + 2;
 			}
 			if (ch == 255)
 				gap = "\n"
 			else if (((ch + 1) % 8) != 0)
 				gap = gap " "
-			printf "%s", gap
+			if (bigstrings) {
+				blob = blob part "\\0";
+			} else {
+				printf "\"%s\"%s", part, gap
+			}
 		}
 		print "};"
+		blob = blob "\"";
 
 		print ""
-		print "#if NCURSES_EXT_FUNCS"
-		printf "static const char* const table2[] = {"
-		for ( ch = 128; ch < 160; ch++ ) {
+		if (bigstrings) {
+			blob = blob "\n/* printable values in 128-255 range */"
+			printf "static const short unctrl_c1[] = {"
+		} else {
+			printf "static const char* const unctrl_c1[] = {"
+		}
+		for ( ch = 128; ch < 256; ch++ ) {
 			gap = ","
-			if ((ch % 8) == 0)
+			if ((ch % 8) == 0) {
+				if (ch != 128)
+					blob = blob "\""
 				printf "\n    "
-			if (ch >= 128 && ch < 160) {
-				printf "\"\\%03o\"", ch
-				gap = gap " "
+				blob = blob "\n    \""
+			}
+			if (bigstrings) {
+				printf "%4d%s", offset, gap;
+				part = sprintf("\\%03o\\0", ch);
+				blob = blob part
+				offset = offset + 2;
+				if (((ch + 1) % 8) != 0)
+					gap = gap " "
+			} else {
+				if (ch >= 128) {
+					printf "\"\\%03o\"", ch
+					gap = gap " "
+				}
+				if (ch == 255)
+					gap = "\n"
+				else if (((ch + 1) % 8) != 0)
+					gap = gap " "
+				printf "%s", gap
 			}
-			if (ch == 255)
-				gap = "\n"
-			else if (((ch + 1) % 8) != 0)
-				gap = gap " "
-			printf "%s", gap
 		}
 		print "};"
-		print "#endif /* NCURSES_EXT_FUNCS */"
+		blob = blob "\"\n"
 
 		print ""
-		print "\tint check = ChCharOf(ch);"
-		print "\tconst char *result;"
-		print ""
-		print "\tif (check >= 0 && check < (int)SIZEOF(table)) {"
-		print "#if NCURSES_EXT_FUNCS"
-		print "\t\tif ((SP != 0)"
-		print "\t\t && (SP->_legacy_coding > 1)"
-		print "\t\t && (check >= 128)"
-		print "\t\t && (check < 160))"
-		print "\t\t\tresult = table2[check - 128];"
-		print "\t\telse"
-		print "#endif /* NCURSES_EXT_FUNCS */"
-		print "\t\t\tresult = table[check];"
-		print "\t} else {"
-		print "\t\tresult = 0;"
-		print "\t}"
-		print "\treturn (NCURSES_CONST char *)result;"
-		print "}"
+		if (bigstrings) {
+			print "static const char unctrl_blob[] = "blob";"
+			print ""
+			stringname = "unctrl_blob + unctrl"
+		} else {
+			stringname = "unctrl"
+		}
+		print  "\tint check = ChCharOf(ch);"
+		print  "\tconst char *result;"
+		print  ""
+		print  "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
+		print  "#if NCURSES_EXT_FUNCS"
+		print  "\t\tif ((sp != 0)"
+		print  "\t\t && (sp->_legacy_coding > 1)"
+		print  "\t\t && (check >= 128)"
+		print  "\t\t && (check < 160))"
+		printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
+		print  "\t\telse"
+		print  "#if USE_WIDEC_SUPPORT"
+		print  "\t\tif ((check >= 160)"
+		print  "\t\t && (check < 256)"
+		print  "\t\t && ((sp != 0)"
+		print  "\t\t  && ((sp->_legacy_coding > 0)"
+		print  "\t\t   || (sp->_legacy_coding == 0"
+		print  "\t\t       && (isprint(check) || iswprint(check))))))"
+		printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
+		print  "\t\telse"
+		print  "#else"
+		print  "\t\tif ((check >= 160)"
+		print  "\t\t && (check < 256)"
+		print  "\t\t && ((sp != 0)"
+		print  "\t\t  && ((sp->_legacy_coding > 0)"
+		print  "\t\t   || (sp->_legacy_coding == 0"
+		print  "\t\t       && isprint(check)))))"
+		printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
+		print  "\t\telse"
+		print  "#endif /* USE_WIDEC_SUPPORT */"
+		print  "#endif /* NCURSES_EXT_FUNCS */"
+		printf "\t\t\tresult = %s_table[check];\n", stringname;
+		print  "\t} else {"
+		print  "\t\tresult = 0;"
+		print  "\t}"
+		print  "\treturn (NCURSES_CONST char *)result;"
+		print  "}"
+		print  ""
+		print  "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)"
+		print  "{"
+		print  "\treturn _nc_unctrl(SP, ch);"
+		print  "}"
 	}
diff -Naur ncurses-5.6.orig/ncurses/base/define_key.c ncurses-5.6/ncurses/base/define_key.c
--- ncurses-5.6.orig/ncurses/base/define_key.c	2006-06-17 14:19:48.000000000 -0400
+++ ncurses-5.6/ncurses/base/define_key.c	2008-06-18 06:49:44.000000000 -0400
@@ -32,7 +32,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: define_key.c,v 1.10 2006/06/17 18:19:48 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $")
 
 NCURSES_EXPORT(int)
 define_key(const char *str, int keycode)
@@ -43,16 +43,21 @@
     if (SP == 0) {
 	code = ERR;
     } else if (keycode > 0) {
+	unsigned ukey = (unsigned) keycode;
+
 	if (str != 0) {
 	    define_key(str, 0);
 	} else if (has_key(keycode)) {
-	    while (_nc_remove_key(&(SP->_keytry), (unsigned) keycode))
+	    while (_nc_remove_key(&(SP->_keytry), ukey))
 		code = OK;
 	}
 	if (str != 0) {
 	    if (key_defined(str) == 0) {
-		(void) _nc_add_to_try(&(SP->_keytry), str, (unsigned) keycode);
-		code = OK;
+		if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) {
+		    code = OK;
+		} else {
+		    code = ERR;
+		}
 	    } else {
 		code = ERR;
 	    }
diff -Naur ncurses-5.6.orig/ncurses/base/key_defined.c ncurses-5.6/ncurses/base/key_defined.c
--- ncurses-5.6.orig/ncurses/base/key_defined.c	2003-05-17 19:12:27.000000000 -0400
+++ ncurses-5.6/ncurses/base/key_defined.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
@@ -32,26 +32,27 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: key_defined.c,v 1.3 2003/05/17 23:12:27 tom Exp $")
+MODULE_ID("$Id: key_defined.c,v 1.6 2006/12/30 23:22:55 tom Exp $")
 
 static int
-find_definition(struct tries *tree, const char *str)
+find_definition(TRIES * tree, const char *str)
 {
-    struct tries *ptr;
-    int result = 0;
+    TRIES *ptr;
+    int result = OK;
 
     if (str != 0 && *str != '\0') {
 	for (ptr = tree; ptr != 0; ptr = ptr->sibling) {
 	    if (UChar(*str) == UChar(ptr->ch)) {
 		if (str[1] == '\0' && ptr->child != 0) {
-		    result = -1;
-		} else if ((result = find_definition(ptr->child, str + 1)) == 0) {
+		    result = ERR;
+		} else if ((result = find_definition(ptr->child, str + 1))
+			   == OK) {
 		    result = ptr->value;
 		} else if (str[1] == '\0') {
-		    result = -1;
+		    result = ERR;
 		}
 	    }
-	    if (result != 0)
+	    if (result != OK)
 		break;
 	}
     }
@@ -60,7 +61,8 @@
 
 /*
  * Returns the keycode associated with the given string.  If none is found,
- * return 0.  If the string is only a prefix to other strings, return -1.
+ * return OK.  If the string is only a prefix to other strings, return ERR.
+ * Otherwise, return the keycode's value (neither OK/ERR).
  */
 NCURSES_EXPORT(int)
 key_defined(const char *str)
diff -Naur ncurses-5.6.orig/ncurses/base/keyok.c ncurses-5.6/ncurses/base/keyok.c
--- ncurses-5.6.orig/ncurses/base/keyok.c	2006-06-17 14:18:43.000000000 -0400
+++ ncurses-5.6/ncurses/base/keyok.c	2008-06-18 06:49:44.000000000 -0400
@@ -27,12 +27,12 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
+ *  Author: Thomas E. Dickey            1997-on                             *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: keyok.c,v 1.6 2006/06/17 18:18:43 tom Exp $")
+MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $")
 
 /*
  * Enable (or disable) ncurses' interpretation of a keycode by adding (or
@@ -57,18 +57,20 @@
 	if (flag) {
 	    while ((s = _nc_expand_try(SP->_key_ok, ch, &count, 0)) != 0
 		   && _nc_remove_key(&(SP->_key_ok), ch)) {
-		_nc_add_to_try(&(SP->_keytry), s, ch);
+		code = _nc_add_to_try(&(SP->_keytry), s, ch);
 		free(s);
-		code = OK;
 		count = 0;
+		if (code != OK)
+		    break;
 	    }
 	} else {
 	    while ((s = _nc_expand_try(SP->_keytry, ch, &count, 0)) != 0
 		   && _nc_remove_key(&(SP->_keytry), ch)) {
-		_nc_add_to_try(&(SP->_key_ok), s, ch);
+		code = _nc_add_to_try(&(SP->_key_ok), s, ch);
 		free(s);
-		code = OK;
 		count = 0;
+		if (code != OK)
+		    break;
 	    }
 	}
     }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_addch.c ncurses-5.6/ncurses/base/lib_addch.c
--- ncurses-5.6.orig/ncurses/base/lib_addch.c	2006-10-14 16:31:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_addch.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,7 +36,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_addch.c,v 1.104 2006/10/14 20:31:19 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.112 2008/05/17 19:08:40 Miroslav.Lichvar Exp $")
 
 static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
 
@@ -217,19 +217,19 @@
 		       buffer,
 		       WINDOW_EXT(win, addch_used), &state)) > 0) {
 	attr_t attrs = AttrOf(CHDEREF(ch));
+	if_EXT_COLORS(int pair = GetPair(CHDEREF(ch)));
 	SetChar(CHDEREF(ch), result, attrs);
+	if_EXT_COLORS(SetPair(CHDEREF(ch), pair));
+	WINDOW_EXT(win, addch_used) = 0;
+    } else if (len == -1) {
+	/*
+	 * An error occurred.  We could either discard everything,
+	 * or assume that the error was in the previous input.
+	 * Try the latter.
+	 */
+	TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
+	/* handle this with unctrl() */
 	WINDOW_EXT(win, addch_used) = 0;
-    } else {
-	if (len == -1) {
-	    /*
-	     * An error occurred.  We could either discard everything,
-	     * or assume that the error was in the previous input.
-	     * Try the latter.
-	     */
-	    TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
-	    buffer[0] = CharOf(CHDEREF(ch));
-	    WINDOW_EXT(win, addch_used) = 1;
-	}
     }
     return len;
 }
@@ -264,13 +264,16 @@
 	if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
 	    int len = _nc_build_wch(win, CHREF(ch));
 
-	    if (len > 0) {
+	    if (len >= -1) {
+		/* handle EILSEQ */
 		if (is8bits(CharOf(ch))) {
 		    const char *s = unctrl((chtype) CharOf(ch));
 		    if (s[1] != 0) {
 			return waddstr(win, s);
 		    }
 		}
+		if (len == -1)
+		    return waddch(win, ' ');
 	    } else {
 		return OK;
 	    }
@@ -287,12 +290,15 @@
 	int len = wcwidth(CharOf(ch));
 	int i;
 	int j;
+	wchar_t *chars;
 
 	if (len == 0) {		/* non-spacing */
 	    if ((x > 0 && y >= 0)
-		|| ((y = win->_cury - 1) >= 0 &&
-		    (x = win->_maxx) > 0)) {
-		wchar_t *chars = (win->_line[y].text[x - 1].chars);
+		|| (win->_maxx >= 0 && win->_cury >= 1)) {
+		if (x > 0 && y >= 0)
+		    chars = (win->_line[y].text[x - 1].chars);
+		else
+		    chars = (win->_line[y - 1].text[win->_maxx].chars);
 		for (i = 0; i < CCHARW_MAX; ++i) {
 		    if (chars[i] == 0) {
 			TR(TRACE_VIRTPUT,
@@ -473,6 +479,7 @@
 	while (*s) {
 	    NCURSES_CH_T sch;
 	    SetChar(sch, *s++, AttrOf(ch));
+	    if_EXT_COLORS(SetPair(sch, GetPair(ch)));
 	    if (waddch_literal(win, sch) == ERR)
 		return ERR;
 	}
diff -Naur ncurses-5.6.orig/ncurses/base/lib_addstr.c ncurses-5.6/ncurses/base/lib_addstr.c
--- ncurses-5.6.orig/ncurses/base/lib_addstr.c	2006-05-27 15:22:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_addstr.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -44,7 +44,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_addstr.c,v 1.46 2006/05/27 19:22:19 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.48 2007/10/13 19:56:57 tom Exp $")
 
 NCURSES_EXPORT(int)
 waddnstr(WINDOW *win, const char *astr, int n)
@@ -80,8 +80,7 @@
 NCURSES_EXPORT(int)
 waddchnstr(WINDOW *win, const chtype *astr, int n)
 {
-    NCURSES_SIZE_T y = win->_cury;
-    NCURSES_SIZE_T x = win->_curx;
+    NCURSES_SIZE_T y, x;
     int code = OK;
     int i;
     struct ldat *line;
@@ -91,6 +90,8 @@
     if (!win)
 	returnCode(ERR);
 
+    y = win->_cury;
+    x = win->_curx;
     if (n < 0) {
 	const chtype *str;
 	n = 0;
@@ -128,8 +129,8 @@
 wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n)
 {
     static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
-    NCURSES_SIZE_T y = win->_cury;
-    NCURSES_SIZE_T x = win->_curx;
+    NCURSES_SIZE_T y;
+    NCURSES_SIZE_T x;
     int code = OK;
     struct ldat *line;
     int i, j, start, len, end;
@@ -139,6 +140,8 @@
     if (!win)
 	returnCode(ERR);
 
+    y = win->_cury;
+    x = win->_curx;
     if (n < 0) {
 	n = _nc_wchstrlen(astr);
     }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_bkgd.c ncurses-5.6/ncurses/base/lib_bkgd.c
--- ncurses-5.6.orig/ncurses/base/lib_bkgd.c	2006-05-27 15:20:11.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_bkgd.c	2008-06-18 06:49:48.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,7 +36,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_bkgd.c,v 1.35 2006/05/27 19:20:11 tom Exp $")
+MODULE_ID("$Id: lib_bkgd.c,v 1.36 2008/03/23 00:09:14 tom Exp $")
 
 /*
  * Set the window's background information.
@@ -70,7 +70,7 @@
 
 	if (CharOf(CHDEREF(ch)) == L('\0')) {
 	    SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch)));
-	    SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch)));
+	    if_EXT_COLORS(SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch))));
 	} else {
 	    win->_nc_bkgd = CHDEREF(ch);
 	}
diff -Naur ncurses-5.6.orig/ncurses/base/lib_color.c ncurses-5.6/ncurses/base/lib_color.c
--- ncurses-5.6.orig/ncurses/base/lib_color.c	2006-11-25 20:33:16.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_color.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,21 +42,37 @@
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_color.c,v 1.80 2006/11/26 01:33:16 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.85 2007/04/07 17:07:28 tom Exp $")
 
 /*
  * These should be screen structure members.  They need to be globals for
  * historical reasons.  So we assign them in start_color() and also in
  * set_term()'s screen-switching logic.
  */
+#if USE_REENTRANT
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void)
+{
+    return SP ? SP->_pair_count : -1;
+}
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(COLORS) (void)
+{
+    return SP ? SP->_color_count : -1;
+}
+#else
 NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
 NCURSES_EXPORT_VAR(int) COLORS = 0;
+#endif
 
 #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
 
 #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
 
+#define MAX_PALETTE	8
+
 #define OkColorHi(n)	(((n) < COLORS) && ((n) < max_colors))
+#define InPalette(n)	((n) >= 0 && (n) < MAX_PALETTE)
 
 /*
  * Given a RGB range of 0..1000, we'll normally set the individual values
@@ -162,10 +178,10 @@
 
     tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
     for (n = 0; n < COLORS; n++) {
-	if (n < 8) {
+	if (InPalette(n)) {
 	    SP->_color_table[n] = tp[n];
 	} else {
-	    SP->_color_table[n] = tp[n % 8];
+	    SP->_color_table[n] = tp[n % MAX_PALETTE];
 	    if (hue_lightness_saturation) {
 		SP->_color_table[n].green = 100;
 	    } else {
@@ -239,8 +255,12 @@
 	}
 
 	if (max_pairs > 0 && max_colors > 0) {
-	    COLOR_PAIRS = SP->_pair_count = max_pairs;
-	    COLORS = SP->_color_count = max_colors;
+	    SP->_pair_count = max_pairs;
+	    SP->_color_count = max_colors;
+#if !USE_REENTRANT
+	    COLOR_PAIRS = max_pairs;
+	    COLORS = max_colors;
+#endif
 
 	    if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
 						max_pairs)) != 0) {
@@ -365,13 +385,14 @@
     if (GET_SCREEN_PAIR(SP) == pair)
 	SET_SCREEN_PAIR(SP, (chtype) (~0));	/* force attribute update */
 
-    if (initialize_pair) {
+    if (initialize_pair && InPalette(f) && InPalette(b)) {
 	const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
 
-	T(("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
-	   pair,
-	   tp[f].red, tp[f].green, tp[f].blue,
-	   tp[b].red, tp[b].green, tp[b].blue));
+	TR(TRACE_ATTRS,
+	   ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
+	    pair,
+	    tp[f].red, tp[f].green, tp[f].blue,
+	    tp[b].red, tp[b].green, tp[b].blue));
 
 	TPUTS_TRACE("initialize_pair");
 	putp(TPARM_7(initialize_pair,
@@ -461,7 +482,8 @@
 	if (b)
 	    *b = c_b;
 
-	T(("...color_content(%d,%d,%d,%d)", color, c_r, c_g, c_b));
+	TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)",
+			 color, c_r, c_g, c_b));
 	result = OK;
     }
     returnCode(result);
@@ -492,7 +514,7 @@
 	if (b)
 	    *b = bg;
 
-	T(("...pair_content(%d,%d,%d)", pair, fg, bg));
+	TR(TRACE_ATTRS, ("...pair_content(%d,%d,%d)", pair, fg, bg));
 	result = OK;
     }
     returnCode(result);
diff -Naur ncurses-5.6.orig/ncurses/base/lib_delwin.c ncurses-5.6/ncurses/base/lib_delwin.c
--- ncurses-5.6.orig/ncurses/base/lib_delwin.c	2001-08-25 20:40:20.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_delwin.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_delwin.c,v 1.13 2001/08/26 00:40:20 tom Exp $")
+MODULE_ID("$Id: lib_delwin.c,v 1.17 2008/06/07 14:10:56 tom Exp $")
 
 static bool
 cannot_delete(WINDOW *win)
@@ -48,7 +48,7 @@
     WINDOWLIST *p;
     bool result = TRUE;
 
-    for (p = _nc_windows; p != 0; p = p->next) {
+    for (each_window(p)) {
 	if (&(p->win) == win) {
 	    result = FALSE;
 	} else if ((p->win._flags & _SUBWIN) != 0
@@ -63,16 +63,24 @@
 NCURSES_EXPORT(int)
 delwin(WINDOW *win)
 {
+    int result = ERR;
+
     T((T_CALLED("delwin(%p)"), win));
 
-    if (win == 0
-	|| cannot_delete(win))
-	returnCode(ERR);
-
-    if (win->_flags & _SUBWIN)
-	touchwin(win->_parent);
-    else if (curscr != 0)
-	touchwin(curscr);
+    if (_nc_try_global(curses) == 0) {
+	if (win == 0
+	    || cannot_delete(win)) {
+	    result = ERR;
+	} else {
+
+	    if (win->_flags & _SUBWIN)
+		touchwin(win->_parent);
+	    else if (curscr != 0)
+		touchwin(curscr);
 
-    returnCode(_nc_freewin(win));
+	    result = _nc_freewin(win);
+	}
+	_nc_unlock_global(curses);
+    }
+    returnCode(result);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_freeall.c ncurses-5.6/ncurses/base/lib_freeall.c
--- ncurses-5.6.orig/ncurses/base/lib_freeall.c	2006-12-02 17:36:43.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_freeall.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                    1996,1997                   *
+ *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
 
 #include <curses.priv.h>
@@ -40,7 +40,7 @@
 extern int malloc_errfd;	/* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.38 2006/12/02 22:36:43 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.47 2008/06/07 13:58:29 tom Exp $")
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
@@ -50,23 +50,27 @@
 _nc_freeall(void)
 {
     WINDOWLIST *p, *q;
-    char *s;
     static va_list empty_va;
 
     T((T_CALLED("_nc_freeall()")));
 #if NO_LEAKS
-    _nc_free_tparm();
-    if (_nc_oldnums != 0) {
-	FreeAndNull(_nc_oldnums);
+    if (SP != 0) {
+	if (SP->_oldnum_list != 0) {
+	    FreeAndNull(SP->_oldnum_list);
+	}
     }
 #endif
     if (SP != 0) {
+	_nc_lock_global(curses);
+
 	while (_nc_windows != 0) {
+	    bool deleted = FALSE;
+
 	    /* Delete only windows that're not a parent */
-	    for (p = _nc_windows; p != 0; p = p->next) {
+	    for (each_window(p)) {
 		bool found = FALSE;
 
-		for (q = _nc_windows; q != 0; q = q->next) {
+		for (each_window(q)) {
 		    if ((p != q)
 			&& (q->win._flags & _SUBWIN)
 			&& (&(p->win) == q->win._parent)) {
@@ -76,39 +80,38 @@
 		}
 
 		if (!found) {
-		    delwin(&(p->win));
+		    if (delwin(&(p->win)) != ERR)
+			deleted = TRUE;
 		    break;
 		}
 	    }
+
+	    /*
+	     * Don't continue to loop if the list is trashed.
+	     */
+	    if (!deleted)
+		break;
 	}
 	delscreen(SP);
+	_nc_unlock_global(curses);
     }
-#if NO_LEAKS
-    _nc_tgetent_leaks();
-#endif
-    del_curterm(cur_term);
-    _nc_free_entries(_nc_head);
-    _nc_get_type(0);
-    _nc_first_name(0);
+    if (cur_term != 0)
+	del_curterm(cur_term);
+
 #if USE_WIDEC_SUPPORT
     FreeIfNeeded(_nc_wacs);
 #endif
-#if NO_LEAKS
-    _nc_alloc_entry_leaks();
-    _nc_captoinfo_leaks();
-    _nc_comp_scan_leaks();
-    _nc_keyname_leaks();
-    _nc_tic_expand(0, FALSE, 0);
-#endif
-
-    if ((s = _nc_home_terminfo()) != 0)
-	free(s);
-
     (void) _nc_printf_string(0, empty_va);
 #ifdef TRACE
     (void) _nc_trace_buf(-1, 0);
 #endif
 
+#if BROKEN_LINKER || USE_REENTRANT
+    FreeIfNeeded(_nc_prescreen.real_acs_map);
+#endif
+
+    _nc_leaks_tinfo();
+
 #if HAVE_LIBDBMALLOC
     malloc_dump(malloc_errfd);
 #elif HAVE_LIBDMALLOC
diff -Naur ncurses-5.6.orig/ncurses/base/lib_getch.c ncurses-5.6/ncurses/base/lib_getch.c
--- ncurses-5.6.orig/ncurses/base/lib_getch.c	2006-03-04 15:06:09.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_getch.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,12 +41,47 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_getch.c,v 1.75 2006/03/04 20:06:09 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.95 2008/06/07 15:52:51 tom Exp $")
 
 #include <fifo_defs.h>
 
+#if USE_REENTRANT
+#define GetEscdelay(sp) (sp)->_ESCDELAY
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(ESCDELAY) (void)
+{
+    return SP ? GetEscdelay(SP) : 1000;
+}
+#else
+#define GetEscdelay(sp) ESCDELAY
 NCURSES_EXPORT_VAR(int)
 ESCDELAY = 1000;		/* max interval betw. chars in funkeys, in millisecs */
+#endif
+
+#if NCURSES_EXT_FUNCS
+NCURSES_EXPORT(int)
+set_escdelay(int value)
+{
+    int code = OK;
+#if USE_REENTRANT
+    if (SP) {
+	SP->_ESCDELAY = value;
+    } else {
+	code = ERR;
+    }
+#else
+    ESCDELAY = value;
+#endif
+    return code;
+}
+#endif
+
+static int
+_nc_use_meta(WINDOW *win)
+{
+    SCREEN *sp = _nc_screen_of(win);
+    return (sp ? sp->_use_meta : 0);
+}
 
 #ifdef NCURSES_WGETCH_EVENTS
 #define TWAIT_MASK 7
@@ -58,20 +93,20 @@
  * Check for mouse activity, returning nonzero if we find any.
  */
 static int
-check_mouse_activity(int delay EVENTLIST_2nd(_nc_eventlist * evl))
+check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl))
 {
     int rc;
 
 #if USE_SYSMOUSE
-    if ((SP->_mouse_type == M_SYSMOUSE)
-	&& (SP->_sysmouse_head < SP->_sysmouse_tail)) {
+    if ((sp->_mouse_type == M_SYSMOUSE)
+	&& (sp->_sysmouse_head < sp->_sysmouse_tail)) {
 	return 2;
     }
 #endif
-    rc = _nc_timed_wait(TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl));
+    rc = _nc_timed_wait(sp, TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl));
 #if USE_SYSMOUSE
-    if ((SP->_mouse_type == M_SYSMOUSE)
-	&& (SP->_sysmouse_head < SP->_sysmouse_tail)
+    if ((sp->_mouse_type == M_SYSMOUSE)
+	&& (sp->_sysmouse_head < sp->_sysmouse_tail)
 	&& (rc == 0)
 	&& (errno == EINTR)) {
 	rc |= 2;
@@ -81,9 +116,9 @@
 }
 
 static NCURSES_INLINE int
-fifo_peek(void)
+fifo_peek(SCREEN *sp)
 {
-    int ch = SP->_fifo[peek];
+    int ch = sp->_fifo[peek];
     TR(TRACE_IEVENT, ("peeking at %d", peek));
 
     p_inc();
@@ -91,11 +126,11 @@
 }
 
 static NCURSES_INLINE int
-fifo_pull(void)
+fifo_pull(SCREEN *sp)
 {
     int ch;
-    ch = SP->_fifo[head];
-    TR(TRACE_IEVENT, ("pulling %s from %d", _tracechar(ch), head));
+    ch = sp->_fifo[head];
+    TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head));
 
     if (peek == head) {
 	h_inc();
@@ -104,14 +139,16 @@
 	h_inc();
 
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT)
-	_nc_fifo_dump();
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_nc_fifo_dump(sp);
+	_nc_unlock_global(tracef);
+    }
 #endif
     return ch;
 }
 
 static NCURSES_INLINE int
-fifo_push(EVENTLIST_0th(_nc_eventlist * evl))
+fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
 {
     int n;
     int ch = 0;
@@ -129,47 +166,47 @@
 #ifdef NCURSES_WGETCH_EVENTS
     if (evl
 #if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
-	|| (SP->_mouse_fd >= 0)
+	|| (sp->_mouse_fd >= 0)
 #endif
 	) {
-	mask = check_mouse_activity(-1 EVENTLIST_2nd(evl));
+	mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl));
     } else
 	mask = 0;
 
     if (mask & 4) {
 	T(("fifo_push: ungetch KEY_EVENT"));
-	ungetch(KEY_EVENT);
+	_nc_ungetch(sp, KEY_EVENT);
 	return KEY_EVENT;
     }
 #elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
-    if (SP->_mouse_fd >= 0) {
-	mask = check_mouse_activity(-1 EVENTLIST_2nd(evl));
+    if (sp->_mouse_fd >= 0) {
+	mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl));
     }
 #endif
 
 #if USE_GPM_SUPPORT || USE_EMX_MOUSE
-    if ((SP->_mouse_fd >= 0) && (mask & 2)) {
-	SP->_mouse_event(SP);
+    if ((sp->_mouse_fd >= 0) && (mask & 2)) {
+	sp->_mouse_event(sp);
 	ch = KEY_MOUSE;
 	n = 1;
     } else
 #endif
 #if USE_SYSMOUSE
-	if ((SP->_mouse_type == M_SYSMOUSE)
-	    && (SP->_sysmouse_head < SP->_sysmouse_tail)) {
-	SP->_mouse_event(SP);
+	if ((sp->_mouse_type == M_SYSMOUSE)
+	    && (sp->_sysmouse_head < sp->_sysmouse_tail)) {
+	sp->_mouse_event(sp);
 	ch = KEY_MOUSE;
 	n = 1;
-    } else if ((SP->_mouse_type == M_SYSMOUSE)
+    } else if ((sp->_mouse_type == M_SYSMOUSE)
 	       && (mask <= 0) && errno == EINTR) {
-	SP->_mouse_event(SP);
+	sp->_mouse_event(sp);
 	ch = KEY_MOUSE;
 	n = 1;
     } else
 #endif
     {				/* Can block... */
 	unsigned char c2 = 0;
-	n = read(SP->_ifd, &c2, 1);
+	n = read(sp->_ifd, &c2, 1);
 	ch = c2;
     }
 
@@ -188,37 +225,85 @@
 #endif
 
     if ((n == -1) || (n == 0)) {
-	TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", SP->_ifd, n, errno));
+	TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", sp->_ifd, n, errno));
 	ch = ERR;
     }
     TR(TRACE_IEVENT, ("read %d characters", n));
 
-    SP->_fifo[tail] = ch;
-    SP->_fifohold = 0;
+    sp->_fifo[tail] = ch;
+    sp->_fifohold = 0;
     if (head == -1)
 	head = peek = tail;
     t_inc();
-    TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail));
+    TR(TRACE_IEVENT, ("pushed %s at %d", _nc_tracechar(sp, ch), tail));
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT)
-	_nc_fifo_dump();
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_nc_fifo_dump(sp);
+	_nc_unlock_global(tracef);
+    }
 #endif
     return ch;
 }
 
 static NCURSES_INLINE void
-fifo_clear(void)
+fifo_clear(SCREEN *sp)
 {
-    memset(SP->_fifo, 0, sizeof(SP->_fifo));
+    memset(sp->_fifo, 0, sizeof(sp->_fifo));
     head = -1;
     tail = peek = 0;
 }
 
-static int kgetch(EVENTLIST_0th(_nc_eventlist * evl));
+static int kgetch(SCREEN *EVENTLIST_2nd(_nc_eventlist * evl));
+
+static void
+recur_wrefresh(WINDOW *win)
+{
+#ifdef USE_PTHREADS
+    SCREEN *sp = _nc_screen_of(win);
+    if (sp != SP) {
+	SCREEN *save_SP;
+
+	/* temporarily switch to the window's screen to check/refresh */
+	_nc_lock_global(curses);
+	save_SP = SP;
+	SP = sp;
+	recur_wrefresh(win);
+	SP = save_SP;
+	_nc_unlock_global(curses);
+    } else
+#endif
+	if ((is_wintouched(win) || (win->_flags & _HASMOVED))
+	    && !(win->_flags & _ISPAD)) {
+	wrefresh(win);
+    }
+}
+
+static int
+recur_wgetnstr(WINDOW *win, char *buf)
+{
+    SCREEN *sp = _nc_screen_of(win);
+    int rc;
 
-#define wgetch_should_refresh(win) (\
-	(is_wintouched(win) || (win->_flags & _HASMOVED)) \
-	&& !(win->_flags & _ISPAD))
+#ifdef USE_PTHREADS
+    if (sp != SP) {
+	SCREEN *save_SP;
+
+	/* temporarily switch to the window's screen to get cooked input */
+	_nc_lock_global(curses);
+	save_SP = SP;
+	SP = sp;
+	rc = recur_wgetnstr(win, buf);
+	SP = save_SP;
+	_nc_unlock_global(curses);
+    } else
+#endif
+    {
+	sp->_called_wgetch = TRUE;
+	rc = wgetnstr(win, buf, MAXCOLUMNS);
+	sp->_called_wgetch = FALSE;
+    }
+    return rc;
+}
 
 NCURSES_EXPORT(int)
 _nc_wgetch(WINDOW *win,
@@ -226,6 +311,7 @@
 	   int use_meta
 	   EVENTLIST_2nd(_nc_eventlist * evl))
 {
+    SCREEN *sp;
     int ch;
 #ifdef NCURSES_WGETCH_EVENTS
     long event_delay = -1;
@@ -234,15 +320,16 @@
     T((T_CALLED("_nc_wgetch(%p)"), win));
 
     *result = 0;
-    if (win == 0 || SP == 0)
+
+    sp = _nc_screen_of(win);
+    if (win == 0 || sp == 0) {
 	returnCode(ERR);
+    }
 
     if (cooked_key_in_fifo()) {
-	if (wgetch_should_refresh(win))
-	    wrefresh(win);
-
-	*result = fifo_pull();
-	returnCode(OK);
+	recur_wrefresh(win);
+	*result = fifo_pull(sp);
+	returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
     }
 #ifdef NCURSES_WGETCH_EVENTS
     if (evl && (evl->count == 0))
@@ -256,53 +343,48 @@
      * the first character to return it.
      */
     if (head == -1 &&
-	!SP->_notty &&
-	!SP->_raw &&
-	!SP->_cbreak &&
-	!SP->_called_wgetch) {
-	char buf[MAXCOLUMNS], *sp;
+	!sp->_notty &&
+	!sp->_raw &&
+	!sp->_cbreak &&
+	!sp->_called_wgetch) {
+	char buf[MAXCOLUMNS], *bufp;
 	int rc;
 
 	TR(TRACE_IEVENT, ("filling queue in cooked mode"));
 
-	SP->_called_wgetch = TRUE;
-	rc = wgetnstr(win, buf, MAXCOLUMNS);
-	SP->_called_wgetch = FALSE;
+	rc = recur_wgetnstr(win, buf);
 
 	/* ungetch in reverse order */
 #ifdef NCURSES_WGETCH_EVENTS
 	if (rc != KEY_EVENT)
 #endif
-	    ungetch('\n');
-	for (sp = buf + strlen(buf); sp > buf; sp--)
-	    ungetch(sp[-1]);
+	    _nc_ungetch(sp, '\n');
+	for (bufp = buf + strlen(buf); bufp > buf; bufp--)
+	    _nc_ungetch(sp, bufp[-1]);
 
 #ifdef NCURSES_WGETCH_EVENTS
 	/* Return it first */
 	if (rc == KEY_EVENT) {
 	    *result = rc;
-	    returnCode(OK);
-	}
+	} else
 #endif
-
-	*result = fifo_pull();
-	returnCode(OK);
+	    *result = fifo_pull(sp);
+	returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
     }
 
-    if (win->_use_keypad != SP->_keypad_on)
-	_nc_keypad(win->_use_keypad);
+    if (win->_use_keypad != sp->_keypad_on)
+	_nc_keypad(sp, win->_use_keypad);
 
-    if (wgetch_should_refresh(win))
-	wrefresh(win);
+    recur_wrefresh(win);
 
-    if (!win->_notimeout && (win->_delay >= 0 || SP->_cbreak > 1)) {
+    if (!win->_notimeout && (win->_delay >= 0 || sp->_cbreak > 1)) {
 	if (head == -1) {	/* fifo is empty */
 	    int delay;
 	    int rc;
 
 	    TR(TRACE_IEVENT, ("timed delay in wgetch()"));
-	    if (SP->_cbreak > 1)
-		delay = (SP->_cbreak - 1) * 100;
+	    if (sp->_cbreak > 1)
+		delay = (sp->_cbreak - 1) * 100;
 	    else
 		delay = win->_delay;
 
@@ -313,16 +395,17 @@
 
 	    TR(TRACE_IEVENT, ("delay is %d milliseconds", delay));
 
-	    rc = check_mouse_activity(delay EVENTLIST_2nd(evl));
+	    rc = check_mouse_activity(sp, delay EVENTLIST_2nd(evl));
 
 #ifdef NCURSES_WGETCH_EVENTS
 	    if (rc & 4) {
 		*result = KEY_EVENT;
-		returnCode(OK);
+		returnCode(KEY_CODE_YES);
 	    }
 #endif
-	    if (!rc)
+	    if (!rc) {
 		returnCode(ERR);
+	    }
 	}
 	/* else go on to read data available */
     }
@@ -343,23 +426,23 @@
 	int rc;
 
 	do {
-	    ch = kgetch(EVENTLIST_1st(evl));
+	    ch = kgetch(sp EVENTLIST_2nd(evl));
 	    if (ch == KEY_MOUSE) {
 		++runcount;
-		if (SP->_mouse_inline(SP))
+		if (sp->_mouse_inline(sp))
 		    break;
 	    }
-	    if (SP->_maxclick < 0)
+	    if (sp->_maxclick < 0)
 		break;
 	} while
 	    (ch == KEY_MOUSE
-	     && (((rc = check_mouse_activity(SP->_maxclick
+	     && (((rc = check_mouse_activity(sp, sp->_maxclick
 					     EVENTLIST_2nd(evl))) != 0
 		  && !(rc & 4))
-		 || !SP->_mouse_parse(runcount)));
+		 || !sp->_mouse_parse(sp, runcount)));
 #ifdef NCURSES_WGETCH_EVENTS
 	if ((rc & 4) && !ch == KEY_EVENT) {
-	    ungetch(ch);
+	    _nc_ungetch(sp, ch);
 	    ch = KEY_EVENT;
 	}
 #endif
@@ -367,28 +450,28 @@
 #ifdef NCURSES_WGETCH_EVENTS
 	    /* mouse event sequence ended by an event, report event */
 	    if (ch == KEY_EVENT) {
-		ungetch(KEY_MOUSE);	/* FIXME This interrupts a gesture... */
+		_nc_ungetch(sp, KEY_MOUSE);	/* FIXME This interrupts a gesture... */
 	    } else
 #endif
 	    {
 		/* mouse event sequence ended by keystroke, store keystroke */
-		ungetch(ch);
+		_nc_ungetch(sp, ch);
 		ch = KEY_MOUSE;
 	    }
 	}
     } else {
 	if (head == -1)
-	    fifo_push(EVENTLIST_1st(evl));
-	ch = fifo_pull();
+	    fifo_push(sp EVENTLIST_2nd(evl));
+	ch = fifo_pull(sp);
     }
 
     if (ch == ERR) {
 #if USE_SIZECHANGE
-	if (SP->_sig_winch) {
-	    _nc_update_screensize();
+	if (_nc_handle_sigwinch(sp)) {
+	    _nc_update_screensize(sp);
 	    /* resizeterm can push KEY_RESIZE */
 	    if (cooked_key_in_fifo()) {
-		*result = fifo_pull();
+		*result = fifo_pull(sp);
 		returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
 	    }
 	}
@@ -414,7 +497,7 @@
      * However, we provide the same visual result as Solaris, moving the
      * cursor to the left.
      */
-    if (SP->_echo && !(win->_flags & _ISPAD)) {
+    if (sp->_echo && !(win->_flags & _ISPAD)) {
 	chtype backup = (ch == KEY_BACKSPACE) ? '\b' : ch;
 	if (backup < KEY_MIN)
 	    wechochar(win, backup);
@@ -423,7 +506,7 @@
     /*
      * Simulate ICRNL mode
      */
-    if ((ch == '\r') && SP->_nl)
+    if ((ch == '\r') && sp->_nl)
 	ch = '\n';
 
     /* Strip 8th-bit if so desired.  We do this only for characters that
@@ -435,7 +518,7 @@
 	if ((ch < KEY_MIN) && (ch & 0x80))
 	    ch &= 0x7f;
 
-    T(("wgetch returning : %s", _tracechar(ch)));
+    T(("wgetch returning : %s", _nc_tracechar(sp, ch)));
 
     *result = ch;
     returnCode(ch >= KEY_MIN ? KEY_CODE_YES : OK);
@@ -451,7 +534,7 @@
     T((T_CALLED("wgetch_events(%p,%p)"), win, evl));
     code = _nc_wgetch(win,
 		      &value,
-		      SP->_use_meta
+		      _nc_use_meta(win)
 		      EVENTLIST_2nd(evl));
     if (code != ERR)
 	code = value;
@@ -468,7 +551,7 @@
     T((T_CALLED("wgetch(%p)"), win));
     code = _nc_wgetch(win,
 		      &value,
-		      (SP ? SP->_use_meta : 0)
+		      _nc_use_meta(win)
 		      EVENTLIST_2nd((_nc_eventlist *) 0));
     if (code != ERR)
 	code = value;
@@ -491,21 +574,21 @@
 */
 
 static int
-kgetch(EVENTLIST_0th(_nc_eventlist * evl))
+kgetch(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
 {
-    struct tries *ptr;
+    TRIES *ptr;
     int ch = 0;
-    int timeleft = ESCDELAY;
+    int timeleft = GetEscdelay(sp);
 
     TR(TRACE_IEVENT, ("kgetch() called"));
 
-    ptr = SP->_keytry;
+    ptr = sp->_keytry;
 
     for (;;) {
-	if (cooked_key_in_fifo() && SP->_fifo[head] >= KEY_MIN) {
+	if (cooked_key_in_fifo() && sp->_fifo[head] >= KEY_MIN) {
 	    break;
 	} else if (!raw_key_in_fifo()) {
-	    ch = fifo_push(EVENTLIST_1st(evl));
+	    ch = fifo_push(sp EVENTLIST_2nd(evl));
 	    if (ch == ERR) {
 		peek = head;	/* the keys stay uninterpreted */
 		return ERR;
@@ -513,12 +596,12 @@
 #ifdef NCURSES_WGETCH_EVENTS
 	    else if (ch == KEY_EVENT) {
 		peek = head;	/* the keys stay uninterpreted */
-		return fifo_pull();	/* Remove KEY_EVENT from the queue */
+		return fifo_pull(sp);	/* Remove KEY_EVENT from the queue */
 	    }
 #endif
 	}
 
-	ch = fifo_peek();
+	ch = fifo_peek(sp);
 	if (ch >= KEY_MIN) {
 	    /* If not first in queue, somebody put this key there on purpose in
 	     * emergency.  Consider it higher priority than the unfinished
@@ -530,7 +613,7 @@
 	    return ch;
 	}
 
-	TR(TRACE_IEVENT, ("ch: %s", _tracechar((unsigned char) ch)));
+	TR(TRACE_IEVENT, ("ch: %s", _nc_tracechar(sp, (unsigned char) ch)));
 	while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
 	    ptr = ptr->sibling;
 
@@ -544,7 +627,7 @@
 	if (ptr->value != 0) {	/* sequence terminated */
 	    TR(TRACE_IEVENT, ("end of sequence"));
 	    if (peek == tail)
-		fifo_clear();
+		fifo_clear(sp);
 	    else
 		head = peek;
 	    return (ptr->value);
@@ -556,7 +639,7 @@
 	    int rc;
 
 	    TR(TRACE_IEVENT, ("waiting for rest of sequence"));
-	    rc = check_mouse_activity(timeleft EVENTLIST_2nd(evl));
+	    rc = check_mouse_activity(sp, timeleft EVENTLIST_2nd(evl));
 #ifdef NCURSES_WGETCH_EVENTS
 	    if (rc & 4) {
 		TR(TRACE_IEVENT, ("interrupted by a user event"));
@@ -571,7 +654,7 @@
 	    }
 	}
     }
-    ch = fifo_pull();
+    ch = fifo_pull(sp);
     peek = head;
     return ch;
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_getstr.c ncurses-5.6/ncurses/base/lib_getstr.c
--- ncurses-5.6.orig/ncurses/base/lib_getstr.c	2006-01-11 19:33:52.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_getstr.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,7 +41,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_getstr.c,v 1.25 2006/01/12 00:33:52 tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.26 2008/05/31 22:05:15 tom Exp $")
 
 /*
  * This wipes out the last character, no matter whether it was a tab, control
@@ -75,6 +75,7 @@
 		int maxlen,
 		EVENTLIST_1st(_nc_eventlist * evl))
 {
+    SCREEN *sp = _nc_screen_of(win);
     TTY buf;
     bool oldnl, oldecho, oldraw, oldcbreak;
     char erasec;
@@ -90,10 +91,10 @@
 
     _nc_get_tty_mode(&buf);
 
-    oldnl = SP->_nl;
-    oldecho = SP->_echo;
-    oldraw = SP->_raw;
-    oldcbreak = SP->_cbreak;
+    oldnl = sp->_nl;
+    oldecho = sp->_echo;
+    oldraw = sp->_raw;
+    oldcbreak = sp->_cbreak;
     nl();
     noecho();
     noraw();
@@ -187,10 +188,10 @@
     /* Restore with a single I/O call, to fix minor asymmetry between
      * raw/noraw, etc.
      */
-    SP->_nl = oldnl;
-    SP->_echo = oldecho;
-    SP->_raw = oldraw;
-    SP->_cbreak = oldcbreak;
+    sp->_nl = oldnl;
+    sp->_echo = oldecho;
+    sp->_raw = oldraw;
+    sp->_cbreak = oldcbreak;
 
     _nc_set_tty_mode(&buf);
 
diff -Naur ncurses-5.6.orig/ncurses/base/lib_initscr.c ncurses-5.6/ncurses/base/lib_initscr.c
--- ncurses-5.6.orig/ncurses/base/lib_initscr.c	2005-10-22 16:30:38.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_initscr.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -45,19 +45,22 @@
 #include <sys/termio.h>		/* needed for ISC */
 #endif
 
-MODULE_ID("$Id: lib_initscr.c,v 1.34 2005/10/22 20:30:38 tom Exp $")
+MODULE_ID("$Id: lib_initscr.c,v 1.37 2008/06/07 14:00:12 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
 initscr(void)
 {
-    static bool initialized = FALSE;
+    WINDOW *result;
+
     NCURSES_CONST char *name;
 
     START_TRACE();
     T((T_CALLED("initscr()")));
+
+    _nc_lock_global(curses);
     /* Portable applications must not call initscr() more than once */
-    if (!initialized) {
-	initialized = TRUE;
+    if (!_nc_globals.init_screen) {
+	_nc_globals.init_screen = TRUE;
 
 	if ((name = getenv("TERM")) == 0
 	    || *name == '\0')
@@ -87,5 +90,8 @@
 	/* def_shell_mode - done in newterm/_nc_setupscreen */
 	def_prog_mode();
     }
-    returnWin(stdscr);
+    result = stdscr;
+    _nc_unlock_global(curses);
+
+    returnWin(result);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_insch.c ncurses-5.6/ncurses/base/lib_insch.c
--- ncurses-5.6.orig/ncurses/base/lib_insch.c	2005-02-26 14:27:28.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_insch.c	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -43,7 +43,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_insch.c,v 1.24 2005/02/26 19:27:28 tom Exp $")
+MODULE_ID("$Id: lib_insch.c,v 1.25 2008/02/03 00:14:37 tom Exp $")
 
 /*
  * Insert the given character, updating the current location to simplify
@@ -95,7 +95,8 @@
 	} else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
 	    s = unctrl(ChCharOf(ch));
 	    while (*s != '\0') {
-		if ((code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s))) != OK)
+		code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
+		if (code != OK)
 		    break;
 		++s;
 	    }
@@ -107,8 +108,23 @@
 	     */
 	    SetChar2(wch, ch);
 	    wch = _nc_render(win, wch);
-	    if (_nc_build_wch(win, &wch) >= 0)
+	    count = _nc_build_wch(win, &wch);
+	    if (count > 0) {
 		code = wins_wch(win, &wch);
+	    } else if (count == -1) {
+		/* handle EILSEQ */
+		if (is8bits(ch)) {
+		    s = unctrl(ChCharOf(ch));
+		    while (*s != '\0') {
+			code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
+			if (code != OK)
+			    break;
+			++s;
+		    }
+		} else {
+		    code = ERR;
+		}
+	    }
 	}
 #endif
 	break;
diff -Naur ncurses-5.6.orig/ncurses/base/lib_instr.c ncurses-5.6/ncurses/base/lib_instr.c
--- ncurses-5.6.orig/ncurses/base/lib_instr.c	2005-11-19 20:38:03.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_instr.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_instr.c,v 1.15 2005/11/20 01:38:03 tom Exp $")
+MODULE_ID("$Id: lib_instr.c,v 1.16 2007/07/21 20:18:10 tom Exp $")
 
 NCURSES_EXPORT(int)
 winnstr(WINDOW *win, char *str, int n)
@@ -81,7 +81,7 @@
 			n3 = wcstombs(0, wch, 0);
 			if (isEILSEQ(n3) || (n3 == 0)) {
 			    ;
-			} else if ((int) (n3 + i) >= n) {
+			} else if ((int) (n3 + i) > n) {
 			    done = TRUE;
 			} else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
 			    done = TRUE;
@@ -102,9 +102,7 @@
 	    str[i++] = (char) CharOf(win->_line[row].text[col]);
 #endif
 	    if (++col > win->_maxx) {
-		col = 0;
-		if (++row > win->_maxy)
-		    break;
+		break;
 	    }
 	}
     }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_mouse.c ncurses-5.6/ncurses/base/lib_mouse.c
--- ncurses-5.6.orig/ncurses/base/lib_mouse.c	2006-11-25 17:30:28.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_mouse.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -79,7 +79,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_mouse.c,v 1.85 2006/11/25 22:30:28 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.94 2008/05/31 20:30:10 tom Exp $")
 
 #include <term.h>
 #include <tic.h>
@@ -154,34 +154,34 @@
 
 #endif				/* USE_GPM_SUPPORT */
 
-static bool _nc_mouse_parse(int);
+static bool _nc_mouse_parse(SCREEN *, int);
 static void _nc_mouse_resume(SCREEN *);
 static void _nc_mouse_wrap(SCREEN *);
 
 /* maintain a circular list of mouse events */
 
 #undef  NEXT
-#define NEXT(ep)	((ep == SP->_mouse_events + EV_MAX - 1) \
-			 ? SP->_mouse_events \
+#define NEXT(ep)	((ep == sp->_mouse_events + EV_MAX - 1) \
+			 ? sp->_mouse_events \
 			 : ep + 1)
 
 #undef  PREV
-#define PREV(ep)	((ep == SP->_mouse_events) \
-			 ? SP->_mouse_events + EV_MAX - 1 \
+#define PREV(ep)	((ep == sp->_mouse_events) \
+			 ? sp->_mouse_events + EV_MAX - 1 \
 			 : ep - 1)
 
 #ifdef TRACE
 static void
-_trace_slot(const char *tag)
+_trace_slot(SCREEN *sp, const char *tag)
 {
     MEVENT *ep;
 
     _tracef(tag);
 
-    for (ep = SP->_mouse_events; ep < SP->_mouse_events + EV_MAX; ep++)
+    for (ep = sp->_mouse_events; ep < sp->_mouse_events + EV_MAX; ep++)
 	_tracef("mouse event queue slot %ld = %s",
-		(long) (ep - SP->_mouse_events),
-		_tracemouse(ep));
+		(long) (ep - sp->_mouse_events),
+		_nc_tracemouse(sp, ep));
 }
 #endif
 
@@ -193,7 +193,7 @@
 #  define M_FD(sp) sp->_mouse_fd
 
 static void
-write_event(int down, int button, int x, int y)
+write_event(SCREEN *sp, int down, int button, int x, int y)
 {
     char buf[6];
     unsigned long ignore;
@@ -202,12 +202,13 @@
     buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40);
     buf[4] = ' ' + x - LEFT_COL + 1;
     buf[5] = ' ' + y - TOP_ROW + 1;
-    DosWrite(SP->_emxmouse_wfd, buf, 6, &ignore);
+    DosWrite(sp->_emxmouse_wfd, buf, 6, &ignore);
 }
 
 static void
-mouse_server(unsigned long ignored GCC_UNUSED)
+mouse_server(unsigned long param)
 {
+    SCREEN *sp = (SCREEN *) param;
     unsigned short fWait = MOU_WAIT;
     /* NOPTRRECT mourt = { 0,0,24,79 }; */
     MOUEVENTINFO mouev;
@@ -234,7 +235,7 @@
 		    sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
 		    break;
 		}
-		if (!SP->_emxmouse_activated)
+		if (!sp->_emxmouse_activated)
 		    goto finish;
 
 		/*
@@ -246,13 +247,13 @@
 		 */
 		if ((mouev.fs ^ oldstate) & MOUSE_BN1_DOWN)
 		    write_event(mouev.fs & MOUSE_BN1_DOWN,
-				SP->_emxmouse_buttons[1], mouev.col, mouev.row);
+				sp->_emxmouse_buttons[1], mouev.col, mouev.row);
 		if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN)
 		    write_event(mouev.fs & MOUSE_BN2_DOWN,
-				SP->_emxmouse_buttons[3], mouev.col, mouev.row);
+				sp->_emxmouse_buttons[3], mouev.col, mouev.row);
 		if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN)
 		    write_event(mouev.fs & MOUSE_BN3_DOWN,
-				SP->_emxmouse_buttons[2], mouev.col, mouev.row);
+				sp->_emxmouse_buttons[2], mouev.col, mouev.row);
 
 	      finish:
 		oldstate = mouev.fs;
@@ -271,81 +272,87 @@
 
 #if USE_SYSMOUSE
 static void
-handle_sysmouse(int sig GCC_UNUSED)
+sysmouse_server(SCREEN *sp)
 {
     struct mouse_info the_mouse;
     MEVENT *work;
 
     the_mouse.operation = MOUSE_GETINFO;
-    if (SP != 0
-	&& SP->_mouse_fd >= 0
-	&& SP->_sysmouse_tail < FIFO_SIZE
-	&& ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
-
-	if (SP->_sysmouse_head > SP->_sysmouse_tail) {
-	    SP->_sysmouse_tail = 0;
-	    SP->_sysmouse_head = 0;
+    if (sp != 0
+	&& sp->_mouse_fd >= 0
+	&& sp->_sysmouse_tail < FIFO_SIZE
+	&& ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
+
+	if (sp->_sysmouse_head > sp->_sysmouse_tail) {
+	    sp->_sysmouse_tail = 0;
+	    sp->_sysmouse_head = 0;
 	}
-	work = &(SP->_sysmouse_fifo[SP->_sysmouse_tail]);
+	work = &(sp->_sysmouse_fifo[sp->_sysmouse_tail]);
 	memset(work, 0, sizeof(*work));
 	work->id = NORMAL_EVENT;	/* there's only one mouse... */
 
-	SP->_sysmouse_old_buttons = SP->_sysmouse_new_buttons;
-	SP->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7;
+	sp->_sysmouse_old_buttons = sp->_sysmouse_new_buttons;
+	sp->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7;
 
-	if (SP->_sysmouse_new_buttons) {
-	    if (SP->_sysmouse_new_buttons & 1)
+	if (sp->_sysmouse_new_buttons) {
+	    if (sp->_sysmouse_new_buttons & 1)
 		work->bstate |= BUTTON1_PRESSED;
-	    if (SP->_sysmouse_new_buttons & 2)
+	    if (sp->_sysmouse_new_buttons & 2)
 		work->bstate |= BUTTON2_PRESSED;
-	    if (SP->_sysmouse_new_buttons & 4)
+	    if (sp->_sysmouse_new_buttons & 4)
 		work->bstate |= BUTTON3_PRESSED;
 	} else {
-	    if (SP->_sysmouse_old_buttons & 1)
+	    if (sp->_sysmouse_old_buttons & 1)
 		work->bstate |= BUTTON1_RELEASED;
-	    if (SP->_sysmouse_old_buttons & 2)
+	    if (sp->_sysmouse_old_buttons & 2)
 		work->bstate |= BUTTON2_RELEASED;
-	    if (SP->_sysmouse_old_buttons & 4)
+	    if (sp->_sysmouse_old_buttons & 4)
 		work->bstate |= BUTTON3_RELEASED;
 	}
 
 	/* for cosmetic bug in syscons.c on FreeBSD 3.[34] */
 	the_mouse.operation = MOUSE_HIDE;
-	ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
+	ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse);
 	the_mouse.operation = MOUSE_SHOW;
-	ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
+	ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse);
 
 	/*
 	 * We're only interested if the button is pressed or released.
 	 * FIXME: implement continuous event-tracking.
 	 */
-	if (SP->_sysmouse_new_buttons != SP->_sysmouse_old_buttons) {
-	    SP->_sysmouse_tail += 1;
+	if (sp->_sysmouse_new_buttons != sp->_sysmouse_old_buttons) {
+	    sp->_sysmouse_tail += 1;
 	}
-	work->x = the_mouse.u.data.x / SP->_sysmouse_char_width;
-	work->y = the_mouse.u.data.y / SP->_sysmouse_char_height;
+	work->x = the_mouse.u.data.x / sp->_sysmouse_char_width;
+	work->y = the_mouse.u.data.y / sp->_sysmouse_char_height;
     }
 }
+
+static void
+handle_sysmouse(int sig GCC_UNUSED)
+{
+    sysmouse_server(SP);
+}
 #endif /* USE_SYSMOUSE */
 
 static void
-init_xterm_mouse(void)
+init_xterm_mouse(SCREEN *sp)
 {
-    SP->_mouse_type = M_XTERM;
-    SP->_mouse_xtermcap = tigetstr("XM");
-    if (!VALID_STRING(SP->_mouse_xtermcap))
-	SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
+    sp->_mouse_type = M_XTERM;
+    sp->_mouse_xtermcap = tigetstr("XM");
+    if (!VALID_STRING(sp->_mouse_xtermcap))
+	sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
 }
 
 static void
-enable_xterm_mouse(int enable)
+enable_xterm_mouse(SCREEN *sp, int enable)
 {
 #if USE_EMX_MOUSE
-    SP->_emxmouse_activated = enable;
+    sp->_emxmouse_activated = enable;
 #else
-    putp(TPARM_1(SP->_mouse_xtermcap, enable));
+    putp(TPARM_1(sp->_mouse_xtermcap, enable));
 #endif
-    SP->_mouse_active = enable;
+    sp->_mouse_active = enable;
 }
 
 #if USE_GPM_SUPPORT
@@ -366,19 +373,19 @@
 }
 
 static bool
-enable_gpm_mouse(int enable)
+enable_gpm_mouse(SCREEN *sp, int enable)
 {
     bool result;
 
     T((T_CALLED("enable_gpm_mouse(%d)"), enable));
 
-    if (enable && !SP->_mouse_active) {
+    if (enable && !sp->_mouse_active) {
 	/* GPM: initialize connection to gpm server */
-	SP->_mouse_gpm_connect.eventMask = GPM_DOWN | GPM_UP;
-	SP->_mouse_gpm_connect.defaultMask =
-	    ~(SP->_mouse_gpm_connect.eventMask | GPM_HARD);
-	SP->_mouse_gpm_connect.minMod = 0;
-	SP->_mouse_gpm_connect.maxMod =
+	sp->_mouse_gpm_connect.eventMask = GPM_DOWN | GPM_UP;
+	sp->_mouse_gpm_connect.defaultMask =
+	    ~(sp->_mouse_gpm_connect.eventMask | GPM_HARD);
+	sp->_mouse_gpm_connect.minMod = 0;
+	sp->_mouse_gpm_connect.maxMod =
 	    (unsigned short) (~((1 << KG_SHIFT) |
 				(1 << KG_SHIFTL) |
 				(1 << KG_SHIFTR)));
@@ -387,14 +394,14 @@
 	 * The former is recognized by wscons (SunOS), and the latter by
 	 * xterm.  Those will not show up in ncurses' traces.
 	 */
-	result = (my_Gpm_Open(&SP->_mouse_gpm_connect, 0) >= 0);
-	SP->_mouse_active = result;
+	result = (my_Gpm_Open(&sp->_mouse_gpm_connect, 0) >= 0);
+	sp->_mouse_active = result;
 	T(("GPM open %s", result ? "succeeded" : "failed"));
     } else {
-	if (!enable && SP->_mouse_active) {
+	if (!enable && sp->_mouse_active) {
 	    /* GPM: close connection to gpm server */
 	    my_Gpm_Close();
-	    SP->_mouse_active = FALSE;
+	    sp->_mouse_active = FALSE;
 	    T(("GPM closed"));
 	}
 	result = FALSE;
@@ -403,17 +410,17 @@
 }
 #endif /* USE_GPM_SUPPORT */
 
+#define xterm_kmous "\033[M"
+
 static void
-initialize_mousetype(void)
+initialize_mousetype(SCREEN *sp)
 {
-    static const char *xterm_kmous = "\033[M";
-
     T((T_CALLED("initialize_mousetype()")));
 
     /* Try gpm first, because gpm may be configured to run in xterm */
 #if USE_GPM_SUPPORT
     if (allow_gpm_mouse()) {
-	if (!SP->_mouse_gpm_loaded) {
+	if (!sp->_mouse_gpm_loaded) {
 #ifdef HAVE_LIBDL
 	    void *obj;
 
@@ -425,13 +432,13 @@
 		    T(("GPM initialization failed: %s", dlerror()));
 		    dlclose(obj);
 		} else {
-		    SP->_mouse_gpm_found = TRUE;
+		    sp->_mouse_gpm_found = TRUE;
 		}
 	    }
 #else /* !HAVE_LIBDL */
-	    SP->_mouse_gpm_found = TRUE;
+	    sp->_mouse_gpm_found = TRUE;
 #endif
-	    SP->_mouse_gpm_loaded = TRUE;
+	    sp->_mouse_gpm_loaded = TRUE;
 	}
 
 	/*
@@ -439,10 +446,10 @@
 	 * maintain our notion of whether the mouse connection is active
 	 * without testing the file-descriptor.
 	 */
-	if (SP->_mouse_gpm_found && enable_gpm_mouse(TRUE)) {
-	    SP->_mouse_type = M_GPM;
-	    SP->_mouse_fd = *(my_gpm_fd);
-	    T(("GPM mouse_fd %d", SP->_mouse_fd));
+	if (sp->_mouse_gpm_found && enable_gpm_mouse(sp, TRUE)) {
+	    sp->_mouse_type = M_GPM;
+	    sp->_mouse_fd = *(my_gpm_fd);
+	    T(("GPM mouse_fd %d", sp->_mouse_fd));
 	    returnVoid;
 	}
     }
@@ -450,7 +457,7 @@
 
     /* OS/2 VIO */
 #if USE_EMX_MOUSE
-    if (!SP->_emxmouse_thread
+    if (!sp->_emxmouse_thread
 	&& strstr(cur_term->type.term_names, "xterm") == 0
 	&& key_mouse) {
 	int handles[2];
@@ -461,32 +468,32 @@
 	} else {
 	    int rc;
 
-	    if (!SP->_emxmouse_buttons[0]) {
+	    if (!sp->_emxmouse_buttons[0]) {
 		char *s = getenv("MOUSE_BUTTONS_123");
 
-		SP->_emxmouse_buttons[0] = 1;
+		sp->_emxmouse_buttons[0] = 1;
 		if (s && strlen(s) >= 3) {
-		    SP->_emxmouse_buttons[1] = s[0] - '0';
-		    SP->_emxmouse_buttons[2] = s[1] - '0';
-		    SP->_emxmouse_buttons[3] = s[2] - '0';
+		    sp->_emxmouse_buttons[1] = s[0] - '0';
+		    sp->_emxmouse_buttons[2] = s[1] - '0';
+		    sp->_emxmouse_buttons[3] = s[2] - '0';
 		} else {
-		    SP->_emxmouse_buttons[1] = 1;
-		    SP->_emxmouse_buttons[2] = 3;
-		    SP->_emxmouse_buttons[3] = 2;
+		    sp->_emxmouse_buttons[1] = 1;
+		    sp->_emxmouse_buttons[2] = 3;
+		    sp->_emxmouse_buttons[3] = 2;
 		}
 	    }
-	    SP->_emxmouse_wfd = handles[1];
-	    M_FD(SP) = handles[0];
+	    sp->_emxmouse_wfd = handles[1];
+	    M_FD(sp) = handles[0];
 	    /* Needed? */
 	    setmode(handles[0], O_BINARY);
 	    setmode(handles[1], O_BINARY);
 	    /* Do not use CRT functions, we may single-threaded. */
-	    rc = DosCreateThread((unsigned long *) &SP->_emxmouse_thread,
-				 mouse_server, 0, 0, 8192);
+	    rc = DosCreateThread((unsigned long *) &sp->_emxmouse_thread,
+				 mouse_server, sp, 0, 8192);
 	    if (rc) {
 		printf("mouse thread error %d=%#x", rc, rc);
 	    } else {
-		SP->_mouse_type = M_XTERM;
+		sp->_mouse_type = M_XTERM;
 	    }
 	    returnVoid;
 	}
@@ -498,14 +505,14 @@
 	struct mouse_info the_mouse;
 	char *the_device = 0;
 
-	if (isatty(SP->_ifd))
-	    the_device = ttyname(SP->_ifd);
+	if (isatty(sp->_ifd))
+	    the_device = ttyname(sp->_ifd);
 	if (the_device == 0)
 	    the_device = "/dev/tty";
 
-	SP->_mouse_fd = open(the_device, O_RDWR);
+	sp->_mouse_fd = open(the_device, O_RDWR);
 
-	if (SP->_mouse_fd >= 0) {
+	if (sp->_mouse_fd >= 0) {
 	    /*
 	     * sysmouse does not have a usable user interface for obtaining
 	     * mouse events.  The logical way to proceed (reading data on a
@@ -522,10 +529,10 @@
 	    the_mouse.operation = MOUSE_MODE;
 	    the_mouse.u.mode.mode = 0;
 	    the_mouse.u.mode.signal = SIGUSR2;
-	    if (ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
+	    if (ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
 		signal(SIGUSR2, handle_sysmouse);
 		the_mouse.operation = MOUSE_SHOW;
-		ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
+		ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse);
 
 #if defined(FBIO_MODEINFO) || defined(CONS_MODEINFO)	/* FreeBSD > 2.x */
 		{
@@ -535,23 +542,23 @@
 #endif /* FBIO_GETMODE */
 		    video_info_t the_video;
 
-		    if (ioctl(SP->_mouse_fd,
+		    if (ioctl(sp->_mouse_fd,
 			      FBIO_GETMODE,
 			      &the_video.vi_mode) != -1
-			&& ioctl(SP->_mouse_fd,
+			&& ioctl(sp->_mouse_fd,
 				 FBIO_MODEINFO,
 				 &the_video) != -1) {
-			SP->_sysmouse_char_width = the_video.vi_cwidth;
-			SP->_sysmouse_char_height = the_video.vi_cheight;
+			sp->_sysmouse_char_width = the_video.vi_cwidth;
+			sp->_sysmouse_char_height = the_video.vi_cheight;
 		    }
 		}
 #endif /* defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) */
 
-		if (SP->_sysmouse_char_width <= 0)
-		    SP->_sysmouse_char_width = 8;
-		if (SP->_sysmouse_char_height <= 0)
-		    SP->_sysmouse_char_height = 16;
-		SP->_mouse_type = M_SYSMOUSE;
+		if (sp->_sysmouse_char_width <= 0)
+		    sp->_sysmouse_char_width = 8;
+		if (sp->_sysmouse_char_height <= 0)
+		    sp->_sysmouse_char_height = 16;
+		sp->_mouse_type = M_SYSMOUSE;
 		returnVoid;
 	    }
 	}
@@ -562,37 +569,37 @@
     if (key_mouse != 0) {
 	if (!strcmp(key_mouse, xterm_kmous)
 	    || strstr(cur_term->type.term_names, "xterm") != 0) {
-	    init_xterm_mouse();
+	    init_xterm_mouse(sp);
 	}
     } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
-	(void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
-	init_xterm_mouse();
+	if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK)
+	    init_xterm_mouse(sp);
     }
     returnVoid;
 }
 
 static bool
-_nc_mouse_init(void)
+_nc_mouse_init(SCREEN *sp)
 /* initialize the mouse */
 {
     bool result = FALSE;
     int i;
 
-    if (SP != 0) {
-	if (!SP->_mouse_initialized) {
-	    SP->_mouse_initialized = TRUE;
+    if (sp != 0) {
+	if (!sp->_mouse_initialized) {
+	    sp->_mouse_initialized = TRUE;
 
 	    TR(MY_TRACE, ("_nc_mouse_init() called"));
 
-	    SP->_mouse_eventp = SP->_mouse_events;
+	    sp->_mouse_eventp = sp->_mouse_events;
 	    for (i = 0; i < EV_MAX; i++)
-		SP->_mouse_events[i].id = INVALID_EVENT;
+		sp->_mouse_events[i].id = INVALID_EVENT;
 
-	    initialize_mousetype();
+	    initialize_mousetype(sp);
 
-	    T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type));
+	    T(("_nc_mouse_init() set mousetype to %d", sp->_mouse_type));
 	}
-	result = SP->_mouse_initialized;
+	result = sp->_mouse_initialized;
     }
     return result;
 }
@@ -604,12 +611,12 @@
 static bool
 _nc_mouse_event(SCREEN *sp GCC_UNUSED)
 {
-    MEVENT *eventp = SP->_mouse_eventp;
+    MEVENT *eventp = sp->_mouse_eventp;
     bool result = FALSE;
 
     (void) eventp;
 
-    switch (SP->_mouse_type) {
+    switch (sp->_mouse_type) {
     case M_XTERM:
 	/* xterm: never have to query, mouse events are in the keyboard stream */
 #if USE_EMX_MOUSE
@@ -666,7 +673,7 @@
 		eventp->z = 0;
 
 		/* bump the next-free pointer into the circular list */
-		SP->_mouse_eventp = eventp = NEXT(eventp);
+		sp->_mouse_eventp = eventp = NEXT(eventp);
 		result = TRUE;
 	    }
 	}
@@ -675,22 +682,22 @@
 
 #if USE_SYSMOUSE
     case M_SYSMOUSE:
-	if (SP->_sysmouse_head < SP->_sysmouse_tail) {
-	    *eventp = SP->_sysmouse_fifo[SP->_sysmouse_head];
+	if (sp->_sysmouse_head < sp->_sysmouse_tail) {
+	    *eventp = sp->_sysmouse_fifo[sp->_sysmouse_head];
 
 	    /*
 	     * Point the fifo-head to the next possible location.  If there
 	     * are none, reset the indices.  This may be interrupted by the
 	     * signal handler, doing essentially the same reset.
 	     */
-	    SP->_sysmouse_head += 1;
-	    if (SP->_sysmouse_head == SP->_sysmouse_tail) {
-		SP->_sysmouse_tail = 0;
-		SP->_sysmouse_head = 0;
+	    sp->_sysmouse_head += 1;
+	    if (sp->_sysmouse_head == sp->_sysmouse_tail) {
+		sp->_sysmouse_tail = 0;
+		sp->_sysmouse_head = 0;
 	    }
 
 	    /* bump the next-free pointer into the circular list */
-	    SP->_mouse_eventp = eventp = NEXT(eventp);
+	    sp->_mouse_eventp = eventp = NEXT(eventp);
 	    result = TRUE;
 	}
 	break;
@@ -709,11 +716,11 @@
 {
     int b;
     bool result = FALSE;
-    MEVENT *eventp = SP->_mouse_eventp;
+    MEVENT *eventp = sp->_mouse_eventp;
 
     TR(MY_TRACE, ("_nc_mouse_inline() called"));
 
-    if (SP->_mouse_type == M_XTERM) {
+    if (sp->_mouse_type == M_XTERM) {
 	unsigned char kbuf[4];
 	mmask_t prev;
 	size_t grabbed;
@@ -847,11 +854,11 @@
 	eventp->y = (kbuf[2] - ' ') - 1;
 	TR(MY_TRACE,
 	   ("_nc_mouse_inline: primitive mouse-event %s has slot %ld",
-	    _tracemouse(eventp),
-	    (long) (eventp - SP->_mouse_events)));
+	    _nc_tracemouse(sp, eventp),
+	    (long) (eventp - sp->_mouse_events)));
 
 	/* bump the next-free pointer into the circular list */
-	SP->_mouse_eventp = NEXT(eventp);
+	sp->_mouse_eventp = NEXT(eventp);
 #if 0				/* this return would be needed for QNX's mods to lib_getch.c */
 	return (TRUE);
 #endif
@@ -861,36 +868,36 @@
 }
 
 static void
-mouse_activate(bool on)
+mouse_activate(SCREEN *sp, bool on)
 {
-    if (!on && !SP->_mouse_initialized)
+    if (!on && !sp->_mouse_initialized)
 	return;
 
-    if (!_nc_mouse_init())
+    if (!_nc_mouse_init(sp))
 	return;
 
     if (on) {
 
-	switch (SP->_mouse_type) {
+	switch (sp->_mouse_type) {
 	case M_XTERM:
 #if NCURSES_EXT_FUNCS
 	    keyok(KEY_MOUSE, on);
 #endif
 	    TPUTS_TRACE("xterm mouse initialization");
-	    enable_xterm_mouse(1);
+	    enable_xterm_mouse(sp, 1);
 	    break;
 #if USE_GPM_SUPPORT
 	case M_GPM:
-	    if (enable_gpm_mouse(1)) {
-		SP->_mouse_fd = *(my_gpm_fd);
-		T(("GPM mouse_fd %d", SP->_mouse_fd));
+	    if (enable_gpm_mouse(sp, 1)) {
+		sp->_mouse_fd = *(my_gpm_fd);
+		T(("GPM mouse_fd %d", sp->_mouse_fd));
 	    }
 	    break;
 #endif
 #if USE_SYSMOUSE
 	case M_SYSMOUSE:
 	    signal(SIGUSR2, handle_sysmouse);
-	    SP->_mouse_active = TRUE;
+	    sp->_mouse_active = TRUE;
 	    break;
 #endif
 	case M_NONE:
@@ -899,27 +906,27 @@
 	/* Make runtime binding to cut down on object size of applications that
 	 * do not use the mouse (e.g., 'clear').
 	 */
-	SP->_mouse_event = _nc_mouse_event;
-	SP->_mouse_inline = _nc_mouse_inline;
-	SP->_mouse_parse = _nc_mouse_parse;
-	SP->_mouse_resume = _nc_mouse_resume;
-	SP->_mouse_wrap = _nc_mouse_wrap;
+	sp->_mouse_event = _nc_mouse_event;
+	sp->_mouse_inline = _nc_mouse_inline;
+	sp->_mouse_parse = _nc_mouse_parse;
+	sp->_mouse_resume = _nc_mouse_resume;
+	sp->_mouse_wrap = _nc_mouse_wrap;
     } else {
 
-	switch (SP->_mouse_type) {
+	switch (sp->_mouse_type) {
 	case M_XTERM:
 	    TPUTS_TRACE("xterm mouse deinitialization");
-	    enable_xterm_mouse(0);
+	    enable_xterm_mouse(sp, 0);
 	    break;
 #if USE_GPM_SUPPORT
 	case M_GPM:
-	    enable_gpm_mouse(0);
+	    enable_gpm_mouse(sp, 0);
 	    break;
 #endif
 #if USE_SYSMOUSE
 	case M_SYSMOUSE:
 	    signal(SIGUSR2, SIG_IGN);
-	    SP->_mouse_active = FALSE;
+	    sp->_mouse_active = FALSE;
 	    break;
 #endif
 	case M_NONE:
@@ -936,10 +943,10 @@
  **************************************************************************/
 
 static bool
-_nc_mouse_parse(int runcount)
+_nc_mouse_parse(SCREEN *sp, int runcount)
 /* parse a run of atomic mouse events into a gesture */
 {
-    MEVENT *eventp = SP->_mouse_eventp;
+    MEVENT *eventp = sp->_mouse_eventp;
     MEVENT *ep, *runp, *next, *prev = PREV(eventp);
     int n;
     int b;
@@ -971,10 +978,10 @@
     if (runcount == 1) {
 	TR(MY_TRACE,
 	   ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
-	    _tracemouse(prev),
-	    (long) (prev - SP->_mouse_events)));
+	    _nc_tracemouse(sp, prev),
+	    (long) (prev - sp->_mouse_events)));
 	return (prev->id >= NORMAL_EVENT)
-	    ? ((prev->bstate & SP->_mouse_mask) ? TRUE : FALSE)
+	    ? ((prev->bstate & sp->_mouse_mask) ? TRUE : FALSE)
 	    : FALSE;
     }
 
@@ -985,12 +992,13 @@
     }
 
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT) {
-	_trace_slot("before mouse press/release merge:");
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_trace_slot(sp, "before mouse press/release merge:");
 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-		(long) (runp - SP->_mouse_events),
-		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+		(long) (runp - sp->_mouse_events),
+		(long) ((eventp - sp->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
 		runcount);
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
@@ -1013,7 +1021,7 @@
 #endif
 		) {
 		for (b = 1; b <= MAX_BUTTONS; ++b) {
-		    if ((SP->_mouse_mask & MASK_CLICK(b))
+		    if ((sp->_mouse_mask & MASK_CLICK(b))
 			&& (ep->bstate & MASK_PRESS(b))) {
 			ep->bstate &= ~MASK_PRESS(b);
 			ep->bstate |= MASK_CLICK(b);
@@ -1028,12 +1036,13 @@
 	(merge);
 
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT) {
-	_trace_slot("before mouse click merge:");
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_trace_slot(sp, "before mouse click merge:");
 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-		(long) (runp - SP->_mouse_events),
-		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+		(long) (runp - sp->_mouse_events),
+		(long) ((eventp - sp->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
 		runcount);
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
@@ -1069,7 +1078,7 @@
 		if ((ep->bstate & BUTTON_CLICKED)
 		    && (follower->bstate & BUTTON_CLICKED)) {
 		    for (b = 1; b <= MAX_BUTTONS; ++b) {
-			if ((SP->_mouse_mask & MASK_DOUBLE_CLICK(b))
+			if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
 			    && (follower->bstate & MASK_CLICK(b))) {
 			    follower->bstate &= ~MASK_CLICK(b);
 			    follower->bstate |= MASK_DOUBLE_CLICK(b);
@@ -1084,7 +1093,7 @@
 		if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
 		    && (follower->bstate & BUTTON_CLICKED)) {
 		    for (b = 1; b <= MAX_BUTTONS; ++b) {
-			if ((SP->_mouse_mask & MASK_TRIPLE_CLICK(b))
+			if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
 			    && (follower->bstate & MASK_CLICK(b))) {
 			    follower->bstate &= ~MASK_CLICK(b);
 			    follower->bstate |= MASK_TRIPLE_CLICK(b);
@@ -1099,12 +1108,13 @@
 	(merge);
 
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT) {
-	_trace_slot("before mouse event queue compaction:");
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_trace_slot(sp, "before mouse event queue compaction:");
 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-		(long) (runp - SP->_mouse_events),
-		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+		(long) (runp - sp->_mouse_events),
+		(long) ((eventp - sp->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
 		runcount);
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
@@ -1113,23 +1123,24 @@
      * don't match the current event mask.
      */
     for (; runcount; prev = PREV(eventp), runcount--)
-	if (prev->id == INVALID_EVENT || !(prev->bstate & SP->_mouse_mask)) {
-	    SP->_mouse_eventp = eventp = prev;
+	if (prev->id == INVALID_EVENT || !(prev->bstate & sp->_mouse_mask)) {
+	    sp->_mouse_eventp = eventp = prev;
 	}
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT) {
-	_trace_slot("after mouse event queue compaction:");
+    if (USE_TRACEF(TRACE_IEVENT)) {
+	_trace_slot(sp, "after mouse event queue compaction:");
 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-		(long) (runp - SP->_mouse_events),
-		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+		(long) (runp - sp->_mouse_events),
+		(long) ((eventp - sp->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
 		runcount);
+	_nc_unlock_global(tracef);
     }
     for (ep = runp; ep != eventp; ep = NEXT(ep))
 	if (ep->id != INVALID_EVENT)
 	    TR(MY_TRACE,
 	       ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
-		_tracemouse(ep),
-		(long) (ep - SP->_mouse_events)));
+		_nc_tracemouse(sp, ep),
+		(long) (ep - sp->_mouse_events)));
 #endif /* TRACE */
 
     /* after all this, do we have a valid event? */
@@ -1137,26 +1148,26 @@
 }
 
 static void
-_nc_mouse_wrap(SCREEN *sp GCC_UNUSED)
+_nc_mouse_wrap(SCREEN *sp)
 /* release mouse -- called by endwin() before shellout/exit */
 {
     TR(MY_TRACE, ("_nc_mouse_wrap() called"));
 
-    switch (SP->_mouse_type) {
+    switch (sp->_mouse_type) {
     case M_XTERM:
-	if (SP->_mouse_mask)
-	    mouse_activate(FALSE);
+	if (sp->_mouse_mask)
+	    mouse_activate(sp, FALSE);
 	break;
 #if USE_GPM_SUPPORT
 	/* GPM: pass all mouse events to next client */
     case M_GPM:
-	if (SP->_mouse_mask)
-	    mouse_activate(FALSE);
+	if (sp->_mouse_mask)
+	    mouse_activate(sp, FALSE);
 	break;
 #endif
 #if USE_SYSMOUSE
     case M_SYSMOUSE:
-	mouse_activate(FALSE);
+	mouse_activate(sp, FALSE);
 	break;
 #endif
     case M_NONE:
@@ -1165,29 +1176,29 @@
 }
 
 static void
-_nc_mouse_resume(SCREEN *sp GCC_UNUSED)
+_nc_mouse_resume(SCREEN *sp)
 /* re-connect to mouse -- called by doupdate() after shellout */
 {
     TR(MY_TRACE, ("_nc_mouse_resume() called"));
 
-    switch (SP->_mouse_type) {
+    switch (sp->_mouse_type) {
     case M_XTERM:
 	/* xterm: re-enable reporting */
-	if (SP->_mouse_mask)
-	    mouse_activate(TRUE);
+	if (sp->_mouse_mask)
+	    mouse_activate(sp, TRUE);
 	break;
 
 #if USE_GPM_SUPPORT
     case M_GPM:
 	/* GPM: reclaim our event set */
-	if (SP->_mouse_mask)
-	    mouse_activate(TRUE);
+	if (sp->_mouse_mask)
+	    mouse_activate(sp, TRUE);
 	break;
 #endif
 
 #if USE_SYSMOUSE
     case M_SYSMOUSE:
-	mouse_activate(TRUE);
+	mouse_activate(sp, TRUE);
 	break;
 #endif
     case M_NONE:
@@ -1201,14 +1212,13 @@
  *
  **************************************************************************/
 
-NCURSES_EXPORT(int)
-getmouse(MEVENT * aevent)
-/* grab a copy of the current mouse event */
+static int
+_nc_getmouse(SCREEN *sp, MEVENT * aevent)
 {
     T((T_CALLED("getmouse(%p)"), aevent));
 
-    if ((aevent != 0) && (SP != 0) && (SP->_mouse_type != M_NONE)) {
-	MEVENT *eventp = SP->_mouse_eventp;
+    if ((aevent != 0) && (sp != 0) && (sp->_mouse_type != M_NONE)) {
+	MEVENT *eventp = sp->_mouse_eventp;
 	/* compute the current-event pointer */
 	MEVENT *prev = PREV(eventp);
 
@@ -1216,8 +1226,8 @@
 	*aevent = *prev;
 
 	TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld",
-			  _tracemouse(prev),
-			  (long) (prev - SP->_mouse_events)));
+			  _nc_tracemouse(sp, prev),
+			  (long) (prev - sp->_mouse_events)));
 
 	prev->id = INVALID_EVENT;	/* so the queue slot becomes free */
 	returnCode(OK);
@@ -1225,29 +1235,42 @@
     returnCode(ERR);
 }
 
+/* grab a copy of the current mouse event */
 NCURSES_EXPORT(int)
-ungetmouse(MEVENT * aevent)
-/* enqueue a synthesized mouse event to be seen by the next wgetch() */
+getmouse(MEVENT * aevent)
+{
+    return _nc_getmouse(SP, aevent);
+}
+
+static int
+_nc_ungetmouse(SCREEN *sp, MEVENT * aevent)
 {
     int result = ERR;
 
     T((T_CALLED("ungetmouse(%p)"), aevent));
 
-    if (aevent != 0 && SP != 0) {
-	MEVENT *eventp = SP->_mouse_eventp;
+    if (aevent != 0 && sp != 0) {
+	MEVENT *eventp = sp->_mouse_eventp;
 
 	/* stick the given event in the next-free slot */
 	*eventp = *aevent;
 
 	/* bump the next-free pointer into the circular list */
-	SP->_mouse_eventp = NEXT(eventp);
+	sp->_mouse_eventp = NEXT(eventp);
 
 	/* push back the notification event on the keyboard queue */
-	result = ungetch(KEY_MOUSE);
+	result = _nc_ungetch(sp, KEY_MOUSE);
     }
     returnCode(result);
 }
 
+/* enqueue a synthesized mouse event to be seen by the next wgetch() */
+NCURSES_EXPORT(int)
+ungetmouse(MEVENT * aevent)
+{
+    return _nc_ungetmouse(SP, aevent);
+}
+
 NCURSES_EXPORT(mmask_t)
 mousemask(mmask_t newmask, mmask_t * oldmask)
 /* set the mouse event mask */
@@ -1261,7 +1284,7 @@
 	    *oldmask = SP->_mouse_mask;
 
 	if (newmask || SP->_mouse_initialized) {
-	    _nc_mouse_init();
+	    _nc_mouse_init(SP);
 	    if (SP->_mouse_type != M_NONE) {
 		result = newmask &
 		    (REPORT_MOUSE_POSITION
@@ -1274,7 +1297,7 @@
 		     | BUTTON_DOUBLE_CLICKED
 		     | BUTTON_TRIPLE_CLICKED);
 
-		mouse_activate((bool) (result != 0));
+		mouse_activate(SP, (bool) (result != 0));
 
 		SP->_mouse_mask = result;
 	    }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_newterm.c ncurses-5.6/ncurses/base/lib_newterm.c
--- ncurses-5.6.orig/ncurses/base/lib_newterm.c	2006-01-14 10:36:24.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_newterm.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -48,7 +48,7 @@
 #include <term.h>		/* clear_screen, cup & friends, cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.64 2006/01/14 15:36:24 tom Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.70 2008/06/07 14:00:23 tom Exp $")
 
 #ifndef ONLCR			/* Allows compilation under the QNX 4.2 OS */
 #define ONLCR 0
@@ -94,14 +94,12 @@
  * aside from possibly delaying a filter() call until some terminals have been
  * initialized.
  */
-static bool filter_mode = FALSE;
-
 NCURSES_EXPORT(void)
 filter(void)
 {
     START_TRACE();
     T((T_CALLED("filter")));
-    filter_mode = TRUE;
+    _nc_prescreen.filter_mode = TRUE;
     returnVoid;
 }
 
@@ -115,7 +113,7 @@
 {
     START_TRACE();
     T((T_CALLED("nofilter")));
-    filter_mode = FALSE;
+    _nc_prescreen.filter_mode = FALSE;
     returnVoid;
 }
 #endif
@@ -125,31 +123,34 @@
 {
     int value;
     int errret;
-    int slk_format = _nc_slk_format;
     SCREEN *current;
     SCREEN *result = 0;
 
     START_TRACE();
     T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
 
-    _nc_handle_sigwinch(0);
-
-    /* allow user to set maximum escape delay from the environment */
-    if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
-	ESCDELAY = value;
-    }
-
+    _nc_lock_global(curses);
     /* this loads the capability entry, then sets LINES and COLS */
-    if (setupterm(name, fileno(ofp), &errret) == ERR) {
-	result = 0;
-    } else {
+    if (setupterm(name, fileno(ofp), &errret) != ERR) {
+	int slk_format = _nc_globals.slk_format;
+
 	/*
 	 * This actually allocates the screen structure, and saves the original
 	 * terminal settings.
 	 */
 	current = SP;
 	_nc_set_screen(0);
-	if (_nc_setupscreen(LINES, COLS, ofp, filter_mode, slk_format) == ERR) {
+
+	/* allow user to set maximum escape delay from the environment */
+	if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
+	    set_escdelay(value);
+	}
+
+	if (_nc_setupscreen(LINES,
+			    COLS,
+			    ofp,
+			    _nc_prescreen.filter_mode,
+			    slk_format) == ERR) {
 	    _nc_set_screen(current);
 	    result = 0;
 	} else {
@@ -211,6 +212,6 @@
 	    result = SP;
 	}
     }
-    _nc_handle_sigwinch(1);
+    _nc_unlock_global(curses);
     returnSP(result);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_newwin.c ncurses-5.6/ncurses/base/lib_newwin.c
--- ncurses-5.6.orig/ncurses/base/lib_newwin.c	2006-10-14 16:31:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_newwin.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,36 +40,39 @@
 */
 
 #include <curses.priv.h>
+#include <stddef.h>
 
-MODULE_ID("$Id: lib_newwin.c,v 1.38 2006/10/14 20:31:19 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.52 2008/06/07 13:58:09 tom Exp $")
 
-static WINDOW *
+#define window_is(name) ((sp)->_##name == win)
+
+#if USE_REENTRANT
+#define remove_window(name) \
+		sp->_##name = 0
+#else
+#define remove_window(name) \
+		sp->_##name = 0; \
+		if (win == name) \
+		    name = 0
+#endif
+
+static void
 remove_window_from_screen(WINDOW *win)
 {
-    SCREEN **scan = &_nc_screen_chain;
+    SCREEN *sp;
 
-    while (*scan) {
-	SCREEN *sp = *scan;
-	if (sp->_curscr == win) {
-	    sp->_curscr = 0;
-	    if (win == curscr)
-		curscr = 0;
-	} else if (sp->_stdscr == win) {
-	    sp->_stdscr = 0;
-	    if (win == stdscr)
-		stdscr = 0;
-	} else if (sp->_newscr == win) {
-	    sp->_newscr = 0;
-	    if (win == newscr)
-		newscr = 0;
-	} else {
-	    scan = &(*scan)->_next_screen;
-	    continue;
+    for (each_screen(sp)) {
+	if (window_is(curscr)) {
+	    remove_window(curscr);
+	    break;
+	} else if (window_is(stdscr)) {
+	    remove_window(stdscr);
+	    break;
+	} else if (window_is(newscr)) {
+	    remove_window(newscr);
+	    break;
 	}
-	break;
     }
-
-    return 0;
 }
 
 NCURSES_EXPORT(int)
@@ -79,29 +82,36 @@
     int i;
     int result = ERR;
 
+    T((T_CALLED("_nc_freewin(%p)"), win));
+
     if (win != 0) {
-	for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) {
-	    if (&(p->win) == win) {
-		remove_window_from_screen(win);
-		if (q == 0)
-		    _nc_windows = p->next;
-		else
-		    q->next = p->next;
-
-		if (!(win->_flags & _SUBWIN)) {
-		    for (i = 0; i <= win->_maxy; i++)
-			FreeIfNeeded(win->_line[i].text);
+	if (_nc_try_global(curses) == 0) {
+	    q = 0;
+	    for (each_window(p)) {
+		if (&(p->win) == win) {
+		    remove_window_from_screen(win);
+		    if (q == 0)
+			_nc_windows = p->next;
+		    else
+			q->next = p->next;
+
+		    if (!(win->_flags & _SUBWIN)) {
+			for (i = 0; i <= win->_maxy; i++)
+			    FreeIfNeeded(win->_line[i].text);
+		    }
+		    free(win->_line);
+		    free(p);
+
+		    result = OK;
+		    T(("...deleted win=%p", win));
+		    break;
 		}
-		free(win->_line);
-		free(p);
-
-		result = OK;
-		T(("...deleted win=%p", win));
-		break;
+		q = p;
 	    }
+	    _nc_unlock_global(curses);
 	}
     }
-    return result;
+    returnCode(result);
 }
 
 NCURSES_EXPORT(WINDOW *)
@@ -208,24 +218,26 @@
     WINDOW *win;
     bool is_pad = (flags & _ISPAD);
 
-    T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
+    T((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
 
     if (SP == 0)
-	return 0;
+	returnWin(0);
 
     if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
-	return 0;
+	returnWin(0);
 
     if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
-	return 0;
+	returnWin(0);
 
     win = &(wp->win);
 
     if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
 	free(win);
-	return 0;
+	returnWin(0);
     }
 
+    _nc_lock_global(curses);
+
     win->_curx = 0;
     win->_cury = 0;
     win->_maxy = num_lines - 1;
@@ -299,9 +311,28 @@
     }
 
     wp->next = _nc_windows;
+    wp->screen = SP;
     _nc_windows = wp;
 
     T((T_CREATE("window %p"), win));
 
-    return (win);
+    _nc_unlock_global(curses);
+    returnWin(win);
+}
+
+/*
+ * wgetch() and other functions with a WINDOW* parameter may use a SCREEN*
+ * internally, and it is useful to allow those to be invoked without switching
+ * SCREEN's, e.g., for multi-threaded applications.
+ */
+NCURSES_EXPORT(SCREEN *)
+_nc_screen_of(WINDOW *win)
+{
+    SCREEN *sp = 0;
+
+    if (win != 0) {
+	WINDOWLIST *wp = (WINDOWLIST *) win;
+	sp = wp->screen;
+    }
+    return (sp);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_overlay.c ncurses-5.6/ncurses/base/lib_overlay.c
--- ncurses-5.6.orig/ncurses/base/lib_overlay.c	2006-10-14 16:43:31.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_overlay.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,46 +40,45 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_overlay.c,v 1.22 2006/10/14 20:43:31 tom Exp $")
+MODULE_ID("$Id: lib_overlay.c,v 1.27 2008/06/07 23:30:34 tom Exp $")
 
 static int
-overlap(const WINDOW *const s, WINDOW *const d, int const flag)
+overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
 {
+    int rc = ERR;
     int sx1, sy1, sx2, sy2;
     int dx1, dy1, dx2, dy2;
     int sminrow, smincol;
     int dminrow, dmincol;
     int dmaxrow, dmaxcol;
 
-    T((T_CALLED("overlap(%p,%p,%d)"), s, d, flag));
+    T((T_CALLED("overlap(%p,%p,%d)"), src, dst, flag));
+
+    if (src != 0 && dst != 0) {
+	_nc_lock_global(curses);
 
-    if (s == 0 || d == 0) {
-	returnCode(ERR);
-    } else {
 	T(("src : begy %ld, begx %ld, maxy %ld, maxx %ld",
-	   (long) s->_begy,
-	   (long) s->_begx,
-	   (long) s->_maxy,
-	   (long) s->_maxx));
+	   (long) src->_begy,
+	   (long) src->_begx,
+	   (long) src->_maxy,
+	   (long) src->_maxx));
 	T(("dst : begy %ld, begx %ld, maxy %ld, maxx %ld",
-	   (long) d->_begy,
-	   (long) d->_begx,
-	   (long) d->_maxy,
-	   (long) d->_maxx));
-
-	sx1 = s->_begx;
-	sy1 = s->_begy;
-	sx2 = sx1 + s->_maxx;
-	sy2 = sy1 + s->_maxy;
-
-	dx1 = d->_begx;
-	dy1 = d->_begy;
-	dx2 = dx1 + d->_maxx;
-	dy2 = dy1 + d->_maxy;
-
-	if (dx2 < sx1 || dx1 > sx2 || dy2 < sy1 || dy1 > sy2) {
-	    returnCode(ERR);	/* No intersection */
-	} else {
+	   (long) dst->_begy,
+	   (long) dst->_begx,
+	   (long) dst->_maxy,
+	   (long) dst->_maxx));
+
+	sx1 = src->_begx;
+	sy1 = src->_begy;
+	sx2 = sx1 + src->_maxx;
+	sy2 = sy1 + src->_maxy;
+
+	dx1 = dst->_begx;
+	dy1 = dst->_begy;
+	dx2 = dx1 + dst->_maxx;
+	dy2 = dy1 + dst->_maxy;
+
+	if (dx2 >= sx1 && dx1 <= sx2 && dy2 >= sy1 && dy1 <= sy2) {
 	    sminrow = max(sy1, dy1) - sy1;
 	    smincol = max(sx1, dx1) - sx1;
 	    dminrow = max(sy1, dy1) - dy1;
@@ -87,13 +86,15 @@
 	    dmaxrow = min(sy2, dy2) - dy1;
 	    dmaxcol = min(sx2, dx2) - dx1;
 
-	    returnCode(copywin(s, d,
-			       sminrow, smincol,
-			       dminrow, dmincol,
-			       dmaxrow, dmaxcol,
-			       flag));
+	    rc = copywin(src, dst,
+			 sminrow, smincol,
+			 dminrow, dmincol,
+			 dmaxrow, dmaxcol,
+			 flag);
 	}
+	_nc_unlock_global(curses);
     }
+    returnCode(rc);
 }
 
 /*
@@ -137,54 +138,69 @@
 	int dmaxrow, int dmaxcol,
 	int over)
 {
+    int rc = ERR;
     int sx, sy, dx, dy;
     bool touched;
-    attr_t bk = AttrOf(dst->_nc_bkgd);
-    attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
+    attr_t bk;
+    attr_t mask;
 
     T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"),
        src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
 
-    if (!src || !dst)
-	returnCode(ERR);
+    if (src && dst) {
+	_nc_lock_global(curses);
 
-    /* make sure rectangle exists in source */
-    if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) ||
-	(smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {
-	returnCode(ERR);
-    }
+	bk = AttrOf(dst->_nc_bkgd);
+	mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
 
-    T(("rectangle exists in source"));
-
-    /* make sure rectangle fits in destination */
-    if (dmaxrow > dst->_maxy || dmaxcol > dst->_maxx) {
-	returnCode(ERR);
-    }
-
-    T(("rectangle fits in destination"));
-
-    for (dy = dminrow, sy = sminrow; dy <= dmaxrow; sy++, dy++) {
-	touched = FALSE;
-	for (dx = dmincol, sx = smincol; dx <= dmaxcol; sx++, dx++) {
-	    if (over) {
-		if ((CharOf(src->_line[sy].text[sx]) != L(' ')) &&
-		    (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx]))) {
-		    dst->_line[dy].text[dx] = src->_line[sy].text[sx];
-		    SetAttr(dst->_line[dy].text[dx],
-			    (AttrOf(src->_line[sy].text[sx]) & mask) | bk);
-		    touched = TRUE;
-		}
-	    } else {
-		if (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx])) {
-		    dst->_line[dy].text[dx] = src->_line[sy].text[sx];
-		    touched = TRUE;
+	/* make sure rectangle exists in source */
+	if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) &&
+	    (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) {
+
+	    T(("rectangle exists in source"));
+
+	    /* make sure rectangle fits in destination */
+	    if (dmaxrow <= dst->_maxy && dmaxcol <= dst->_maxx) {
+
+		T(("rectangle fits in destination"));
+
+		for (dy = dminrow, sy = sminrow;
+		     dy <= dmaxrow;
+		     sy++, dy++) {
+
+		    touched = FALSE;
+		    for (dx = dmincol, sx = smincol;
+			 dx <= dmaxcol;
+			 sx++, dx++) {
+			if (over) {
+			    if ((CharOf(src->_line[sy].text[sx]) != L(' ')) &&
+				(!CharEq(dst->_line[dy].text[dx],
+					 src->_line[sy].text[sx]))) {
+				dst->_line[dy].text[dx] =
+				    src->_line[sy].text[sx];
+				SetAttr(dst->_line[dy].text[dx],
+					((AttrOf(src->_line[sy].text[sx]) &
+					  mask) | bk));
+				touched = TRUE;
+			    }
+			} else {
+			    if (!CharEq(dst->_line[dy].text[dx],
+					src->_line[sy].text[sx])) {
+				dst->_line[dy].text[dx] =
+				    src->_line[sy].text[sx];
+				touched = TRUE;
+			    }
+			}
+		    }
+		    if (touched) {
+			touchline(dst, dminrow, (dmaxrow - dminrow + 1));
+		    }
 		}
+		T(("finished copywin"));
+		rc = OK;
 	    }
 	}
-	if (touched) {
-	    touchline(dst, dminrow, (dmaxrow - dminrow + 1));
-	}
+	_nc_unlock_global(curses);
     }
-    T(("finished copywin"));
-    returnCode(OK);
+    returnCode(rc);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_redrawln.c ncurses-5.6/ncurses/base/lib_redrawln.c
--- ncurses-5.6.orig/ncurses/base/lib_redrawln.c	2006-11-04 18:08:47.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_redrawln.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,17 +39,20 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_redrawln.c,v 1.11 2006/11/04 23:08:47 tom Exp $")
+MODULE_ID("$Id: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $")
 
 NCURSES_EXPORT(int)
 wredrawln(WINDOW *win, int beg, int num)
 {
     int i;
     int end;
-    size_t len = (win->_maxx + 1);
+    size_t len;
 
     T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
 
+    if (win == 0)
+	returnCode(ERR);
+
     if (beg < 0)
 	beg = 0;
 
@@ -65,6 +68,7 @@
     if (end > win->_maxy + 1)
 	end = win->_maxy + 1;
 
+    len = (win->_maxx + 1);
     if (len > (size_t) (curscr->_maxx + 1))
 	len = (size_t) (curscr->_maxx + 1);
     len *= sizeof(curscr->_line[0].text[0]);
diff -Naur ncurses-5.6.orig/ncurses/base/lib_refresh.c ncurses-5.6/ncurses/base/lib_refresh.c
--- ncurses-5.6.orig/ncurses/base/lib_refresh.c	2006-05-27 15:21:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_refresh.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_refresh.c,v 1.34 2006/05/27 19:21:19 tom Exp $")
+MODULE_ID("$Id: lib_refresh.c,v 1.41 2007/09/29 20:39:34 tom Exp $")
 
 NCURSES_EXPORT(int)
 wrefresh(WINDOW *win)
@@ -74,18 +74,20 @@
 wnoutrefresh(WINDOW *win)
 {
     NCURSES_SIZE_T limit_x;
-    NCURSES_SIZE_T i, j;
+    NCURSES_SIZE_T src_row, src_col;
     NCURSES_SIZE_T begx;
     NCURSES_SIZE_T begy;
-    NCURSES_SIZE_T m, n;
+    NCURSES_SIZE_T dst_row, dst_col;
 #if USE_SCROLL_HINTS
     bool wide;
 #endif
 
     T((T_CALLED("wnoutrefresh(%p)"), win));
 #ifdef TRACE
-    if (_nc_tracing & TRACE_UPDATE)
+    if (USE_TRACEF(TRACE_UPDATE)) {
 	_tracedump("...win", win);
+	_nc_unlock_global(tracef);
+    }
 #endif /* TRACE */
 
     /*
@@ -132,28 +134,121 @@
      * so we'll force the issue.
      */
 
-    /* limit(n) */
+    /* limit(dst_col) */
     limit_x = win->_maxx;
-    /* limit(j) */
+    /* limit(src_col) */
     if (limit_x > newscr->_maxx - begx)
 	limit_x = newscr->_maxx - begx;
 
-    for (i = 0, m = begy + win->_yoffset;
-	 i <= win->_maxy && m <= newscr->_maxy;
-	 i++, m++) {
-	register struct ldat *nline = &newscr->_line[m];
-	register struct ldat *oline = &win->_line[i];
+    for (src_row = 0, dst_row = begy + win->_yoffset;
+	 src_row <= win->_maxy && dst_row <= newscr->_maxy;
+	 src_row++, dst_row++) {
+	register struct ldat *nline = &newscr->_line[dst_row];
+	register struct ldat *oline = &win->_line[src_row];
 
 	if (oline->firstchar != _NOCHANGE) {
-	    int last = oline->lastchar;
+	    int last_src = oline->lastchar;
+
+	    if (last_src > limit_x)
+		last_src = limit_x;
 
-	    if (last > limit_x)
-		last = limit_x;
+	    src_col = oline->firstchar;
+	    dst_col = src_col + begx;
+
+	    if_WIDEC({
+		register int j;
+
+		/*
+		 * Ensure that we will copy complete multi-column characters
+		 * on the left-boundary.
+		 */
+		if (isWidecExt(oline->text[src_col])) {
+		    j = 1 + dst_col - WidecExt(oline->text[src_col]);
+		    if (j < 0)
+			j = 0;
+		    if (dst_col > j) {
+			src_col -= (dst_col - j);
+			dst_col = j;
+		    }
+		}
 
-	    for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
-		if (!CharEq(oline->text[j], nline->text[n])) {
-		    nline->text[n] = oline->text[j];
-		    CHANGED_CELL(nline, n);
+		/*
+		 * Ensure that we will copy complete multi-column characters
+		 * on the right-boundary.
+		 */
+		j = last_src;
+		if (WidecExt(oline->text[j])) {
+		    ++j;
+		    while (j <= limit_x) {
+			if (isWidecBase(oline->text[j])) {
+			    break;
+			} else {
+			    last_src = j;
+			}
+			++j;
+		    }
+		}
+	    });
+
+	    if_WIDEC({
+		static cchar_t blank = BLANK;
+		int last_dst = begx + ((last_src < win->_maxx)
+				       ? last_src
+				       : win->_maxx);
+		int fix_left = dst_col;
+		int fix_right = last_dst;
+		register int j;
+
+		/*
+		 * Check for boundary cases where we may overwrite part of a
+		 * multi-column character.  For those, wipe the remainder of
+		 * the character to blanks.
+		 */
+		j = dst_col;
+		if (isWidecExt(nline->text[j])) {
+		    /*
+		     * On the left, we only care about multi-column characters
+		     * that extend into the changed region.
+		     */
+		    fix_left = 1 + j - WidecExt(nline->text[j]);
+		    if (fix_left < 0)
+			fix_left = 0;	/* only if cell is corrupt */
+		}
+
+		j = last_dst;
+		if (WidecExt(nline->text[j]) != 0) {
+		    /*
+		     * On the right, any multi-column character is a problem,
+		     * unless it happens to be contained in the change, and
+		     * ending at the right boundary of the change.  The
+		     * computation for 'fix_left' accounts for the left-side of
+		     * this character.  Find the end of the character.
+		     */
+		    ++j;
+		    while (j <= newscr->_maxx && isWidecExt(nline->text[j])) {
+			fix_right = j++;
+		    }
+		}
+
+		/*
+		 * The analysis is simpler if we do the clearing afterwards.
+		 * Do that now.
+		 */
+		if (fix_left < dst_col || fix_right > last_dst) {
+		    for (j = fix_left; j <= fix_right; ++j) {
+			nline->text[j] = blank;
+			CHANGED_CELL(nline, j);
+		    }
+		}
+	    });
+
+	    /*
+	     * Copy the changed text.
+	     */
+	    for (; src_col <= last_src; src_col++, dst_col++) {
+		if (!CharEq(oline->text[src_col], nline->text[dst_col])) {
+		    nline->text[dst_col] = oline->text[src_col];
+		    CHANGED_CELL(nline, dst_col);
 		}
 	    }
 
@@ -162,13 +257,14 @@
 	if (wide) {
 	    int oind = oline->oldindex;
 
-	    nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : begy + oind
-		+ win->_yoffset;
+	    nline->oldindex = ((oind == _NEWINDEX)
+			       ? _NEWINDEX
+			       : (begy + oind + win->_yoffset));
 	}
 #endif /* USE_SCROLL_HINTS */
 
 	oline->firstchar = oline->lastchar = _NOCHANGE;
-	if_USE_SCROLL_HINTS(oline->oldindex = i);
+	if_USE_SCROLL_HINTS(oline->oldindex = src_row);
     }
 
     if (win->_clear) {
@@ -183,8 +279,10 @@
     newscr->_leaveok = win->_leaveok;
 
 #ifdef TRACE
-    if (_nc_tracing & TRACE_UPDATE)
+    if (USE_TRACEF(TRACE_UPDATE)) {
 	_tracedump("newscr", newscr);
+	_nc_unlock_global(tracef);
+    }
 #endif /* TRACE */
     returnCode(OK);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_restart.c ncurses-5.6/ncurses/base/lib_restart.c
--- ncurses-5.6.orig/ncurses/base/lib_restart.c	2006-01-14 10:58:23.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_restart.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -48,23 +48,22 @@
 
 #include <term.h>		/* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_restart.c,v 1.6 2006/01/14 15:58:23 tom Exp $")
+MODULE_ID("$Id: lib_restart.c,v 1.9 2008/05/03 22:43:52 tom Exp $")
 
 NCURSES_EXPORT(int)
 restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
 {
-    int saveecho = SP->_echo;
-    int savecbreak = SP->_cbreak;
-    int saveraw = SP->_raw;
-    int savenl = SP->_nl;
     int result;
 
     T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
 
-    _nc_handle_sigwinch(0);
     if (setupterm(termp, filenum, errret) != OK) {
 	result = ERR;
-    } else {
+    } else if (SP != 0) {
+	int saveecho = SP->_echo;
+	int savecbreak = SP->_cbreak;
+	int saveraw = SP->_raw;
+	int savenl = SP->_nl;
 
 	if (saveecho)
 	    echo();
@@ -89,11 +88,12 @@
 	reset_prog_mode();
 
 #if USE_SIZECHANGE
-	_nc_update_screensize();
+	_nc_update_screensize(SP);
 #endif
 
 	result = OK;
+    } else {
+	result = ERR;
     }
-    _nc_handle_sigwinch(1);
     returnCode(result);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_screen.c ncurses-5.6/ncurses/base/lib_screen.c
--- ncurses-5.6.orig/ncurses/base/lib_screen.c	2006-05-27 15:21:38.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_screen.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_screen.c,v 1.29 2006/05/27 19:21:38 tom Exp $")
+MODULE_ID("$Id: lib_screen.c,v 1.30 2007/03/10 23:20:41 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
 getwin(FILE *filep)
@@ -146,7 +146,10 @@
 	returnCode(ERR);
     } else {
 	delwin(newscr);
-	SP->_newscr = newscr = getwin(fp);
+	SP->_newscr = getwin(fp);
+#if !USE_REENTRANT
+	newscr = SP->_newscr;
+#endif
 	(void) fclose(fp);
 	returnCode(OK);
     }
@@ -184,7 +187,10 @@
 	returnCode(ERR);
     } else {
 	delwin(curscr);
-	SP->_curscr = curscr = getwin(fp);
+	SP->_curscr = getwin(fp);
+#if !USE_REENTRANT
+	curscr = SP->_curscr;
+#endif
 	(void) fclose(fp);
 	returnCode(OK);
     }
@@ -199,7 +205,10 @@
 	returnCode(ERR);
     } else {
 	delwin(newscr);
-	SP->_newscr = newscr = dupwin(curscr);
+	SP->_newscr = dupwin(curscr);
+#if !USE_REENTRANT
+	newscr = SP->_newscr;
+#endif
 	returnCode(OK);
     }
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_set_term.c ncurses-5.6/ncurses/base/lib_set_term.c
--- ncurses-5.6.orig/ncurses/base/lib_set_term.c	2006-05-20 10:58:02.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_set_term.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -44,31 +44,50 @@
 #include <term.h>		/* cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_set_term.c,v 1.91 2006/05/20 14:58:02 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.112 2008/06/07 22:29:07 tom Exp $")
 
 NCURSES_EXPORT(SCREEN *)
 set_term(SCREEN *screenp)
 {
     SCREEN *oldSP;
+    SCREEN *newSP;
 
     T((T_CALLED("set_term(%p)"), screenp));
 
+    _nc_lock_global(curses);
+
     oldSP = SP;
     _nc_set_screen(screenp);
+    newSP = SP;
 
-    set_curterm(SP->_term);
-    curscr = SP->_curscr;
-    newscr = SP->_newscr;
-    stdscr = SP->_stdscr;
-    COLORS = SP->_color_count;
-    COLOR_PAIRS = SP->_pair_count;
+    if (newSP != 0) {
+	set_curterm(newSP->_term);
+#if !USE_REENTRANT
+	curscr = newSP->_curscr;
+	newscr = newSP->_newscr;
+	stdscr = newSP->_stdscr;
+	COLORS = newSP->_color_count;
+	COLOR_PAIRS = newSP->_pair_count;
+#endif
+    } else {
+	set_curterm(0);
+#if !USE_REENTRANT
+	curscr = 0;
+	newscr = 0;
+	stdscr = 0;
+	COLORS = 0;
+	COLOR_PAIRS = 0;
+#endif
+    }
+
+    _nc_unlock_global(curses);
 
     T((T_RETURN("%p"), oldSP));
     return (oldSP);
 }
 
 static void
-_nc_free_keytry(struct tries *kt)
+_nc_free_keytry(TRIES * kt)
 {
     if (kt != 0) {
 	_nc_free_keytry(kt->child);
@@ -77,95 +96,114 @@
     }
 }
 
+static bool
+delink_screen(SCREEN *sp)
+{
+    SCREEN *last = 0;
+    SCREEN *temp;
+    bool result = FALSE;
+
+    for (each_screen(temp)) {
+	if (temp == sp) {
+	    if (last)
+		last = sp->_next_screen;
+	    else
+		_nc_screen_chain = sp->_next_screen;
+	    result = TRUE;
+	    break;
+	}
+	last = temp;
+    }
+    return result;
+}
+
 /*
  * Free the storage associated with the given SCREEN sp.
  */
 NCURSES_EXPORT(void)
 delscreen(SCREEN *sp)
 {
-    SCREEN **scan = &_nc_screen_chain;
     int i;
 
     T((T_CALLED("delscreen(%p)"), sp));
 
-    while (*scan) {
-	if (*scan == sp) {
-	    *scan = sp->_next_screen;
-	    break;
-	}
-	scan = &(*scan)->_next_screen;
-    }
+    _nc_lock_global(curses);
+    if (delink_screen(sp)) {
 
-    (void) _nc_freewin(sp->_curscr);
-    (void) _nc_freewin(sp->_newscr);
-    (void) _nc_freewin(sp->_stdscr);
-
-    if (sp->_slk != 0) {
-	if (sp->_slk->ent != 0) {
-	    for (i = 0; i < sp->_slk->labcnt; ++i) {
-		FreeIfNeeded(sp->_slk->ent[i].ent_text);
-		FreeIfNeeded(sp->_slk->ent[i].form_text);
+	(void) _nc_freewin(sp->_curscr);
+	(void) _nc_freewin(sp->_newscr);
+	(void) _nc_freewin(sp->_stdscr);
+
+	if (sp->_slk != 0) {
+	    if (sp->_slk->ent != 0) {
+		for (i = 0; i < sp->_slk->labcnt; ++i) {
+		    FreeIfNeeded(sp->_slk->ent[i].ent_text);
+		    FreeIfNeeded(sp->_slk->ent[i].form_text);
+		}
+		free(sp->_slk->ent);
 	    }
-	    free(sp->_slk->ent);
+	    free(sp->_slk);
+	    sp->_slk = 0;
 	}
-	free(sp->_slk);
-	sp->_slk = 0;
-    }
 
-    _nc_free_keytry(sp->_keytry);
-    sp->_keytry = 0;
+	_nc_free_keytry(sp->_keytry);
+	sp->_keytry = 0;
 
-    _nc_free_keytry(sp->_key_ok);
-    sp->_key_ok = 0;
+	_nc_free_keytry(sp->_key_ok);
+	sp->_key_ok = 0;
 
-    FreeIfNeeded(sp->_current_attr);
+	FreeIfNeeded(sp->_current_attr);
 
-    FreeIfNeeded(sp->_color_table);
-    FreeIfNeeded(sp->_color_pairs);
+	FreeIfNeeded(sp->_color_table);
+	FreeIfNeeded(sp->_color_pairs);
 
-    FreeIfNeeded(sp->oldhash);
-    FreeIfNeeded(sp->newhash);
-    FreeIfNeeded(sp->hashtab);
+	FreeIfNeeded(sp->oldhash);
+	FreeIfNeeded(sp->newhash);
+	FreeIfNeeded(sp->hashtab);
 
-    FreeIfNeeded(sp->_acs_map);
-    FreeIfNeeded(sp->_screen_acs_map);
+	FreeIfNeeded(sp->_acs_map);
+	FreeIfNeeded(sp->_screen_acs_map);
 
-    del_curterm(sp->_term);
+#if 0
+	/* FIXME - this should be a copy of the struct, not a pointer */
+	del_curterm(sp->_term);
+#endif
 
-    /*
-     * If the associated output stream has been closed, we can discard the
-     * set-buffer.  Limit the error check to EBADF, since fflush may fail
-     * for other reasons than trying to operate upon a closed stream.
-     */
-    if (sp->_ofp != 0
-	&& sp->_setbuf != 0
-	&& fflush(sp->_ofp) != 0
-	&& errno == EBADF) {
-	free(sp->_setbuf);
-    }
+	/*
+	 * If the associated output stream has been closed, we can discard the
+	 * set-buffer.  Limit the error check to EBADF, since fflush may fail
+	 * for other reasons than trying to operate upon a closed stream.
+	 */
+	if (sp->_ofp != 0
+	    && sp->_setbuf != 0
+	    && fflush(sp->_ofp) != 0
+	    && errno == EBADF) {
+	    free(sp->_setbuf);
+	}
 
-    free(sp);
+	free(sp);
 
-    /*
-     * If this was the current screen, reset everything that the
-     * application might try to use (except cur_term, which may have
-     * multiple references in different screens).
-     */
-    if (sp == SP) {
-	curscr = 0;
-	newscr = 0;
-	stdscr = 0;
-	COLORS = 0;
-	COLOR_PAIRS = 0;
-	_nc_set_screen(0);
+	/*
+	 * If this was the current screen, reset everything that the
+	 * application might try to use (except cur_term, which may have
+	 * multiple references in different screens).
+	 */
+	if (sp == SP) {
+#if !USE_REENTRANT
+	    curscr = 0;
+	    newscr = 0;
+	    stdscr = 0;
+	    COLORS = 0;
+	    COLOR_PAIRS = 0;
+#endif
+	    _nc_set_screen(0);
+	}
     }
+    _nc_unlock_global(curses);
+
     returnVoid;
 }
 
-static ripoff_t rippedoff[5];
-static ripoff_t *rsp = rippedoff;
-#define N_RIPS SIZEOF(SP->_rippedoff)
-
 static bool
 no_mouse_event(SCREEN *sp GCC_UNUSED)
 {
@@ -179,7 +217,7 @@
 }
 
 static bool
-no_mouse_parse(int code GCC_UNUSED)
+no_mouse_parse(SCREEN *sp GCC_UNUSED, int code GCC_UNUSED)
 {
     return TRUE;
 }
@@ -216,15 +254,16 @@
 
 /* OS-independent screen initializations */
 NCURSES_EXPORT(int)
-_nc_setupscreen(int slines,
-		int scolumns,
+_nc_setupscreen(int slines GCC_UNUSED,
+		int scolumns GCC_UNUSED,
 		FILE *output,
 		bool filtered,
 		int slk_format)
 {
+    char *env;
     int bottom_stolen = 0;
-    int i;
     bool support_cookies = USE_XMC_SUPPORT;
+    ripoff_t *rop;
 
     T((T_CALLED("_nc_setupscreen(%d, %d, %p, %d, %d)"),
        slines, scolumns, output, filtered, slk_format));
@@ -243,12 +282,20 @@
     if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0)
 	returnCode(ERR);
 
+    /*
+     * We should always check the screensize, just in case.
+     */
+    _nc_get_screensize(SP, &slines, &scolumns);
+    SET_LINES(slines);
+    SET_COLS(scolumns);
+    T((T_CREATE("screen %s %dx%d"), termname(), LINES, COLS));
+
     SP->_filtered = filtered;
 
     /* implement filter mode */
     if (filtered) {
-	slines = LINES = 1;
-
+	slines = 1;
+	SET_LINES(slines);
 	clear_screen = 0;
 	cursor_down = parm_down_cursor = 0;
 	cursor_address = 0;
@@ -258,18 +305,6 @@
 	cursor_home = carriage_return;
 	T(("filter screensize %dx%d", LINES, COLS));
     }
-
-    /* If we must simulate soft labels, grab off the line to be used.
-       We assume that we must simulate, if it is none of the standard
-       formats (4-4  or 3-2-3) for which there may be some hardware
-       support. */
-    if (num_labels <= 0 || !SLK_STDFMT(slk_format)) {
-	if (slk_format) {
-	    if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
-				      _nc_slk_initialize))
-		returnCode(ERR);
-	}
-    }
 #ifdef __DJGPP__
     T(("setting output mode to binary"));
     fflush(output);
@@ -484,37 +519,45 @@
     }
 
     /* initialize normal acs before wide, since we use mapping in the latter */
+#if !USE_WIDEC_SUPPORT
+    if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
+	acs_chars = NULL;
+	ena_acs = NULL;
+	enter_alt_charset_mode = NULL;
+	exit_alt_charset_mode = NULL;
+	set_attributes = NULL;
+    }
+#endif
     _nc_init_acs();
 #if USE_WIDEC_SUPPORT
     _nc_init_wacs();
 
     SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
-    {
-	char *env = _nc_get_locale();
-	SP->_legacy_coding = ((env == 0)
-			      || !strcmp(env, "C")
-			      || !strcmp(env, "POSIX"));
-    }
 #endif
+    env = _nc_get_locale();
+    SP->_legacy_coding = ((env == 0)
+			  || !strcmp(env, "C")
+			  || !strcmp(env, "POSIX"));
+    T(("legacy-coding %d", SP->_legacy_coding));
 
     _nc_idcok = TRUE;
     _nc_idlok = FALSE;
 
-    _nc_windows = 0;		/* no windows yet */
-
     SP->oldhash = 0;
     SP->newhash = 0;
 
     T(("creating newscr"));
-    if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
+    if ((SP->_newscr = newwin(slines, scolumns, 0, 0)) == 0)
 	returnCode(ERR);
 
     T(("creating curscr"));
-    if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
+    if ((SP->_curscr = newwin(slines, scolumns, 0, 0)) == 0)
 	returnCode(ERR);
 
-    SP->_newscr = newscr;
-    SP->_curscr = curscr;
+#if !USE_REENTRANT
+    newscr = SP->_newscr;
+    curscr = SP->_curscr;
+#endif
 #if USE_SIZECHANGE
     SP->_resize = resizeterm;
 #endif
@@ -525,46 +568,65 @@
     def_shell_mode();
     def_prog_mode();
 
-    for (i = 0, rsp = rippedoff; rsp->line && (i < (int) N_RIPS); rsp++, i++) {
-	T(("ripping off line %d at %s", i, rsp->line < 0 ? "bottom" : "top"));
-	SP->_rippedoff[i] = rippedoff[i];
-	if (rsp->hook) {
-	    int count = (rsp->line < 0) ? -rsp->line : rsp->line;
-
-	    SP->_rippedoff[i].w = newwin(count,
-					 scolumns,
-					 ((rsp->line < 0)
-					  ? SP->_lines_avail - count
-					  : 0),
-					 0);
-	    if (SP->_rippedoff[i].w != 0)
-		SP->_rippedoff[i].hook(SP->_rippedoff[i].w, scolumns);
-	    else
+    for (rop = ripoff_stack;
+	 rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS;
+	 rop++) {
+
+	/* If we must simulate soft labels, grab off the line to be used.
+	   We assume that we must simulate, if it is none of the standard
+	   formats (4-4 or 3-2-3) for which there may be some hardware
+	   support. */
+	if (rop->hook == _nc_slk_initialize)
+	    if (!(num_labels <= 0 || !SLK_STDFMT(slk_format)))
+		continue;
+	if (rop->hook) {
+	    int count;
+	    WINDOW *w;
+
+	    count = (rop->line < 0) ? -rop->line : rop->line;
+	    T(("ripping off %i lines at %s", count,
+	       ((rop->line < 0)
+		? "bottom"
+		: "top")));
+
+	    w = newwin(count, scolumns,
+		       ((rop->line < 0)
+			? SP->_lines_avail - count
+			: 0),
+		       0);
+	    if (w) {
+		rop->win = w;
+		rop->hook(w, scolumns);
+	    } else {
 		returnCode(ERR);
-	    if (rsp->line < 0)
+	    }
+	    if (rop->line < 0)
 		bottom_stolen += count;
 	    else
 		SP->_topstolen += count;
 	    SP->_lines_avail -= count;
 	}
-	rsp->line = 0;
     }
-    SP->_rip_count = i;
     /* reset the stack */
-    rsp = rippedoff;
+    ripoff_sp = ripoff_stack;
 
     T(("creating stdscr"));
     assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
-    if ((stdscr = newwin(LINES = SP->_lines_avail, scolumns, 0, 0)) == 0)
+    if ((SP->_stdscr = newwin(SP->_lines_avail, scolumns, 0, 0)) == 0)
 	returnCode(ERR);
-    SP->_stdscr = stdscr;
+
+    SET_LINES(SP->_lines_avail);
+#if !USE_REENTRANT
+    stdscr = SP->_stdscr;
+#endif
 
     returnCode(OK);
 }
 
-/* The internal implementation interprets line as the number of
-   lines to rip off from the top or bottom.
-   */
+/*
+ * The internal implementation interprets line as the number of lines to rip
+ * off from the top or bottom.
+ */
 NCURSES_EXPORT(int)
 _nc_ripoffline(int line, int (*init) (WINDOW *, int))
 {
@@ -572,13 +634,14 @@
 
     if (line != 0) {
 
-	if (rsp >= rippedoff + N_RIPS)
+	if (ripoff_sp == 0)
+	    ripoff_sp = ripoff_stack;
+	if (ripoff_sp >= ripoff_stack + N_RIPS)
 	    returnCode(ERR);
 
-	rsp->line = line;
-	rsp->hook = init;
-	rsp->w = 0;
-	rsp++;
+	ripoff_sp->line = line;
+	ripoff_sp->hook = init;
+	ripoff_sp++;
     }
 
     returnCode(OK);
@@ -587,6 +650,7 @@
 NCURSES_EXPORT(int)
 ripoffline(int line, int (*init) (WINDOW *, int))
 {
+    START_TRACE();
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
 
     if (line == 0)
diff -Naur ncurses-5.6.orig/ncurses/base/lib_slk.c ncurses-5.6/ncurses/base/lib_slk.c
--- ncurses-5.6.orig/ncurses/base/lib_slk.c	2005-01-08 16:56:36.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_slk.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -45,7 +45,7 @@
 #include <ctype.h>
 #include <term.h>		/* num_labels, label_*, plab_norm */
 
-MODULE_ID("$Id: lib_slk.c,v 1.30 2005/01/08 21:56:36 tom Exp $")
+MODULE_ID("$Id: lib_slk.c,v 1.33 2008/05/31 22:05:57 tom Exp $")
 
 /*
  * We'd like to move these into the screen context structure, but cannot,
@@ -56,19 +56,20 @@
 
 /*
  * Paint the info line for the PC style SLK emulation.
- *
  */
 static void
 slk_paint_info(WINDOW *win)
 {
-    if (win && SP->slk_format == 4) {
+    SCREEN *sp = _nc_screen_of(win);
+
+    if (win && sp && (sp->slk_format == 4)) {
 	int i;
 
 	mvwhline(win, 0, 0, 0, getmaxx(win));
 	wmove(win, 0, 0);
 
-	for (i = 0; i < SP->_slk->maxlab; i++) {
-	    mvwprintw(win, 0, SP->_slk->ent[i].ent_x, "F%d", i + 1);
+	for (i = 0; i < sp->_slk->maxlab; i++) {
+	    mvwprintw(win, 0, sp->_slk->ent[i].ent_x, "F%d", i + 1);
 	}
     }
 }
@@ -119,12 +120,12 @@
 
     SP->_slk->maxlab = ((num_labels > 0)
 			? num_labels
-			: MAX_SKEY(_nc_slk_format));
+			: MAX_SKEY(_nc_globals.slk_format));
     SP->_slk->maxlen = ((num_labels > 0)
 			? label_width * label_height
-			: MAX_SKEY_LEN(_nc_slk_format));
-    SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_slk_format))
-			? MAX_SKEY(_nc_slk_format)
+			: MAX_SKEY_LEN(_nc_globals.slk_format));
+    SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_globals.slk_format))
+			? MAX_SKEY(_nc_globals.slk_format)
 			: SP->_slk->maxlab);
 
     if (SP->_slk->maxlen <= 0
@@ -148,7 +149,7 @@
 	memset(SP->_slk->ent[i].form_text, ' ', max_length);
 	SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
     }
-    if (_nc_slk_format >= 3) {	/* PC style */
+    if (_nc_globals.slk_format >= 3) {	/* PC style */
 	int gap = (cols - 3 * (3 + 4 * max_length)) / 2;
 
 	if (gap < 1)
@@ -161,7 +162,7 @@
 	}
 	slk_paint_info(stwin);
     } else {
-	if (_nc_slk_format == 2) {	/* 4-4 */
+	if (_nc_globals.slk_format == 2) {	/* 4-4 */
 	    int gap = cols - (SP->_slk->maxlab * max_length) - 6;
 
 	    if (gap < 1)
@@ -172,7 +173,7 @@
 		x += (i == 3) ? gap : 1;
 	    }
 	} else {
-	    if (_nc_slk_format == 1) {	/* 1 -> 3-2-3 */
+	    if (_nc_globals.slk_format == 1) {	/* 1 -> 3-2-3 */
 		int gap = (cols - (SP->_slk->maxlab * max_length) - 5)
 		/ 2;
 
@@ -196,8 +197,8 @@
      * per default no SLK keys and may call slk_init again to
      * define a new layout. (juergen 03-Mar-1999)
      */
-    SP->slk_format = _nc_slk_format;
-    _nc_slk_format = 0;
+    SP->slk_format = _nc_globals.slk_format;
+    _nc_globals.slk_format = 0;
     returnCode(res);
 }
 
diff -Naur ncurses-5.6.orig/ncurses/base/lib_slkclear.c ncurses-5.6/ncurses/base/lib_slkclear.c
--- ncurses-5.6.orig/ncurses/base/lib_slkclear.c	2006-05-27 15:21:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_slkclear.c	2008-06-18 06:49:45.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1996-1999               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -38,24 +40,27 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkclear.c,v 1.9 2006/05/27 19:21:19 tom Exp $")
+MODULE_ID("$Id: lib_slkclear.c,v 1.10 2007/12/29 17:51:47 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_clear(void)
 {
+    int rc = ERR;
+
     T((T_CALLED("slk_clear()")));
 
-    if (SP == NULL || SP->_slk == NULL)
-	returnCode(ERR);
-    SP->_slk->hidden = TRUE;
-    /* For simulated SLK's it's looks much more natural to
-       inherit those attributes from the standard screen */
-    SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
-    WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
-    if (SP->_slk->win == stdscr) {
-	returnCode(OK);
-    } else {
-	werase(SP->_slk->win);
-	returnCode(wrefresh(SP->_slk->win));
+    if (SP != NULL && SP->_slk != NULL) {
+	SP->_slk->hidden = TRUE;
+	/* For simulated SLK's it looks much more natural to
+	   inherit those attributes from the standard screen */
+	SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
+	WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
+	if (SP->_slk->win == stdscr) {
+	    rc = OK;
+	} else {
+	    werase(SP->_slk->win);
+	    rc = wrefresh(SP->_slk->win);
+	}
     }
+    returnCode(rc);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_slkinit.c ncurses-5.6/ncurses/base/lib_slkinit.c
--- ncurses-5.6.orig/ncurses/base/lib_slkinit.c	2000-12-09 21:43:27.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_slkinit.c	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -38,14 +39,17 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkinit.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkinit.c,v 1.7 2008/01/12 20:23:39 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_init(int format)
 {
+    int code = ERR;
+
     T((T_CALLED("slk_init(%d)"), format));
-    if (format < 0 || format > 3)
-	returnCode(ERR);
-    _nc_slk_format = 1 + format;
-    returnCode(OK);
+    if (format >= 0 && format <= 3 && !_nc_globals.slk_format) {
+	_nc_globals.slk_format = 1 + format;
+	code = _nc_ripoffline(-SLK_LINES(_nc_globals.slk_format), _nc_slk_initialize);
+    }
+    returnCode(code);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_slkset.c ncurses-5.6/ncurses/base/lib_slkset.c
--- ncurses-5.6.orig/ncurses/base/lib_slkset.c	2006-12-17 14:47:09.000000000 -0500
+++ ncurses-5.6/ncurses/base/lib_slkset.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -44,12 +44,12 @@
 #endif
 #endif
 
-MODULE_ID("$Id: lib_slkset.c,v 1.16 2006/12/17 19:47:09 tom Exp $")
+MODULE_ID("$Id: lib_slkset.c,v 1.17 2007/10/13 20:08:46 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_set(int i, const char *astr, int format)
 {
-    SLK *slk = SP->_slk;
+    SLK *slk;
     int offset;
     int numchrs;
     int numcols;
@@ -59,7 +59,12 @@
 
     T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
 
-    if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
+    if (SP == 0
+	|| (slk = SP->_slk) == 0
+	|| i < 1
+	|| i > slk->labcnt
+	|| format < 0
+	|| format > 2)
 	returnCode(ERR);
     if (str == NULL)
 	str = "";
diff -Naur ncurses-5.6.orig/ncurses/base/lib_ungetch.c ncurses-5.6/ncurses/base/lib_ungetch.c
--- ncurses-5.6.orig/ncurses/base/lib_ungetch.c	2002-08-24 18:08:48.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_ungetch.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -40,40 +41,50 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_ungetch.c,v 1.8 2002/08/24 22:08:48 tom Exp $")
+MODULE_ID("$Id: lib_ungetch.c,v 1.11 2008/05/31 16:44:54 tom Exp $")
 
 #include <fifo_defs.h>
 
 #ifdef TRACE
 NCURSES_EXPORT(void)
-_nc_fifo_dump(void)
+_nc_fifo_dump(SCREEN *sp)
 {
     int i;
     T(("head = %d, tail = %d, peek = %d", head, tail, peek));
     for (i = 0; i < 10; i++)
-	T(("char %d = %s", i, _tracechar(SP->_fifo[i])));
+	T(("char %d = %s", i, _nc_tracechar(sp, sp->_fifo[i])));
 }
 #endif /* TRACE */
 
 NCURSES_EXPORT(int)
-ungetch(int ch)
+_nc_ungetch(SCREEN *sp, int ch)
 {
-    T((T_CALLED("ungetch(%s)"), _tracechar(ch)));
+    int rc = ERR;
 
-    if (tail == -1)
-	returnCode(ERR);
-    if (head == -1) {
-	head = 0;
-	t_inc()
+    if (tail != -1) {
+	if (head == -1) {
+	    head = 0;
+	    t_inc();
 	    peek = tail;	/* no raw keys */
-    } else
-	h_dec();
+	} else
+	    h_dec();
 
-    SP->_fifo[head] = ch;
-    T(("ungetch %s ok", _tracechar(ch)));
+	sp->_fifo[head] = ch;
+	T(("ungetch %s ok", _nc_tracechar(sp, ch)));
 #ifdef TRACE
-    if (_nc_tracing & TRACE_IEVENT)
-	_nc_fifo_dump();
+	if (USE_TRACEF(TRACE_IEVENT)) {
+	    _nc_fifo_dump(sp);
+	    _nc_unlock_global(tracef);
+	}
 #endif
-    returnCode(OK);
+	rc = OK;
+    }
+    return rc;
+}
+
+NCURSES_EXPORT(int)
+ungetch(int ch)
+{
+    T((T_CALLED("ungetch(%s)"), _nc_tracechar(SP, ch)));
+    returnCode(_nc_ungetch(SP, ch));
 }
diff -Naur ncurses-5.6.orig/ncurses/base/lib_window.c ncurses-5.6/ncurses/base/lib_window.c
--- ncurses-5.6.orig/ncurses/base/lib_window.c	2006-05-27 15:21:19.000000000 -0400
+++ ncurses-5.6/ncurses/base/lib_window.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_window.c,v 1.22 2006/05/27 19:21:19 tom Exp $")
+MODULE_ID("$Id: lib_window.c,v 1.25 2008/06/07 14:12:56 tom Exp $")
 
 NCURSES_EXPORT(void)
 _nc_synchook(WINDOW *win)
@@ -149,7 +149,7 @@
 		/* left and right character in child coordinates */
 		int left = pp->_line[win->_pary + y].firstchar - win->_parx;
 		int right = pp->_line[win->_pary + y].lastchar - win->_parx;
-		/* The change maybe outside the childs range */
+		/* The change may be outside the child's range */
 		if (left < 0)
 		    left = 0;
 		if (right > win->_maxx)
@@ -186,6 +186,7 @@
 
     if (win != 0) {
 
+	_nc_lock_global(curses);
 	if (win->_flags & _ISPAD) {
 	    nwin = newpad(win->_maxy + 1,
 			  win->_maxx + 1);
@@ -243,6 +244,7 @@
 		nwin->_line[i].lastchar = win->_line[i].lastchar;
 	    }
 	}
+	_nc_unlock_global(curses);
     }
     returnWin(nwin);
 }
diff -Naur ncurses-5.6.orig/ncurses/base/memmove.c ncurses-5.6/ncurses/base/memmove.c
--- ncurses-5.6.orig/ncurses/base/memmove.c	2000-12-09 21:43:28.000000000 -0500
+++ ncurses-5.6/ncurses/base/memmove.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: memmove.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
+MODULE_ID("$Id: memmove.c,v 1.5 2007/08/11 17:12:43 tom Exp $")
 
 /****************************************************************************
  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
@@ -51,7 +51,7 @@
 	    }
 	    for (j = 0; j < n; j++)
 		bfr[j] = SRC[j];
-	    SRC = bfr;
+	    s2 = bfr;
 	}
 	while (n-- != 0)
 	    DST[n] = SRC[n];
diff -Naur ncurses-5.6.orig/ncurses/base/resizeterm.c ncurses-5.6/ncurses/base/resizeterm.c
--- ncurses-5.6.orig/ncurses/base/resizeterm.c	2006-10-14 16:43:31.000000000 -0400
+++ ncurses-5.6/ncurses/base/resizeterm.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,12 +41,24 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: resizeterm.c,v 1.18 2006/10/14 20:43:31 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.34 2008/06/07 13:58:40 tom Exp $")
 
 #define stolen_lines (screen_lines - SP->_lines_avail)
 
+/*
+ * If we're trying to be reentrant, do not want any local statics.
+ */
+#if USE_REENTRANT
+#define EXTRA_ARGS ,     CurLines,     CurCols
+#define EXTRA_DCLS , int CurLines, int CurCols
+#else
 static int current_lines;
 static int current_cols;
+#define CurLines current_lines
+#define CurCols  current_cols
+#define EXTRA_ARGS		/* nothing */
+#define EXTRA_DCLS		/* nothing */
+#endif
 
 #ifdef TRACE
 static void
@@ -54,9 +66,10 @@
 {
     WINDOWLIST *wp;
 
+    _nc_lock_global(curses);
     _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
 	    screen_lines, screen_columns);
-    for (wp = _nc_windows; wp != 0; wp = wp->next) {
+    for (each_window(wp)) {
 	_tracef("  window %p is %2ld x %2ld at %2ld,%2ld",
 		&(wp->win),
 		(long) wp->win._maxy + 1,
@@ -64,9 +77,14 @@
 		(long) wp->win._begy,
 		(long) wp->win._begx);
     }
+    _nc_unlock_global(curses);
 }
 #endif
 
+/*
+ * Return true if the given dimensions do not match the internal terminal
+ * structure's size.
+ */
 NCURSES_EXPORT(bool)
 is_term_resized(int ToLines, int ToCols)
 {
@@ -78,6 +96,48 @@
 }
 
 /*
+ */
+static ripoff_t *
+ripped_window(WINDOW *win)
+{
+    ripoff_t *result = 0;
+    ripoff_t *rop;
+
+    if (win != 0) {
+	for (each_ripoff(rop)) {
+	    if (rop->win == win && rop->line != 0) {
+		result = rop;
+		break;
+	    }
+	}
+    }
+    return result;
+}
+
+/*
+ * Returns the number of lines from the bottom for the beginning of a ripped
+ * off window.
+ */
+static int
+ripped_bottom(WINDOW *win)
+{
+    int result = 0;
+    ripoff_t *rop;
+
+    if (win != 0) {
+	for (each_ripoff(rop)) {
+	    if (rop->line < 0) {
+		result -= rop->line;
+		if (rop->win == win) {
+		    break;
+		}
+	    }
+	}
+    }
+    return result;
+}
+
+/*
  * Return the number of levels of child-windows under the current window.
  */
 static int
@@ -88,7 +148,7 @@
     if (cmp != 0) {
 	WINDOWLIST *wp;
 
-	for (wp = _nc_windows; wp != 0; wp = wp->next) {
+	for (each_window(wp)) {
 	    WINDOW *tst = &(wp->win);
 	    if (tst->_parent == cmp) {
 		depth = 1 + child_depth(tst);
@@ -121,41 +181,53 @@
  * FIXME: must adjust position so it's within the parent!
  */
 static int
-adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen)
+adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     int result;
-    int bottom = current_lines + SP->_topstolen - stolen;
+    int bottom = CurLines + SP->_topstolen - stolen;
     int myLines = win->_maxy + 1;
     int myCols = win->_maxx + 1;
+    ripoff_t *rop = ripped_window(win);
 
-    T((T_CALLED("adjust_window(%p,%d,%d) currently %ldx%ld at %ld,%ld"),
+    T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"),
        win, ToLines, ToCols,
+       (rop != 0) ? " (rip)" : "",
+       parent_depth(win),
+       child_depth(win),
        (long) getmaxy(win), (long) getmaxx(win),
-       (long) getbegy(win), (long) getbegx(win)));
+       (long) getbegy(win) + win->_yoffset, (long) getbegx(win)));
 
-    if (win->_begy >= bottom) {
-	win->_begy += (ToLines - current_lines);
+    if (rop != 0 && rop->line < 0) {
+	/*
+	 * If it is a ripped-off window at the bottom of the screen, simply
+	 * move it to the same relative position.
+	 */
+	win->_begy = ToLines - ripped_bottom(win) - 0 - win->_yoffset;
+    } else if (win->_begy >= bottom) {
+	/*
+	 * If it is below the bottom of the new screen, move up by the same
+	 * amount that the screen shrank.
+	 */
+	win->_begy += (ToLines - CurLines);
     } else {
-	if (myLines == current_lines - stolen
-	    && ToLines != current_lines)
+	if (myLines == (CurLines - stolen)
+	    && ToLines != CurLines) {
 	    myLines = ToLines - stolen;
-	else if (myLines == current_lines
-		 && ToLines != current_lines)
+	} else if (myLines == CurLines
+		   && ToLines != CurLines) {
 	    myLines = ToLines;
+	}
     }
 
-    if (myLines > ToLines)
+    if (myLines > ToLines) {
 	myLines = ToLines;
+    }
 
     if (myCols > ToCols)
 	myCols = ToCols;
 
-    if (myLines == current_lines
-	&& ToLines != current_lines)
-	myLines = ToLines;
-
-    if (myCols == current_cols
-	&& ToCols != current_cols)
+    if (myCols == CurCols
+	&& ToCols != CurCols)
 	myCols = ToCols;
 
     result = wresize(win, myLines, myCols);
@@ -167,7 +239,7 @@
  * children, decrease those to fit, then decrease the containing window, etc.
  */
 static int
-decrease_size(int ToLines, int ToCols, int stolen)
+decrease_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     bool found;
     int depth = 0;
@@ -179,13 +251,14 @@
 	found = FALSE;
 	TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d",
 			  ToLines, ToCols, depth));
-	for (wp = _nc_windows; wp != 0; wp = wp->next) {
+	for (each_window(wp)) {
 	    WINDOW *win = &(wp->win);
 
 	    if (!(win->_flags & _ISPAD)) {
 		if (child_depth(win) == depth) {
 		    found = TRUE;
-		    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
+		    if (adjust_window(win, ToLines, ToCols,
+				      stolen EXTRA_ARGS) != OK)
 			returnCode(ERR);
 		}
 	    }
@@ -200,7 +273,7 @@
  * parent, increase those to fit, then increase the contained window, etc.
  */
 static int
-increase_size(int ToLines, int ToCols, int stolen)
+increase_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     bool found;
     int depth = 0;
@@ -212,13 +285,14 @@
 	found = FALSE;
 	TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d",
 			  ToLines, ToCols, depth));
-	for (wp = _nc_windows; wp != 0; wp = wp->next) {
+	for (each_window(wp)) {
 	    WINDOW *win = &(wp->win);
 
 	    if (!(win->_flags & _ISPAD)) {
 		if (parent_depth(win) == depth) {
 		    found = TRUE;
-		    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
+		    if (adjust_window(win, ToLines, ToCols,
+				      stolen EXTRA_ARGS) != OK)
 			returnCode(ERR);
 		}
 	    }
@@ -235,36 +309,45 @@
 NCURSES_EXPORT(int)
 resize_term(int ToLines, int ToCols)
 {
-    int result = OK;
-    int was_stolen = (screen_lines - SP->_lines_avail);
+    int result = OK EXTRA_ARGS;
+    int was_stolen;
 
     T((T_CALLED("resize_term(%d,%d) old(%d,%d)"),
        ToLines, ToCols,
        screen_lines, screen_columns));
 
+    if (SP == 0) {
+	returnCode(ERR);
+    }
+
+    _nc_lock_global(curses);
+
+    was_stolen = (screen_lines - SP->_lines_avail);
     if (is_term_resized(ToLines, ToCols)) {
-	int myLines = current_lines = screen_lines;
-	int myCols = current_cols = screen_columns;
+	int myLines = CurLines = screen_lines;
+	int myCols = CurCols = screen_columns;
 
 #ifdef TRACE
-	if (_nc_tracing & TRACE_UPDATE)
+	if (USE_TRACEF(TRACE_UPDATE)) {
 	    show_window_sizes("before");
+	    _nc_unlock_global(tracef);
+	}
 #endif
 	if (ToLines > screen_lines) {
-	    increase_size(myLines = ToLines, myCols, was_stolen);
-	    current_lines = myLines;
-	    current_cols = myCols;
+	    increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
+	    CurLines = myLines;
+	    CurCols = myCols;
 	}
 
 	if (ToCols > screen_columns) {
-	    increase_size(myLines, myCols = ToCols, was_stolen);
-	    current_lines = myLines;
-	    current_cols = myCols;
+	    increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
+	    CurLines = myLines;
+	    CurCols = myCols;
 	}
 
 	if (ToLines < myLines ||
 	    ToCols < myCols) {
-	    decrease_size(ToLines, ToCols, was_stolen);
+	    decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS);
 	}
 
 	screen_lines = lines = ToLines;
@@ -279,10 +362,11 @@
 	    FreeAndNull(SP->newhash);
 	}
 #ifdef TRACE
-	if (_nc_tracing & TRACE_UPDATE) {
-	    LINES = ToLines - was_stolen;
-	    COLS = ToCols;
+	if (USE_TRACEF(TRACE_UPDATE)) {
+	    SET_LINES(ToLines - was_stolen);
+	    SET_COLS(ToCols);
 	    show_window_sizes("after");
+	    _nc_unlock_global(tracef);
 	}
 #endif
     }
@@ -291,8 +375,10 @@
      * Always update LINES, to allow for call from lib_doupdate.c which
      * needs to have the count adjusted by the stolen (ripped off) lines.
      */
-    LINES = ToLines - was_stolen;
-    COLS = ToCols;
+    SET_LINES(ToLines - was_stolen);
+    SET_COLS(ToCols);
+
+    _nc_unlock_global(curses);
 
     returnCode(result);
 }
@@ -308,22 +394,61 @@
 NCURSES_EXPORT(int)
 resizeterm(int ToLines, int ToCols)
 {
-    int result = OK;
-
-    SP->_sig_winch = FALSE;
+    int result = ERR;
 
     T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
        ToLines, ToCols,
        screen_lines, screen_columns));
 
-    if (is_term_resized(ToLines, ToCols)) {
+    if (SP != 0) {
+	result = OK;
+	SP->_sig_winch = FALSE;
 
+	if (is_term_resized(ToLines, ToCols)) {
 #if USE_SIGWINCH
-	ungetch(KEY_RESIZE);	/* so application can know this */
-	clearok(curscr, TRUE);	/* screen contents are unknown */
+	    ripoff_t *rop;
+	    bool slk_visible = (SP != 0
+				&& SP->_slk != 0
+				&& !(SP->_slk->hidden));
+
+	    if (slk_visible) {
+		slk_clear();
+	    }
 #endif
+	    result = resize_term(ToLines, ToCols);
+
+#if USE_SIGWINCH
+	    _nc_ungetch(SP, KEY_RESIZE);	/* so application can know this */
+	    clearok(curscr, TRUE);	/* screen contents are unknown */
+
+	    /* ripped-off lines are a special case: if we did not lengthen
+	     * them, we haven't moved them either.  repaint them, too.
+	     *
+	     * for the rest - stdscr and other windows - the client has to
+	     * decide which to repaint, since without panels, ncurses does
+	     * not know which are really on top.
+	     */
+	    for (each_ripoff(rop)) {
+		if (rop->win != stdscr
+		    && rop->win != 0
+		    && rop->line < 0) {
+
+		    if (rop->hook != _nc_slk_initialize) {
+			touchwin(rop->win);
+			wnoutrefresh(rop->win);
+		    }
+		}
+	    }
+
+	    /* soft-keys are a special case: we _know_ how to repaint them */
+	    if (slk_visible) {
+		slk_restore();
+		slk_touch();
 
-	result = resize_term(ToLines, ToCols);
+		slk_refresh();
+	    }
+#endif
+	}
     }
 
     returnCode(result);
diff -Naur ncurses-5.6.orig/ncurses/base/safe_sprintf.c ncurses-5.6/ncurses/base/safe_sprintf.c
--- ncurses-5.6.orig/ncurses/base/safe_sprintf.c	2003-08-09 17:52:04.000000000 -0400
+++ ncurses-5.6/ncurses/base/safe_sprintf.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: safe_sprintf.c,v 1.18 2003/08/09 21:52:04 tom Exp $")
+MODULE_ID("$Id: safe_sprintf.c,v 1.20 2007/04/21 22:28:06 tom Exp $")
 
 #if USE_SAFE_SPRINTF
 
@@ -207,56 +207,58 @@
 }
 #endif
 
+#define my_buffer _nc_globals.safeprint_buf
+#define my_length _nc_globals.safeprint_used
+
 /*
  * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
  */
 NCURSES_EXPORT(char *)
 _nc_printf_string(const char *fmt, va_list ap)
 {
-    static char *buf;
-    static size_t used;
     char *result = 0;
 
     if (fmt != 0) {
 #if USE_SAFE_SPRINTF
 	int len = _nc_printf_length(fmt, ap);
 
-	if ((int) used < len + 1) {
-	    used = 2 * (len + 1);
-	    buf = typeRealloc(char, used, buf);
+	if ((int) my_length < len + 1) {
+	    my_length = 2 * (len + 1);
+	    my_buffer = typeRealloc(char, my_length, my_buffer);
 	}
-	if (buf != 0) {
-	    *buf = '\0';
+	if (my_buffer != 0) {
+	    *my_buffer = '\0';
 	    if (len >= 0) {
-		vsprintf(buf, fmt, ap);
+		vsprintf(my_buffer, fmt, ap);
 	    }
-	    result = buf;
+	    result = my_buffer;
 	}
 #else
-	static int rows, cols;
+#define MyCols _nc_globals.safeprint_cols
+#define MyRows _nc_globals.safeprint_rows
 
-	if (screen_lines > rows || screen_columns > cols) {
-	    if (screen_lines > rows)
-		rows = screen_lines;
-	    if (screen_columns > cols)
-		cols = screen_columns;
-	    used = (rows * (cols + 1)) + 1;
-	    buf = typeRealloc(char, used, buf);
+	if (screen_lines > MyRows || screen_columns > MyCols) {
+	    if (screen_lines > MyRows)
+		MyRows = screen_lines;
+	    if (screen_columns > MyCols)
+		MyCols = screen_columns;
+	    my_length = (MyRows * (MyCols + 1)) + 1;
+	    my_buffer = typeRealloc(char, my_length, my_buffer);
 	}
 
-	if (buf != 0) {
+	if (my_buffer != 0) {
 # if HAVE_VSNPRINTF
-	    vsnprintf(buf, used, fmt, ap);	/* GNU extension */
+	    vsnprintf(my_buffer, my_length, fmt, ap);	/* GNU extension */
 # else
-	    vsprintf(buf, fmt, ap);	/* ANSI */
+	    vsprintf(my_buffer, fmt, ap);	/* ANSI */
 # endif
-	    result = buf;
+	    result = my_buffer;
 	}
 #endif
-    } else if (buf != 0) {	/* see _nc_freeall() */
-	free(buf);
-	buf = 0;
-	used = 0;
+    } else if (my_buffer != 0) {	/* see _nc_freeall() */
+	free(my_buffer);
+	my_buffer = 0;
+	my_length = 0;
     }
     return result;
 }
diff -Naur ncurses-5.6.orig/ncurses/base/tries.c ncurses-5.6/ncurses/base/tries.c
--- ncurses-5.6.orig/ncurses/base/tries.c	2005-11-26 15:09:18.000000000 -0500
+++ ncurses-5.6/ncurses/base/tries.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,16 +39,16 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: tries.c,v 1.22 2005/11/26 20:09:18 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.26 2008/05/31 16:54:22 tom Exp $")
 
 /*
  * Expand a keycode into the string that it corresponds to, returning null if
  * no match was found, otherwise allocating a string of the result.
  */
 NCURSES_EXPORT(char *)
-_nc_expand_try(struct tries *tree, unsigned code, int *count, size_t len)
+_nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len)
 {
-    struct tries *ptr = tree;
+    TRIES *ptr = tree;
     char *result = 0;
 
     if (code != 0) {
@@ -68,11 +68,13 @@
 	}
     }
     if (result != 0) {
-	if ((result[len] = ptr->ch) == 0)
+	if (ptr != 0 && (result[len] = ptr->ch) == 0)
 	    *((unsigned char *) (result + len)) = 128;
 #ifdef TRACE
-	if (len == 0 && _nc_tracing != 0)
-	    _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
+	if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) {
+	    _tracef("expand_key %s %s", _nc_tracechar(SP, code), _nc_visbuf(result));
+	    _nc_unlock_global(tracef);
+	}
 #endif
     }
     return result;
@@ -83,7 +85,7 @@
  * true if the code was found/removed.
  */
 NCURSES_EXPORT(int)
-_nc_remove_key(struct tries **tree, unsigned code)
+_nc_remove_key(TRIES ** tree, unsigned code)
 {
     T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code));
 
@@ -99,7 +101,7 @@
 		/* don't cut the whole sub-tree */
 		(*tree)->value = 0;
 	    } else {
-		struct tries *to_free = *tree;
+		TRIES *to_free = *tree;
 		*tree = (*tree)->sibling;
 		free(to_free);
 	    }
@@ -115,7 +117,7 @@
  * true if the string was found/removed.
  */
 NCURSES_EXPORT(int)
-_nc_remove_string(struct tries **tree, const char *string)
+_nc_remove_string(TRIES ** tree, const char *string)
 {
     T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string)));
 
@@ -127,7 +129,7 @@
 	    if (string[1] != 0)
 		returnCode(_nc_remove_string(&(*tree)->child, string + 1));
 	    if ((*tree)->child == 0) {
-		struct tries *to_free = *tree;
+		TRIES *to_free = *tree;
 		*tree = (*tree)->sibling;
 		free(to_free);
 		returnCode(TRUE);
diff -Naur ncurses-5.6.orig/ncurses/base/use_window.c ncurses-5.6/ncurses/base/use_window.c
--- ncurses-5.6.orig/ncurses/base/use_window.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/base/use_window.c	2008-06-18 06:49:51.000000000 -0400
@@ -0,0 +1,48 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *     Author: Thomas E. Dickey                        2007                 *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: use_window.c,v 1.8 2008/06/07 14:13:46 tom Exp $")
+
+NCURSES_EXPORT(int)
+use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data)
+{
+    int code = OK;
+
+    T((T_CALLED("use_window(%p,%p,%p)"), win, func, data));
+    _nc_lock_global(curses);
+    code = func(win, data);
+    _nc_unlock_global(curses);
+
+    returnCode(code);
+}
diff -Naur ncurses-5.6.orig/ncurses/base/wresize.c ncurses-5.6/ncurses/base/wresize.c
--- ncurses-5.6.orig/ncurses/base/wresize.c	2006-10-14 16:43:31.000000000 -0400
+++ ncurses-5.6/ncurses/base/wresize.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,13 +32,13 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: wresize.c,v 1.24 2006/10/14 20:43:31 tom Exp $")
+MODULE_ID("$Id: wresize.c,v 1.29 2008/06/07 13:59:01 tom Exp $")
 
 static int
 cleanup_lines(struct ldat *data, int length)
 {
     while (--length >= 0)
-	free(data->text);
+	free(data[length].text);
     free(data);
     return ERR;
 }
@@ -54,7 +54,9 @@
     struct ldat *pline = cmp->_line;
     int row;
 
-    for (wp = _nc_windows; wp != 0; wp = wp->next) {
+    _nc_lock_global(curses);
+
+    for (each_window(wp)) {
 	WINDOW *tst = &(wp->win);
 
 	if (tst->_parent == cmp) {
@@ -75,6 +77,7 @@
 	    repair_subwindows(tst);
 	}
     }
+    _nc_unlock_global(curses);
 }
 
 /*
@@ -96,8 +99,10 @@
 			  (long) win->_begy, (long) win->_begx,
 			  (long) win->_maxy, (long) win->_maxx,
 			  (long) win->_regtop, (long) win->_regbottom));
-	if (_nc_tracing & TRACE_UPDATE)
+	if (USE_TRACEF(TRACE_UPDATE)) {
 	    _tracedump("...before", win);
+	    _nc_unlock_global(tracef);
+	}
     }
 #endif
 
@@ -232,8 +237,10 @@
 		      (long) win->_begy, (long) win->_begx,
 		      (long) win->_maxy, (long) win->_maxx,
 		      (long) win->_regtop, (long) win->_regbottom));
-    if (_nc_tracing & TRACE_UPDATE)
+    if (USE_TRACEF(TRACE_UPDATE)) {
 	_tracedump("...after:", win);
+	_nc_unlock_global(tracef);
+    }
 #endif
     returnCode(OK);
 }
diff -Naur ncurses-5.6.orig/ncurses/curses.priv.h ncurses-5.6/ncurses/curses.priv.h
--- ncurses-5.6.orig/ncurses/curses.priv.h	2006-12-09 19:55:14.000000000 -0500
+++ ncurses-5.6/ncurses/curses.priv.h	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 
 /*
- * $Id: curses.priv.h,v 1.314 2006/12/10 00:55:14 tom Exp $
+ * $Id: curses.priv.h,v 1.383 2008/06/07 14:13:19 tom Exp $
  *
  *	curses.priv.h
  *
@@ -202,16 +202,20 @@
  * delays and expansion in raw mode.
  */
 
-struct tries {
-	struct tries    *child;     /* ptr to child.  NULL if none          */
-	struct tries    *sibling;   /* ptr to sibling.  NULL if none        */
+#define TRIES struct tries
+typedef TRIES {
+	TRIES    *child;            /* ptr to child.  NULL if none          */
+	TRIES    *sibling;          /* ptr to sibling.  NULL if none        */
 	unsigned char    ch;        /* character at this node               */
 	unsigned short   value;     /* code of string so far.  0 if none.   */
-};
+#undef TRIES
+} TRIES;
 
 /*
  * Common/troublesome character definitions
  */
+#define StringOf(ch) {ch, 0}
+
 #define L_BRACE '{'
 #define R_BRACE '}'
 #define S_QUOTE '\''
@@ -248,6 +252,10 @@
 #define wbkgrnd	    wbkgd
 #endif
 
+#undef NCURSES_OPAQUE
+#define NCURSES_INTERNALS 1
+#define NCURSES_OPAQUE 0
+
 #include <curses.h>	/* we'll use -Ipath directive to get the right one! */
 #include <term.h>
 #include <term_entry.h>
@@ -284,6 +292,70 @@
 #define GET_SCREEN_PAIR(s)	GetPair(SCREEN_ATTRS(s))
 #define SET_SCREEN_PAIR(s,p)	SetPair(SCREEN_ATTRS(s), p)
 
+#if USE_REENTRANT
+NCURSES_EXPORT(int *) _nc_ptr_Lines (void);
+NCURSES_EXPORT(int *) _nc_ptr_Cols (void);
+#define ptrLines() (SP ? &(SP->_LINES) : &(_nc_prescreen._LINES))
+#define ptrCols()  (SP ? &(SP->_COLS)  : &(_nc_prescreen._COLS))
+#define SET_LINES(value) *_nc_ptr_Lines() = value
+#define SET_COLS(value)  *_nc_ptr_Cols() = value
+#else
+#define ptrLines() &LINES
+#define ptrCols()  &COLS
+#define SET_LINES(value) LINES = value
+#define SET_COLS(value)  COLS = value
+#endif
+
+#define TR_MUTEX(data) _tracef("%s@%d: me:%08lX COUNT:%2u/%2d/%6d/%2d/%s%9u: " #data, \
+	    __FILE__, __LINE__, \
+	    (unsigned long) (pthread_self()), \
+	    data.__data.__lock, \
+	    data.__data.__count, \
+	    data.__data.__owner, \
+	    data.__data.__kind, \
+	    (data.__data.__nusers > 5) ? " OOPS " : "", \
+	    data.__data.__nusers)
+#define TR_GLOBAL_MUTEX(name) TR_MUTEX(_nc_globals.mutex_##name)
+
+#ifdef USE_PTHREADS
+
+#if USE_REENTRANT
+#include <pthread.h>
+extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *);
+extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *);
+extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *);
+extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *);
+#define _nc_lock_global(name)	_nc_mutex_lock(&_nc_globals.mutex_##name)
+#define _nc_try_global(name)    _nc_mutex_trylock(&_nc_globals.mutex_##name)
+#define _nc_unlock_global(name)	_nc_mutex_unlock(&_nc_globals.mutex_##name)
+
+#else
+#error POSIX threads requires --enable-reentrant option
+#endif
+
+#if HAVE_NANOSLEEP
+#undef HAVE_NANOSLEEP
+#define HAVE_NANOSLEEP 0	/* nanosleep suspends all threads */
+#endif
+
+#else /* !USE_PTHREADS */
+
+#define _nc_mutex_init(obj)	/* nothing */
+
+#define _nc_lock_global(name)	/* nothing */
+#define _nc_try_global(name)    0
+#define _nc_unlock_global(name)	/* nothing */
+
+#endif /* USE_PTHREADS */
+
+#if HAVE_GETTIMEOFDAY
+# define PRECISE_GETTIME 1
+# define TimeType struct timeval
+#else
+# define PRECISE_GETTIME 0
+# define TimeType time_t
+#endif
+
 /*
  * Definitions for color pairs
  */
@@ -364,9 +436,9 @@
 #endif	/* USE_TERMLIB */
 
 typedef	struct {
+	WINDOW *win;		/* the window used in the hook      */
 	int	line;		/* lines to take, < 0 => from bottom*/
 	int	(*hook)(WINDOW *, int); /* callback for user	    */
-	WINDOW *w;		/* maybe we need this for cleanup   */
 } ripoff_t;
 
 #if USE_GPM_SUPPORT
@@ -393,6 +465,188 @@
 #endif /* HAVE_LIBDL */
 #endif /* USE_GPM_SUPPORT */
 
+typedef struct {
+    long sequence;
+    bool last_used;
+    char *fix_sgr0;		/* this holds the filtered sgr0 string */
+    char *last_bufp;		/* help with fix_sgr0 leak */
+    TERMINAL *last_term;
+} TGETENT_CACHE;
+
+#define TGETENT_MAX 4
+
+/*
+ * State of tparm().
+ */
+#define STACKSIZE 20
+
+typedef struct {
+	union {
+		int	num;
+		char	*str;
+	} data;
+	bool num_type;
+} STACK_FRAME;
+
+#define NUM_VARS 26
+
+typedef struct {
+#ifdef TRACE
+	const char	*tname;
+#endif
+	const char	*tparam_base;
+
+	STACK_FRAME	stack[STACKSIZE];
+	int		stack_ptr;
+
+	char		*out_buff;
+	size_t		out_size;
+	size_t		out_used;
+
+	char		*fmt_buff;
+	size_t		fmt_size;
+
+	int		dynamic_var[NUM_VARS];
+	int		static_vars[NUM_VARS];
+} TPARM_STATE;
+
+typedef struct {
+    char *text;
+    size_t size;
+} TRACEBUF;
+
+/*
+ * The filesystem database normally uses a single-letter for the lower level
+ * of directories.  Use a hexadecimal code for filesystems which do not
+ * preserve mixed-case names.
+ */
+#if MIXEDCASE_FILENAMES
+#define LEAF_FMT "%c"
+#else
+#define LEAF_FMT "%02x"
+#endif
+
+/*
+ * TRACEMSE_FMT is no longer than 80 columns, there are 5 numbers that
+ * could at most have 10 digits, and the mask contains no more than 32 bits
+ * with each bit representing less than 15 characters.  Usually the whole
+ * string is less than 80 columns, but this buffer size is an absolute
+ * limit.
+ */
+#define TRACEMSE_MAX	(80 + (5 * 10) + (32 * 15))
+#define TRACEMSE_FMT	"id %2d  at (%2d, %2d, %2d) state %4lx = {" /* } */
+
+/*
+ * Global data which is not specific to a screen.
+ */
+typedef struct {
+	SIG_ATOMIC_T	have_sigwinch;
+	SIG_ATOMIC_T	cleanup_nested;
+
+	bool		init_signals;
+	bool		init_screen;
+
+	const char	*comp_sourcename;
+	char		*comp_termtype;
+
+	bool		have_tic_directory;
+	bool		keep_tic_directory;
+	const char	*tic_directory;
+
+	char		*dbi_list;
+	int		dbi_size;
+
+	char		*first_name;
+	char		**keyname_table;
+
+	int		slk_format;
+
+	char		*safeprint_buf;
+	size_t		safeprint_used;
+
+	TGETENT_CACHE	tgetent_cache[TGETENT_MAX];
+	int		tgetent_index;
+	long		tgetent_sequence;
+
+	WINDOWLIST	*_nc_windowlist;
+#define _nc_windows	_nc_globals._nc_windowlist
+
+#if USE_HOME_TERMINFO
+	char		*home_terminfo;
+#endif
+
+#if !USE_SAFE_SPRINTF
+	int		safeprint_cols;
+	int		safeprint_rows;
+#endif
+
+#ifdef TRACE
+	bool		init_trace;
+	char		trace_fname[PATH_MAX];
+	int		trace_level;
+	FILE		*trace_fp;
+
+	char		*tracearg_buf;
+	size_t		tracearg_used;
+
+	TRACEBUF	*tracebuf_ptr;
+	size_t		tracebuf_used;
+
+	char		tracechr_buf[40];
+
+	char		*tracedmp_buf;
+	size_t		tracedmp_used;
+
+	unsigned char	*tracetry_buf;
+	size_t		tracetry_used;
+
+	char		traceatr_color_buf[2][80];
+	int		traceatr_color_sel;
+	int		traceatr_color_last;
+
+#endif	/* TRACE */
+
+#ifdef USE_PTHREADS
+       pthread_mutex_t	mutex_curses;
+       pthread_mutex_t	mutex_tst_tracef;
+       pthread_mutex_t	mutex_tracef;
+       int		nested_tracef;
+#endif
+} NCURSES_GLOBALS;
+
+extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
+
+#define N_RIPS 5
+
+/*
+ * Global data which can be swept up into a SCREEN when one is created.
+ * It may be modified before the next SCREEN is created.
+ */
+typedef struct {
+	bool		use_env;
+	bool		filter_mode;
+	attr_t		previous_attr;
+	ripoff_t	rippedoff[N_RIPS];
+	ripoff_t	*rsp;
+	TPARM_STATE	tparm_state;
+	TTY		*saved_tty;	/* savetty/resetty information	    */
+#if BROKEN_LINKER || USE_REENTRANT
+	chtype		*real_acs_map;
+	int		_LINES;
+	int		_COLS;
+	TERMINAL	*_cur_term;
+#ifdef TRACE
+	long		_outchars;
+	const char	*_tputs_trace;
+#endif
+#endif
+} NCURSES_PRESCREEN;
+
+#define ripoff_sp	_nc_prescreen.rsp
+#define ripoff_stack	_nc_prescreen.rippedoff
+
+extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
+
 /*
  * The SCREEN structure.
  */
@@ -405,20 +659,19 @@
 	bool		_buffered;	/* setvbuf uses _setbuf data	    */
 	int		_checkfd;	/* filedesc for typeahead check	    */
 	TERMINAL	*_term;		/* terminal type information	    */
-	short		_lines;		/* screen lines			    */
-	short		_columns;	/* screen columns		    */
+	TTY		_saved_tty;	/* savetty/resetty information	    */
+	NCURSES_SIZE_T	_lines;		/* screen lines			    */
+	NCURSES_SIZE_T	_columns;	/* screen columns		    */
 
-	short		_lines_avail;	/* lines available for stdscr	    */
-	short		_topstolen;	/* lines stolen from top	    */
-	ripoff_t	_rippedoff[5];	/* list of lines stolen		    */
-	int		_rip_count;	/* ...and total lines stolen	    */
+	NCURSES_SIZE_T	_lines_avail;	/* lines available for stdscr	    */
+	NCURSES_SIZE_T	_topstolen;	/* lines stolen from top	    */
 
 	WINDOW		*_curscr;	/* current screen		    */
 	WINDOW		*_newscr;	/* virtual screen to be updated to  */
 	WINDOW		*_stdscr;	/* screen's full-window context	    */
 
-	struct tries	*_keytry;	/* "Try" for use with keypad mode   */
-	struct tries	*_key_ok;	/* Disabled keys via keyok(,FALSE)  */
+	TRIES		*_keytry;	/* "Try" for use with keypad mode   */
+	TRIES		*_key_ok;	/* Disabled keys via keyok(,FALSE)  */
 	bool		_tried;		/* keypad mode was initialized	    */
 	bool		_keypad_on;	/* keypad mode is currently on	    */
 
@@ -532,7 +785,7 @@
 	int		_maxclick;
 	bool		(*_mouse_event) (SCREEN *);
 	bool		(*_mouse_inline)(SCREEN *);
-	bool		(*_mouse_parse) (int);
+	bool		(*_mouse_parse) (SCREEN *, int);
 	void		(*_mouse_resume)(SCREEN *);
 	void		(*_mouse_wrap)	(SCREEN *);
 	int		_mouse_fd;	/* file-descriptor, if any */
@@ -583,12 +836,6 @@
 	 * per screen basis.
 	 */
 	struct panelhook _panelHook;
-	/*
-	 * Linked-list of all windows, to support '_nc_resizeall()' and
-	 * '_nc_freeall()'
-	 */
-	WINDOWLIST	*_nc_sp_windows;
-#define _nc_windows SP->_nc_sp_windows
 
 	bool		_sig_winch;
 	SCREEN		*_next_screen;
@@ -597,12 +844,30 @@
 	unsigned long	*oldhash, *newhash;
 	HASHMAP		*hashtab;
 	int		hashtab_len;
+	int		*_oldnum_list;
+	int		_oldnum_size;
 
 	bool		_cleanup;	/* cleanup after int/quit signal */
 	int		(*_outch)(int); /* output handler if not putc */
 
 	int		_legacy_coding;	/* see use_legacy_coding() */
 
+#if USE_REENTRANT
+	char		_ttytype[NAMESIZE];
+	int		_ESCDELAY;
+	int		_TABSIZE;
+	int		_LINES;
+	int		_COLS;
+#ifdef TRACE
+	long		_outchars;
+	const char	*_tputs_trace;
+#endif
+#endif
+
+#ifdef TRACE
+	char		tracechr_buf[40];
+	char		tracemse_buf[TRACEMSE_MAX];
+#endif
 	/*
 	 * ncurses/ncursesw are the same up to this point.
 	 */
@@ -615,10 +880,12 @@
 };
 
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
+extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 
 	WINDOWLIST {
-	WINDOW	win;	/* first, so WINDOW_EXT() works */
+	WINDOW	win;		/* first, so WINDOW_EXT() works */
 	WINDOWLIST *next;
+	SCREEN *screen;		/* screen containing the window */
 #ifdef _XOPEN_SOURCE_EXTENDED
 	char addch_work[(MB_LEN_MAX * 9) + 1];
 	unsigned addch_used;	/* number of bytes in addch_work[] */
@@ -691,11 +958,17 @@
 #endif
 
 #ifdef TRACE
-#define TRACE_OUTCHARS(n) _nc_outchars += (n);
+#if USE_REENTRANT
+#define COUNT_OUTCHARS(n) _nc_count_outchars(n);
+#else
+#define COUNT_OUTCHARS(n) _nc_outchars += (n);
+#endif
 #else
-#define TRACE_OUTCHARS(n) /* nothing */
+#define COUNT_OUTCHARS(n) /* nothing */
 #endif
 
+#define RESET_OUTCHARS() COUNT_OUTCHARS(-_nc_outchars)
+
 #define UChar(c)	((unsigned char)(c))
 #define ChCharOf(c)	((c) & (chtype)A_CHARTEXT)
 #define ChAttrOf(c)	((c) & (chtype)A_ATTRIBUTES)
@@ -705,7 +978,7 @@
 #endif
 
 #if USE_WIDEC_SUPPORT /* { */
-#define isEILSEQ(status) ((status == (size_t)-1) && (errno == EILSEQ))
+#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
 
 #define init_mb(state)	memset(&state, 0, sizeof(state))
 
@@ -718,12 +991,26 @@
 #define NulChar		0,0,0,0	/* FIXME: see CCHARW_MAX */
 #define CharOf(c)	((c).chars[0])
 #define AttrOf(c)	((c).attr)
-#define AddAttr(c,a)	AttrOf(c) |= ((a) & A_ATTRIBUTES)
+
+#define AddAttr(c,a)	AttrOf(c) |=  ((a) & A_ATTRIBUTES)
 #define RemAttr(c,a)	AttrOf(c) &= ~((a) & A_ATTRIBUTES)
-#define SetAttr(c,a)	AttrOf(c) = ((a) & A_ATTRIBUTES)
+#define SetAttr(c,a)	AttrOf(c) =   ((a) & A_ATTRIBUTES) | WidecExt(c)
+
 #define NewChar2(c,a)	{ a, { c, NulChar } NulColor }
 #define NewChar(ch)	NewChar2(ChCharOf(ch), ChAttrOf(ch))
+
+#if CCHARW_MAX == 5
+#define CharEq(a,b)	(((a).attr == (b).attr) \
+		       && (a).chars[0] == (b).chars[0] \
+		       && (a).chars[1] == (b).chars[1] \
+		       && (a).chars[2] == (b).chars[2] \
+		       && (a).chars[3] == (b).chars[3] \
+		       && (a).chars[4] == (b).chars[4] \
+			if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
+#else
 #define CharEq(a,b)	(!memcmp(&(a), &(b), sizeof(a)))
+#endif
+
 #define SetChar(ch,c,a) do {							    \
 			    NCURSES_CH_T *_cp = &ch;				    \
 			    memset(_cp, 0, sizeof(ch));				    \
@@ -741,7 +1028,7 @@
 #define PUTC(ch,b)	do { if(!isWidecExt(ch)) {				    \
 			if (Charable(ch)) {					    \
 			    fputc(CharOf(ch), b);				    \
-			    TRACE_OUTCHARS(1);					    \
+			    COUNT_OUTCHARS(1);					    \
 			} else {						    \
 			    PUTC_INIT;						    \
 			    for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {	    \
@@ -757,11 +1044,11 @@
 				}						    \
 				fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b);	    \
 			    }							    \
-			    TRACE_OUTCHARS(PUTC_i);				    \
+			    COUNT_OUTCHARS(PUTC_i);				    \
 			} } } while (0)
 
-#define BLANK		{ WA_NORMAL, {' '} NulColor }
-#define ZEROS		{ WA_NORMAL, {'\0'} NulColor }
+#define BLANK		NewChar2(' ', WA_NORMAL)
+#define ZEROS		NewChar2('\0', WA_NORMAL)
 #define ISBLANK(ch)	((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
 
 	/*
@@ -877,6 +1164,13 @@
 #endif
 
 /*
+ * Standardize/simplify common loops
+ */
+#define each_screen(p) p = _nc_screen_chain; p != 0; p = (p)->_next_screen
+#define each_window(p) p = _nc_windows; p != 0; p = (p)->next
+#define each_ripoff(p) p = ripoff_stack; (p - ripoff_stack) < N_RIPS; ++p
+
+/*
  * Prefixes for call/return points of library function traces.  We use these to
  * instrument the public functions so that the traces can be easily transformed
  * into regression scripts.
@@ -887,6 +1181,12 @@
 
 #ifdef TRACE
 
+#if USE_REENTRANT
+#define TPUTS_TRACE(s)	_nc_set_tputs_trace(s);
+#else
+#define TPUTS_TRACE(s)	_nc_tputs_trace = s;
+#endif
+
 #define START_TRACE() \
 	if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \
 	    int t = _nc_getenv_num("NCURSES_TRACE"); \
@@ -894,9 +1194,21 @@
 		trace((unsigned) t); \
 	}
 
-#define TR(n, a)	if (_nc_tracing & (n)) _tracef a
+/*
+ * Many of the _tracef() calls use static buffers; lock the trace state before
+ * trying to fill them.
+ */
+#if USE_REENTRANT
+#define USE_TRACEF(mask) _nc_use_tracef(mask)
+extern NCURSES_EXPORT(int)	_nc_use_tracef (unsigned);
+extern NCURSES_EXPORT(void)	_nc_locked_tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
+#else
+#define USE_TRACEF(mask) (_nc_tracing & (mask))
+#define _nc_locked_tracef _tracef
+#endif
+
+#define TR(n, a)	if (USE_TRACEF(n)) _nc_locked_tracef a
 #define T(a)		TR(TRACE_CALLS, a)
-#define TPUTS_TRACE(s)	_nc_tputs_trace = s;
 #define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
 
 #define returnAttr(code)	TRACE_RETURN(code,attr_t)
@@ -926,9 +1238,20 @@
 extern NCURSES_EXPORT(int)              _nc_retrace_int (int);
 extern NCURSES_EXPORT(unsigned)         _nc_retrace_unsigned (unsigned);
 extern NCURSES_EXPORT(void *)           _nc_retrace_void_ptr (void *);
-extern NCURSES_EXPORT(void)             _nc_fifo_dump (void);
+extern NCURSES_EXPORT(void)             _nc_fifo_dump (SCREEN *);
+
+#if USE_REENTRANT
+NCURSES_WRAPPED_VAR(long, _nc_outchars);
+NCURSES_WRAPPED_VAR(const char *, _nc_tputs_trace);
+#define _nc_outchars       NCURSES_PUBLIC_VAR(_nc_outchars())
+#define _nc_tputs_trace    NCURSES_PUBLIC_VAR(_nc_tputs_trace())
+extern NCURSES_EXPORT(void)		_nc_set_tputs_trace (const char *);
+extern NCURSES_EXPORT(void)		_nc_count_outchars (long);
+#else
 extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
 extern NCURSES_EXPORT_VAR(long)         _nc_outchars;
+#endif
+
 extern NCURSES_EXPORT_VAR(unsigned)     _nc_tracing;
 
 #if USE_WIDEC_SUPPORT
@@ -1083,6 +1406,21 @@
 extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int);
 #endif
 
+/* comp_captab.c */
+typedef struct {
+	short	nte_name;	/* offset of name to hash on */
+	int	nte_type;	/* BOOLEAN, NUMBER or STRING */
+	short	nte_index;	/* index of associated variable in its array */
+	short	nte_link;	/* index in table of next hash, or -1 */
+} name_table_data;
+
+typedef struct
+{
+	short	from;
+	short	to;
+	short	source;
+} alias_table_data;
+
 /* doupdate.c */
 #if USE_XMC_SUPPORT
 extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);
@@ -1141,14 +1479,18 @@
 extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
 extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
 extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
+extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *);
 
 /* lib_tstp.c */
 #if USE_SIGWINCH
-extern NCURSES_EXPORT(int) _nc_handle_sigwinch(int);
+extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *);
 #else
 #define _nc_handle_sigwinch(a) /* nothing */
 #endif
 
+/* lib_ungetch.c */
+extern NCURSES_EXPORT(int) _nc_ungetch (SCREEN *, int);
+
 /* lib_wacs.c */
 #if USE_WIDEC_SUPPORT
 extern NCURSES_EXPORT(void) _nc_init_wacs(void);
@@ -1177,32 +1519,37 @@
 extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list);
 
 /* tries.c */
-extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned);
-extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned, int *, size_t);
-extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned);
-extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);
+extern NCURSES_EXPORT(int) _nc_add_to_try (TRIES **, const char *, unsigned);
+extern NCURSES_EXPORT(char *) _nc_expand_try (TRIES *, unsigned, int *, size_t);
+extern NCURSES_EXPORT(int) _nc_remove_key (TRIES **, unsigned);
+extern NCURSES_EXPORT(int) _nc_remove_string (TRIES **, const char *);
 
 /* elsewhere ... */
-extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
+extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry (ENTRY *, TERMTYPE *);
+extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *, int);
+extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype);
+extern NCURSES_EXPORT(SCREEN *) _nc_screen_of (WINDOW *);
 extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
 extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
 extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
+extern NCURSES_EXPORT(char *) _nc_tracechar (SCREEN *, int);
+extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *);
 extern NCURSES_EXPORT(int) _nc_access (const char *, int);
 extern NCURSES_EXPORT(int) _nc_baudrate (int);
 extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
 extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
-extern NCURSES_EXPORT(int) _nc_keypad (bool);
+extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool);
 extern NCURSES_EXPORT(int) _nc_ospeed (int);
 extern NCURSES_EXPORT(int) _nc_outch (int);
 extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
 extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
-extern NCURSES_EXPORT(int) _nc_timed_wait(int, int, int * EVENTLIST_2nd(_nc_eventlist *));
+extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
 extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, int (*)(int));
 extern NCURSES_EXPORT(void) _nc_flush (void);
-extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *);
 extern NCURSES_EXPORT(void) _nc_freeall (void);
 extern NCURSES_EXPORT(void) _nc_hash_map (void);
-extern NCURSES_EXPORT(void) _nc_init_keytry (void);
+extern NCURSES_EXPORT(void) _nc_init_keytry (SCREEN *);
 extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);
 extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
 extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
@@ -1210,13 +1557,16 @@
 extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
 extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
 extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
-extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);
+extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *);
 
 #if NO_LEAKS
 extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);
 extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
+extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
+extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
 extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
 extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
+extern NCURSES_EXPORT(void) _nc_names_leaks(void);
 extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
 #endif
 
@@ -1227,15 +1577,11 @@
 #endif
 
 #if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
-#ifdef linux
 extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);
-#else
-#define _nc_wcrtomb(s,wc,ps) wcrtomb(s,wc,ps)
-#endif
 #endif
 
 #if USE_SIZECHANGE
-extern NCURSES_EXPORT(void) _nc_update_screensize (void);
+extern NCURSES_EXPORT(void) _nc_update_screensize (SCREEN *);
 #endif
 
 #if HAVE_RESIZETERM
@@ -1291,7 +1637,6 @@
 #define screen_lines	SP->_lines
 #define screen_columns	SP->_columns
 
-extern NCURSES_EXPORT_VAR(int) _nc_slk_format;  /* != 0 if slk_init() called */
 extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);
 
 /*
diff -Naur ncurses-5.6.orig/ncurses/fifo_defs.h ncurses-5.6/ncurses/fifo_defs.h
--- ncurses-5.6.orig/ncurses/fifo_defs.h	2002-03-16 15:47:50.000000000 -0500
+++ ncurses-5.6/ncurses/fifo_defs.h	2008-06-18 06:49:50.000000000 -0400
@@ -34,21 +34,21 @@
 /*
  * Common macros for lib_getch.c, lib_ungetch.c
  *
- * $Id: fifo_defs.h,v 1.4 2002/03/16 20:47:50 tom Exp $
+ * $Id: fifo_defs.h,v 1.5 2008/05/03 20:08:16 tom Exp $
  */
 
 #ifndef FIFO_DEFS_H
 #define FIFO_DEFS_H 1
 
-#define head	SP->_fifohead
-#define tail	SP->_fifotail
+#define head	sp->_fifohead
+#define tail	sp->_fifotail
 /* peek points to next uninterpreted character */
-#define peek	SP->_fifopeek
+#define peek	sp->_fifopeek
 
 #define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
 #define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
 #define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
-#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();}
+#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear(sp);}
 #define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
 
 #define cooked_key_in_fifo()	((head != -1) && (peek != head))
diff -Naur ncurses-5.6.orig/ncurses/llib-lncurses ncurses-5.6/ncurses/llib-lncurses
--- ncurses-5.6.orig/ncurses/llib-lncurses	2006-10-28 18:20:51.000000000 -0400
+++ ncurses-5.6/ncurses/llib-lncurses	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 1996-2006                                      *
+ *  Author: Thomas E. Dickey 1996-2007                                      *
  ****************************************************************************/
 /* LINTLIBRARY */
 
@@ -1017,6 +1017,11 @@
 		WINDOW	*z)
 		{ return(*(int *)0); }
 
+#undef getattrs
+int	getattrs(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
 #undef getcurx
 int	getcurx(
 		const WINDOW *z)
@@ -1057,6 +1062,68 @@
 		const WINDOW *z)
 		{ return(*(int *)0); }
 
+#undef wgetparent
+WINDOW	*wgetparent(
+		const WINDOW *z)
+		{ return(*(WINDOW **)0); }
+
+#undef is_cleared
+NCURSES_BOOL is_cleared(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idcok
+NCURSES_BOOL is_idcok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idlok
+NCURSES_BOOL is_idlok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_immedok
+NCURSES_BOOL is_immedok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_keypad
+NCURSES_BOOL is_keypad(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_leaveok
+NCURSES_BOOL is_leaveok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_nodelay
+NCURSES_BOOL is_nodelay(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_notimeout
+NCURSES_BOOL is_notimeout(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_scrollok
+NCURSES_BOOL is_scrollok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_syncok
+NCURSES_BOOL is_syncok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef wgetscrreg
+int	wgetscrreg(
+		const WINDOW *a1, 
+		int	*a2, 
+		int	*z)
+		{ return(*(int *)0); }
+
 #undef mouse_trafo
 NCURSES_BOOL mouse_trafo(
 		int	*a1, 
@@ -2093,40 +2160,11 @@
 /* ./tinfo/add_tries.c */
 
 #undef _nc_add_to_try
-void	_nc_add_to_try(
-		struct tries **tree, 
+int	_nc_add_to_try(
+		TRIES	**tree, 
 		const char *str, 
 		unsigned code)
-		{ /* void */ }
-
-/* ./tinfo/alloc_entry.c */
-
-#undef _nc_init_entry
-void	_nc_init_entry(
-		TERMTYPE *const tp)
-		{ /* void */ }
-
-#undef _nc_copy_entry
-ENTRY	*_nc_copy_entry(
-		ENTRY	*oldp)
-		{ return(*(ENTRY **)0); }
-
-#undef _nc_save_str
-char	*_nc_save_str(
-		const char *const string)
-		{ return(*(char **)0); }
-
-#undef _nc_wrap_entry
-void	_nc_wrap_entry(
-		ENTRY	*const ep, 
-		NCURSES_BOOL copy_strings)
-		{ /* void */ }
-
-#undef _nc_merge_entry
-void	_nc_merge_entry(
-		TERMTYPE *const to, 
-		TERMTYPE *const from)
-		{ /* void */ }
+		{ return(*(int *)0); }
 
 /* ./tinfo/alloc_ttype.c */
 
@@ -2142,22 +2180,6 @@
 		TERMTYPE *src)
 		{ /* void */ }
 
-/* ./tinfo/captoinfo.c */
-
-#undef _nc_captoinfo
-char	*_nc_captoinfo(
-		const char *cap, 
-		const char *s, 
-		int const parameterized)
-		{ return(*(char **)0); }
-
-#undef _nc_infotocap
-char	*_nc_infotocap(
-		const char *cap, 
-		const char *str, 
-		int const parameterized)
-		{ return(*(char **)0); }
-
 /* ./codes.c */
 
 #undef boolcodes
@@ -2167,31 +2189,7 @@
 #undef strcodes
 char	*const strcodes[] = {0};
 
-/* ./comp_captab.c */
-
-#include <ncurses_cfg.h>
-
-#undef _nc_info_hash_table
-const struct name_table_entry *const _nc_info_hash_table[995] = {0};
-#undef _nc_cap_hash_table
-const struct name_table_entry *const _nc_cap_hash_table[995] = {0};
-#undef _nc_capalias_table
-const struct alias _nc_capalias_table[] = {0};
-#undef _nc_infoalias_table
-const struct alias _nc_infoalias_table[] = {0};
-
-#undef _nc_get_table
-const struct name_table_entry *_nc_get_table(
-		NCURSES_BOOL termcap)
-		{ return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const struct name_table_entry *const *_nc_get_hash_table(
-		NCURSES_BOOL termcap)
-		{ return(*(const struct name_table_entry **)0); }
-
 /* ./tinfo/comp_error.c */
-
 #undef _nc_suppress_warnings
 NCURSES_BOOL _nc_suppress_warnings;
 #undef _nc_curr_line
@@ -2236,134 +2234,6 @@
 		...)
 		{ /* void */ }
 
-/* ./tinfo/comp_expand.c */
-
-#undef _nc_tic_expand
-char	*_nc_tic_expand(
-		const char *srcp, 
-		NCURSES_BOOL tic_format, 
-		int	numbers)
-		{ return(*(char **)0); }
-
-/* ./tinfo/comp_hash.c */
-
-#include <hashsize.h>
-
-#undef _nc_find_entry
-struct name_table_entry const *_nc_find_entry(
-		const char *string, 
-		const struct name_table_entry *const *hash_table)
-		{ return(*(struct name_table_entry const **)0); }
-
-#undef _nc_find_type_entry
-struct name_table_entry const *_nc_find_type_entry(
-		const char *string, 
-		int	type, 
-		const struct name_table_entry *table)
-		{ return(*(struct name_table_entry const **)0); }
-
-/* ./tinfo/comp_parse.c */
-
-#undef _nc_check_termtype2
-void	(*_nc_check_termtype2)(
-		TERMTYPE *p1, 
-		NCURSES_BOOL p2);
-#undef _nc_check_termtype
-void	(*_nc_check_termtype)(
-		TERMTYPE *p1);
-#undef _nc_head
-ENTRY	*_nc_head;
-#undef _nc_tail
-ENTRY	*_nc_tail;
-
-#undef _nc_free_entries
-void	_nc_free_entries(
-		ENTRY	*headp)
-		{ /* void */ }
-
-#undef _nc_delink_entry
-ENTRY	*_nc_delink_entry(
-		ENTRY	*headp, 
-		TERMTYPE *tterm)
-		{ return(*(ENTRY **)0); }
-
-#undef _nc_free_entry
-void	_nc_free_entry(
-		ENTRY	*headp, 
-		TERMTYPE *tterm)
-		{ /* void */ }
-
-#undef _nc_entry_match
-NCURSES_BOOL _nc_entry_match(
-		char	*n1, 
-		char	*n2)
-		{ return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_read_entry_source
-void	_nc_read_entry_source(
-		FILE	*fp, 
-		char	*buf, 
-		int	literal, 
-		NCURSES_BOOL silent, 
-		NCURSES_BOOL (*hook)(
-		ENTRY	*p1))
-		{ /* void */ }
-
-#undef _nc_resolve_uses2
-int	_nc_resolve_uses2(
-		NCURSES_BOOL fullresolve, 
-		NCURSES_BOOL literal)
-		{ return(*(int *)0); }
-
-#undef _nc_resolve_uses
-int	_nc_resolve_uses(
-		NCURSES_BOOL fullresolve)
-		{ return(*(int *)0); }
-
-/* ./tinfo/comp_scan.c */
-
-#undef _nc_syntax
-int	_nc_syntax;
-#undef _nc_curr_file_pos
-long	_nc_curr_file_pos;
-#undef _nc_comment_start
-long	_nc_comment_start;
-#undef _nc_comment_end
-long	_nc_comment_end;
-#undef _nc_start_line
-long	_nc_start_line;
-#undef _nc_curr_token
-struct token _nc_curr_token;
-#undef _nc_disable_period
-NCURSES_BOOL _nc_disable_period;
-
-#undef _nc_reset_input
-void	_nc_reset_input(
-		FILE	*fp, 
-		char	*buf)
-		{ /* void */ }
-
-#undef _nc_get_token
-int	_nc_get_token(
-		NCURSES_BOOL silent)
-		{ return(*(int *)0); }
-
-#undef _nc_trans_string
-int	_nc_trans_string(
-		char	*ptr, 
-		char	*last)
-		{ return(*(int *)0); }
-
-#undef _nc_push_token
-void	_nc_push_token(
-		int	tokclass)
-		{ /* void */ }
-
-#undef _nc_panic_mode
-void	_nc_panic_mode(
-		char	ch)
-		{ /* void */ }
-
 /* ./tinfo/db_iterator.c */
 
 #undef _nc_tic_dir
@@ -2400,6 +2270,34 @@
 		size_t	amount)
 		{ return(*(void **)0); }
 
+/* ./tinfo/entries.c */
+
+#undef _nc_head
+ENTRY	*_nc_head;
+#undef _nc_tail
+ENTRY	*_nc_tail;
+
+#undef _nc_free_entry
+void	_nc_free_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ /* void */ }
+
+#undef _nc_free_entries
+void	_nc_free_entries(
+		ENTRY	*headp)
+		{ /* void */ }
+
+#undef _nc_delink_entry
+ENTRY	*_nc_delink_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_leaks_tinfo
+void	_nc_leaks_tinfo(void)
+		{ /* void */ }
+
 /* ./fallback.c */
 
 #undef _nc_fallback
@@ -2442,7 +2340,7 @@
 #include <init_keytry.h>
 
 #undef _nc_tinfo_fkeys
-struct tinfo_fkeys _nc_tinfo_fkeys[];
+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
 
 #endif
 
@@ -2509,6 +2407,10 @@
 SCREEN	*_nc_screen_chain;
 #undef SP
 SCREEN	*SP;
+#undef _nc_globals
+NCURSES_GLOBALS _nc_globals;
+#undef _nc_prescreen
+NCURSES_PRESCREEN _nc_prescreen;
 
 /* ./tinfo/lib_has_cap.c */
 
@@ -2536,8 +2438,7 @@
 
 /* ./lib_keyname.c */
 
-#undef _nc_key_names
-const struct kn _nc_key_names[] = {0};
+struct kn { short offset; int code; };
 
 #undef keyname
 char	*keyname(
@@ -2677,7 +2578,7 @@
 
 #undef _nc_handle_sigwinch
 int	_nc_handle_sigwinch(
-		int	enable)
+		int	update)
 		{ return(*(int *)0); }
 
 #undef use_env
@@ -2685,6 +2586,12 @@
 		NCURSES_BOOL f)
 		{ /* void */ }
 
+#undef _nc_get_screensize
+void	_nc_get_screensize(
+		int	*linep, 
+		int	*colp)
+		{ /* void */ }
+
 #undef _nc_update_screensize
 void	_nc_update_screensize(void)
 		{ /* void */ }
@@ -2785,14 +2692,6 @@
 
 /* ./tinfo/lib_tparm.c */
 
-typedef struct {
-    union {
- int num;
- char *str;
-    } data;
-    NCURSES_BOOL num_type;
-} stack_frame;
-
 #undef _nc_tparm_err
 int	_nc_tparm_err;
 
@@ -3047,26 +2946,6 @@
 #undef strfnames
 char	*const strfnames[] = {0};
 
-/* ./tinfo/parse_entry.c */
-
-#undef _nc_parse_entry
-int	_nc_parse_entry(
-		struct entry *entryp, 
-		int	literal, 
-		NCURSES_BOOL silent)
-		{ return(*(int *)0); }
-
-#undef _nc_capcmp
-int	_nc_capcmp(
-		const char *s, 
-		const char *t)
-		{ return(*(int *)0); }
-
-typedef struct {
-    const char *from;
-    const char *to;
-} assoc;
-
 /* ./tinfo/read_entry.c */
 
 #include <hashed_db.h>
@@ -3144,11 +3023,6 @@
 
 /* ./trace/trace_buf.c */
 
-typedef struct {
-    char *text;
-    size_t size;
-} LIST;
-
 #undef _nc_trace_buf
 char	*_nc_trace_buf(
 		int	bufnum, 
@@ -3165,14 +3039,14 @@
 
 #undef _nc_trace_tries
 void	_nc_trace_tries(
-		struct tries *tree)
+		TRIES	*tree)
 		{ /* void */ }
 
 /* ./base/tries.c */
 
 #undef _nc_expand_try
 char	*_nc_expand_try(
-		struct tries *tree, 
+		TRIES	*tree, 
 		unsigned code, 
 		int	*count, 
 		size_t	len)
@@ -3180,13 +3054,13 @@
 
 #undef _nc_remove_key
 int	_nc_remove_key(
-		struct tries **tree, 
+		TRIES	**tree, 
 		unsigned code)
 		{ return(*(int *)0); }
 
 #undef _nc_remove_string
 int	_nc_remove_string(
-		struct tries **tree, 
+		TRIES	**tree, 
 		const char *string)
 		{ return(*(int *)0); }
 
@@ -3236,6 +3110,195 @@
 		int	len)
 		{ return(*(const char **)0); }
 
+/* ./tinfo/alloc_entry.c */
+
+#undef _nc_init_entry
+void	_nc_init_entry(
+		TERMTYPE *const tp)
+		{ /* void */ }
+
+#undef _nc_copy_entry
+ENTRY	*_nc_copy_entry(
+		ENTRY	*oldp)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_save_str
+char	*_nc_save_str(
+		const char *const string)
+		{ return(*(char **)0); }
+
+#undef _nc_wrap_entry
+void	_nc_wrap_entry(
+		ENTRY	*const ep, 
+		NCURSES_BOOL copy_strings)
+		{ /* void */ }
+
+#undef _nc_merge_entry
+void	_nc_merge_entry(
+		TERMTYPE *const to, 
+		TERMTYPE *const from)
+		{ /* void */ }
+
+/* ./tinfo/captoinfo.c */
+
+#undef _nc_captoinfo
+char	*_nc_captoinfo(
+		const char *cap, 
+		const char *s, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+#undef _nc_infotocap
+char	*_nc_infotocap(
+		const char *cap, 
+		const char *str, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+/* ./comp_captab.c */
+
+#include <hashsize.h>
+
+#undef _nc_get_table
+const struct name_table_entry *_nc_get_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct name_table_entry **)0); }
+
+#undef _nc_get_hash_table
+const short *_nc_get_hash_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const short **)0); }
+
+#undef _nc_get_alias_table
+const struct alias *_nc_get_alias_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct alias **)0); }
+
+/* ./tinfo/comp_expand.c */
+
+#undef _nc_tic_expand
+char	*_nc_tic_expand(
+		const char *srcp, 
+		NCURSES_BOOL tic_format, 
+		int	numbers)
+		{ return(*(char **)0); }
+
+/* ./tinfo/comp_hash.c */
+
+#undef _nc_find_entry
+struct name_table_entry const *_nc_find_entry(
+		const char *string, 
+		const short *hash_table)
+		{ return(*(struct name_table_entry const **)0); }
+
+#undef _nc_find_type_entry
+struct name_table_entry const *_nc_find_type_entry(
+		const char *string, 
+		int	type, 
+		const struct name_table_entry *table)
+		{ return(*(struct name_table_entry const **)0); }
+
+/* ./tinfo/comp_parse.c */
+
+#undef _nc_check_termtype2
+void	(*_nc_check_termtype2)(
+		TERMTYPE *p1, 
+		NCURSES_BOOL p2);
+#undef _nc_check_termtype
+void	(*_nc_check_termtype)(
+		TERMTYPE *p1);
+
+#undef _nc_entry_match
+NCURSES_BOOL _nc_entry_match(
+		char	*n1, 
+		char	*n2)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_read_entry_source
+void	_nc_read_entry_source(
+		FILE	*fp, 
+		char	*buf, 
+		int	literal, 
+		NCURSES_BOOL silent, 
+		NCURSES_BOOL (*hook)(
+		ENTRY	*p1))
+		{ /* void */ }
+
+#undef _nc_resolve_uses2
+int	_nc_resolve_uses2(
+		NCURSES_BOOL fullresolve, 
+		NCURSES_BOOL literal)
+		{ return(*(int *)0); }
+
+#undef _nc_resolve_uses
+int	_nc_resolve_uses(
+		NCURSES_BOOL fullresolve)
+		{ return(*(int *)0); }
+
+/* ./tinfo/comp_scan.c */
+
+#undef _nc_syntax
+int	_nc_syntax;
+#undef _nc_curr_file_pos
+long	_nc_curr_file_pos;
+#undef _nc_comment_start
+long	_nc_comment_start;
+#undef _nc_comment_end
+long	_nc_comment_end;
+#undef _nc_start_line
+long	_nc_start_line;
+#undef _nc_curr_token
+struct token _nc_curr_token;
+#undef _nc_disable_period
+NCURSES_BOOL _nc_disable_period;
+
+#undef _nc_reset_input
+void	_nc_reset_input(
+		FILE	*fp, 
+		char	*buf)
+		{ /* void */ }
+
+#undef _nc_get_token
+int	_nc_get_token(
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_trans_string
+int	_nc_trans_string(
+		char	*ptr, 
+		char	*last)
+		{ return(*(int *)0); }
+
+#undef _nc_push_token
+void	_nc_push_token(
+		int	tokclass)
+		{ /* void */ }
+
+#undef _nc_panic_mode
+void	_nc_panic_mode(
+		char	ch)
+		{ /* void */ }
+
+/* ./tinfo/parse_entry.c */
+
+#undef _nc_parse_entry
+int	_nc_parse_entry(
+		struct entry *entryp, 
+		int	literal, 
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_capcmp
+int	_nc_capcmp(
+		const char *s, 
+		const char *t)
+		{ return(*(int *)0); }
+
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
 /* ./tinfo/write_entry.c */
 
 #undef _nc_set_writedir
diff -Naur ncurses-5.6.orig/ncurses/llib-lncursest ncurses-5.6/ncurses/llib-lncursest
--- ncurses-5.6.orig/ncurses/llib-lncursest	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/llib-lncursest	2008-06-18 06:49:51.000000000 -0400
@@ -0,0 +1,3562 @@
+/****************************************************************************
+ * Copyright (c) 2008 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey 2008                                           *
+ ****************************************************************************/
+/* LINTLIBRARY */
+
+/* ./tty/hardscroll.c */
+
+#include <curses.priv.h>
+
+#undef _nc_oldnums
+int	*_nc_oldnums;
+
+#undef _nc_scroll_optimize
+void	_nc_scroll_optimize(void)
+		{ /* void */ }
+
+#undef _nc_linedump
+void	_nc_linedump(void)
+		{ /* void */ }
+
+/* ./tty/hashmap.c */
+
+#include <term.h>
+
+#undef _nc_hash_map
+void	_nc_hash_map(void)
+		{ /* void */ }
+
+#undef _nc_make_oldhash
+void	_nc_make_oldhash(
+		int	i)
+		{ /* void */ }
+
+#undef _nc_scroll_oldhash
+void	_nc_scroll_oldhash(
+		int	n, 
+		int	top, 
+		int	bot)
+		{ /* void */ }
+
+/* ./base/lib_addch.c */
+
+#include <ctype.h>
+
+#undef _nc_render
+chtype	_nc_render(
+		WINDOW	*win, 
+		chtype	ch)
+		{ return(*(chtype *)0); }
+
+#undef _nc_waddch_nosync
+int	_nc_waddch_nosync(
+		WINDOW	*win, 
+		const chtype c)
+		{ return(*(int *)0); }
+
+#undef waddch
+int	waddch(
+		WINDOW	*win, 
+		const chtype ch)
+		{ return(*(int *)0); }
+
+#undef wechochar
+int	wechochar(
+		WINDOW	*win, 
+		const chtype ch)
+		{ return(*(int *)0); }
+
+/* ./base/lib_addstr.c */
+
+#undef waddnstr
+int	waddnstr(
+		WINDOW	*win, 
+		const char *astr, 
+		int	n)
+		{ return(*(int *)0); }
+
+#undef waddchnstr
+int	waddchnstr(
+		WINDOW	*win, 
+		const chtype *astr, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_beep.c */
+
+#undef beep
+int	beep(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_bkgd.c */
+
+#undef wbkgdset
+void	wbkgdset(
+		WINDOW	*win, 
+		chtype	ch)
+		{ /* void */ }
+
+#undef wbkgd
+int	wbkgd(
+		WINDOW	*win, 
+		chtype	ch)
+		{ return(*(int *)0); }
+
+/* ./base/lib_box.c */
+
+#undef wborder
+int	wborder(
+		WINDOW	*win, 
+		chtype	ls, 
+		chtype	rs, 
+		chtype	ts, 
+		chtype	bs, 
+		chtype	tl, 
+		chtype	tr, 
+		chtype	bl, 
+		chtype	br)
+		{ return(*(int *)0); }
+
+/* ./base/lib_chgat.c */
+
+#undef wchgat
+int	wchgat(
+		WINDOW	*win, 
+		int	n, 
+		attr_t	attr, 
+		short	color, 
+		const void *opts)
+		{ return(*(int *)0); }
+
+/* ./base/lib_clear.c */
+
+#undef wclear
+int	wclear(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_clearok.c */
+
+#undef clearok
+int	clearok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./base/lib_clrbot.c */
+
+#undef wclrtobot
+int	wclrtobot(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_clreol.c */
+
+#undef wclrtoeol
+int	wclrtoeol(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_color.c */
+
+#include <tic.h>
+
+#undef _nc_COLOR_PAIRS
+int	_nc_COLOR_PAIRS(void)
+		{ return(*(int *)0); }
+
+#undef _nc_COLORS
+int	_nc_COLORS(void)
+		{ return(*(int *)0); }
+
+#undef _nc_reset_colors
+NCURSES_BOOL _nc_reset_colors(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef start_color
+int	start_color(void)
+		{ return(*(int *)0); }
+
+#undef init_pair
+int	init_pair(
+		short	pair, 
+		short	f, 
+		short	b)
+		{ return(*(int *)0); }
+
+#undef init_color
+int	init_color(
+		short	color, 
+		short	r, 
+		short	g, 
+		short	b)
+		{ return(*(int *)0); }
+
+#undef can_change_color
+NCURSES_BOOL can_change_color(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef has_colors
+NCURSES_BOOL has_colors(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef color_content
+int	color_content(
+		short	color, 
+		short	*r, 
+		short	*g, 
+		short	*b)
+		{ return(*(int *)0); }
+
+#undef pair_content
+int	pair_content(
+		short	pair, 
+		short	*f, 
+		short	*b)
+		{ return(*(int *)0); }
+
+#undef _nc_do_color
+void	_nc_do_color(
+		short	old_pair, 
+		short	pair, 
+		NCURSES_BOOL reverse, 
+		int	(*outc)(
+		int	p1))
+		{ /* void */ }
+
+/* ./base/lib_colorset.c */
+
+#undef wcolor_set
+int	wcolor_set(
+		WINDOW	*win, 
+		short	color_pair_number, 
+		void	*opts)
+		{ return(*(int *)0); }
+
+/* ./base/lib_delch.c */
+
+#undef wdelch
+int	wdelch(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_delwin.c */
+
+#undef delwin
+int	delwin(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_echo.c */
+
+#undef echo
+int	echo(void)
+		{ return(*(int *)0); }
+
+#undef noecho
+int	noecho(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_endwin.c */
+
+#undef endwin
+int	endwin(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_erase.c */
+
+#undef werase
+int	werase(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_flash.c */
+
+#undef flash
+int	flash(void)
+		{ return(*(int *)0); }
+
+/* ./lib_gen.c */
+
+#undef addch
+int	addch(
+		const chtype z)
+		{ return(*(int *)0); }
+
+#undef addchnstr
+int	addchnstr(
+		const chtype *a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef addchstr
+int	addchstr(
+		const chtype *z)
+		{ return(*(int *)0); }
+
+#undef addnstr
+int	addnstr(
+		const char *a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef addstr
+int	addstr(
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef attroff
+int	attroff(
+		NCURSES_ATTR_T	z)
+		{ return(*(int *)0); }
+
+#undef attron
+int	attron(
+		NCURSES_ATTR_T	z)
+		{ return(*(int *)0); }
+
+#undef attrset
+int	attrset(
+		NCURSES_ATTR_T	z)
+		{ return(*(int *)0); }
+
+#undef attr_get
+int	attr_get(
+		attr_t	*a1, 
+		short	*a2, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef attr_off
+int	attr_off(
+		attr_t	a1, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef attr_on
+int	attr_on(
+		attr_t	a1, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef attr_set
+int	attr_set(
+		attr_t	a1, 
+		short	a2, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef bkgd
+int	bkgd(
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef bkgdset
+void	bkgdset(
+		chtype	z)
+		{ /* void */ }
+
+#undef border
+int	border(
+		chtype	a1, 
+		chtype	a2, 
+		chtype	a3, 
+		chtype	a4, 
+		chtype	a5, 
+		chtype	a6, 
+		chtype	a7, 
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef box
+int	box(
+		WINDOW	*a1, 
+		chtype	a2, 
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef chgat
+int	chgat(
+		int	a1, 
+		attr_t	a2, 
+		short	a3, 
+		const void *z)
+		{ return(*(int *)0); }
+
+#undef clear
+int	clear(void)
+		{ return(*(int *)0); }
+
+#undef clrtobot
+int	clrtobot(void)
+		{ return(*(int *)0); }
+
+#undef clrtoeol
+int	clrtoeol(void)
+		{ return(*(int *)0); }
+
+#undef color_set
+int	color_set(
+		short	a1, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef COLOR_PAIR
+int	COLOR_PAIR(
+		int	z)
+		{ return(*(int *)0); }
+
+#undef delch
+int	delch(void)
+		{ return(*(int *)0); }
+
+#undef deleteln
+int	deleteln(void)
+		{ return(*(int *)0); }
+
+#undef echochar
+int	echochar(
+		const chtype z)
+		{ return(*(int *)0); }
+
+#undef erase
+int	erase(void)
+		{ return(*(int *)0); }
+
+#undef getbkgd
+chtype	getbkgd(
+		WINDOW	*z)
+		{ return(*(chtype *)0); }
+
+#undef getch
+int	getch(void)
+		{ return(*(int *)0); }
+
+#undef getnstr
+int	getnstr(
+		char	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef getstr
+int	getstr(
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef hline
+int	hline(
+		chtype	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef inch
+chtype	inch(void)
+		{ return(*(chtype *)0); }
+
+#undef inchnstr
+int	inchnstr(
+		chtype	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef inchstr
+int	inchstr(
+		chtype	*z)
+		{ return(*(int *)0); }
+
+#undef innstr
+int	innstr(
+		char	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef insch
+int	insch(
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef insdelln
+int	insdelln(
+		int	z)
+		{ return(*(int *)0); }
+
+#undef insertln
+int	insertln(void)
+		{ return(*(int *)0); }
+
+#undef insnstr
+int	insnstr(
+		const char *a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef insstr
+int	insstr(
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef instr
+int	instr(
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef move
+int	move(
+		int	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvaddch
+int	mvaddch(
+		int	a1, 
+		int	a2, 
+		const chtype z)
+		{ return(*(int *)0); }
+
+#undef mvaddchnstr
+int	mvaddchnstr(
+		int	a1, 
+		int	a2, 
+		const chtype *a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvaddchstr
+int	mvaddchstr(
+		int	a1, 
+		int	a2, 
+		const chtype *z)
+		{ return(*(int *)0); }
+
+#undef mvaddnstr
+int	mvaddnstr(
+		int	a1, 
+		int	a2, 
+		const char *a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvaddstr
+int	mvaddstr(
+		int	a1, 
+		int	a2, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef mvchgat
+int	mvchgat(
+		int	a1, 
+		int	a2, 
+		int	a3, 
+		attr_t	a4, 
+		short	a5, 
+		const void *z)
+		{ return(*(int *)0); }
+
+#undef mvdelch
+int	mvdelch(
+		int	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvgetch
+int	mvgetch(
+		int	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvgetnstr
+int	mvgetnstr(
+		int	a1, 
+		int	a2, 
+		char	*a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvgetstr
+int	mvgetstr(
+		int	a1, 
+		int	a2, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef mvhline
+int	mvhline(
+		int	a1, 
+		int	a2, 
+		chtype	a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvinch
+chtype	mvinch(
+		int	a1, 
+		int	z)
+		{ return(*(chtype *)0); }
+
+#undef mvinchnstr
+int	mvinchnstr(
+		int	a1, 
+		int	a2, 
+		chtype	*a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvinchstr
+int	mvinchstr(
+		int	a1, 
+		int	a2, 
+		chtype	*z)
+		{ return(*(int *)0); }
+
+#undef mvinnstr
+int	mvinnstr(
+		int	a1, 
+		int	a2, 
+		char	*a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvinsch
+int	mvinsch(
+		int	a1, 
+		int	a2, 
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef mvinsnstr
+int	mvinsnstr(
+		int	a1, 
+		int	a2, 
+		const char *a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvinsstr
+int	mvinsstr(
+		int	a1, 
+		int	a2, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef mvinstr
+int	mvinstr(
+		int	a1, 
+		int	a2, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef mvvline
+int	mvvline(
+		int	a1, 
+		int	a2, 
+		chtype	a3, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwaddch
+int	mvwaddch(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const chtype z)
+		{ return(*(int *)0); }
+
+#undef mvwaddchnstr
+int	mvwaddchnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const chtype *a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwaddchstr
+int	mvwaddchstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const chtype *z)
+		{ return(*(int *)0); }
+
+#undef mvwaddnstr
+int	mvwaddnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const char *a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwaddstr
+int	mvwaddstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef mvwchgat
+int	mvwchgat(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		int	a4, 
+		attr_t	a5, 
+		short	a6, 
+		const void *z)
+		{ return(*(int *)0); }
+
+#undef mvwdelch
+int	mvwdelch(
+		WINDOW	*a1, 
+		int	a2, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwgetch
+int	mvwgetch(
+		WINDOW	*a1, 
+		int	a2, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwgetnstr
+int	mvwgetnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		char	*a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwgetstr
+int	mvwgetstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef mvwhline
+int	mvwhline(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		chtype	a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwinch
+chtype	mvwinch(
+		WINDOW	*a1, 
+		int	a2, 
+		int	z)
+		{ return(*(chtype *)0); }
+
+#undef mvwinchnstr
+int	mvwinchnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		chtype	*a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwinchstr
+int	mvwinchstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		chtype	*z)
+		{ return(*(int *)0); }
+
+#undef mvwinnstr
+int	mvwinnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		char	*a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwinsch
+int	mvwinsch(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		chtype	z)
+		{ return(*(int *)0); }
+
+#undef mvwinsnstr
+int	mvwinsnstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const char *a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef mvwinsstr
+int	mvwinsstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef mvwinstr
+int	mvwinstr(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef mvwvline
+int	mvwvline(
+		WINDOW	*a1, 
+		int	a2, 
+		int	a3, 
+		chtype	a4, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef PAIR_NUMBER
+int	PAIR_NUMBER(
+		int	z)
+		{ return(*(int *)0); }
+
+#undef redrawwin
+int	redrawwin(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef refresh
+int	refresh(void)
+		{ return(*(int *)0); }
+
+#undef scrl
+int	scrl(
+		int	z)
+		{ return(*(int *)0); }
+
+#undef scroll
+int	scroll(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef setscrreg
+int	setscrreg(
+		int	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef standout
+int	standout(void)
+		{ return(*(int *)0); }
+
+#undef standend
+int	standend(void)
+		{ return(*(int *)0); }
+
+#undef timeout
+void	timeout(
+		int	z)
+		{ /* void */ }
+
+#undef touchline
+int	touchline(
+		WINDOW	*a1, 
+		int	a2, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef touchwin
+int	touchwin(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef untouchwin
+int	untouchwin(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef vline
+int	vline(
+		chtype	a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef vw_printw
+int	vw_printw(
+		WINDOW	*a1, 
+		const char *a2, 
+		va_list	z)
+		{ return(*(int *)0); }
+
+#undef vw_scanw
+int	vw_scanw(
+		WINDOW	*a1, 
+		const char *a2, 
+		va_list	z)
+		{ return(*(int *)0); }
+
+#undef waddchstr
+int	waddchstr(
+		WINDOW	*a1, 
+		const chtype *z)
+		{ return(*(int *)0); }
+
+#undef waddstr
+int	waddstr(
+		WINDOW	*a1, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef wattron
+int	wattron(
+		WINDOW	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef wattroff
+int	wattroff(
+		WINDOW	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef wattrset
+int	wattrset(
+		WINDOW	*a1, 
+		int	z)
+		{ return(*(int *)0); }
+
+#undef wattr_get
+int	wattr_get(
+		WINDOW	*a1, 
+		attr_t	*a2, 
+		short	*a3, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef wattr_set
+int	wattr_set(
+		WINDOW	*a1, 
+		attr_t	a2, 
+		short	a3, 
+		void	*z)
+		{ return(*(int *)0); }
+
+#undef wdeleteln
+int	wdeleteln(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef wgetstr
+int	wgetstr(
+		WINDOW	*a1, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef winchstr
+int	winchstr(
+		WINDOW	*a1, 
+		chtype	*z)
+		{ return(*(int *)0); }
+
+#undef winsertln
+int	winsertln(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef winsstr
+int	winsstr(
+		WINDOW	*a1, 
+		const char *z)
+		{ return(*(int *)0); }
+
+#undef winstr
+int	winstr(
+		WINDOW	*a1, 
+		char	*z)
+		{ return(*(int *)0); }
+
+#undef wstandout
+int	wstandout(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef wstandend
+int	wstandend(
+		WINDOW	*z)
+		{ return(*(int *)0); }
+
+#undef getattrs
+int	getattrs(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getcurx
+int	getcurx(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getcury
+int	getcury(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getbegx
+int	getbegx(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getbegy
+int	getbegy(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getmaxx
+int	getmaxx(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getmaxy
+int	getmaxy(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getparx
+int	getparx(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef getpary
+int	getpary(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
+#undef wgetparent
+WINDOW	*wgetparent(
+		const WINDOW *z)
+		{ return(*(WINDOW **)0); }
+
+#undef is_cleared
+NCURSES_BOOL is_cleared(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idcok
+NCURSES_BOOL is_idcok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idlok
+NCURSES_BOOL is_idlok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_immedok
+NCURSES_BOOL is_immedok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_keypad
+NCURSES_BOOL is_keypad(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_leaveok
+NCURSES_BOOL is_leaveok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_nodelay
+NCURSES_BOOL is_nodelay(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_notimeout
+NCURSES_BOOL is_notimeout(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_scrollok
+NCURSES_BOOL is_scrollok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_syncok
+NCURSES_BOOL is_syncok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef wgetscrreg
+int	wgetscrreg(
+		const WINDOW *a1, 
+		int	*a2, 
+		int	*z)
+		{ return(*(int *)0); }
+
+#undef mouse_trafo
+NCURSES_BOOL mouse_trafo(
+		int	*a1, 
+		int	*a2, 
+		NCURSES_BOOL	z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_getch.c */
+
+#include <fifo_defs.h>
+
+#undef _nc_ESCDELAY
+int	_nc_ESCDELAY(void)
+		{ return(*(int *)0); }
+
+#undef set_escdelay
+int	set_escdelay(
+		int	value)
+		{ return(*(int *)0); }
+
+#undef _nc_wgetch
+int	_nc_wgetch(
+		WINDOW	*win, 
+		unsigned long *result, 
+		int	use_meta, 
+		_nc_eventlist *evl)
+		{ return(*(int *)0); }
+
+#undef wgetch_events
+int	wgetch_events(
+		WINDOW	*win, 
+		_nc_eventlist *evl)
+		{ return(*(int *)0); }
+
+#undef wgetch
+int	wgetch(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_getstr.c */
+
+#undef wgetnstr_events
+int	wgetnstr_events(
+		WINDOW	*win, 
+		char	*str, 
+		int	maxlen, 
+		_nc_eventlist *evl)
+		{ return(*(int *)0); }
+
+#undef wgetnstr
+int	wgetnstr(
+		WINDOW	*win, 
+		char	*str, 
+		int	maxlen)
+		{ return(*(int *)0); }
+
+/* ./base/lib_hline.c */
+
+#undef whline
+int	whline(
+		WINDOW	*win, 
+		chtype	ch, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_immedok.c */
+
+#undef immedok
+void	immedok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ /* void */ }
+
+/* ./base/lib_inchstr.c */
+
+#undef winchnstr
+int	winchnstr(
+		WINDOW	*win, 
+		chtype	*str, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_initscr.c */
+
+#undef initscr
+WINDOW	*initscr(void)
+		{ return(*(WINDOW **)0); }
+
+/* ./base/lib_insch.c */
+
+#undef _nc_insert_ch
+int	_nc_insert_ch(
+		WINDOW	*win, 
+		chtype	ch)
+		{ return(*(int *)0); }
+
+#undef winsch
+int	winsch(
+		WINDOW	*win, 
+		chtype	c)
+		{ return(*(int *)0); }
+
+/* ./base/lib_insdel.c */
+
+#undef winsdelln
+int	winsdelln(
+		WINDOW	*win, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_insnstr.c */
+
+#undef winsnstr
+int	winsnstr(
+		WINDOW	*win, 
+		const char *s, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_instr.c */
+
+#undef winnstr
+int	winnstr(
+		WINDOW	*win, 
+		char	*str, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_isendwin.c */
+
+#undef isendwin
+NCURSES_BOOL isendwin(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_leaveok.c */
+
+#undef leaveok
+int	leaveok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./base/lib_mouse.c */
+
+#undef getmouse
+int	getmouse(
+		MEVENT	*aevent)
+		{ return(*(int *)0); }
+
+#undef ungetmouse
+int	ungetmouse(
+		MEVENT	*aevent)
+		{ return(*(int *)0); }
+
+#undef mousemask
+mmask_t	mousemask(
+		mmask_t	newmask, 
+		mmask_t	*oldmask)
+		{ return(*(mmask_t *)0); }
+
+#undef wenclose
+NCURSES_BOOL wenclose(
+		const WINDOW *win, 
+		int	y, 
+		int	x)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef mouseinterval
+int	mouseinterval(
+		int	maxclick)
+		{ return(*(int *)0); }
+
+#undef _nc_has_mouse
+int	_nc_has_mouse(void)
+		{ return(*(int *)0); }
+
+#undef wmouse_trafo
+NCURSES_BOOL wmouse_trafo(
+		const WINDOW *win, 
+		int	*pY, 
+		int	*pX, 
+		NCURSES_BOOL to_screen)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./base/lib_move.c */
+
+#undef wmove
+int	wmove(
+		WINDOW	*win, 
+		int	y, 
+		int	x)
+		{ return(*(int *)0); }
+
+/* ./tty/lib_mvcur.c */
+
+#undef _nc_msec_cost
+int	_nc_msec_cost(
+		const char *const cap, 
+		int	affcnt)
+		{ return(*(int *)0); }
+
+#undef _nc_mvcur_resume
+void	_nc_mvcur_resume(void)
+		{ /* void */ }
+
+#undef _nc_mvcur_init
+void	_nc_mvcur_init(void)
+		{ /* void */ }
+
+#undef _nc_mvcur_wrap
+void	_nc_mvcur_wrap(void)
+		{ /* void */ }
+
+#undef mvcur
+int	mvcur(
+		int	yold, 
+		int	xold, 
+		int	ynew, 
+		int	xnew)
+		{ return(*(int *)0); }
+
+#undef _nc_optimize_enable
+int	_nc_optimize_enable;
+
+/* ./base/lib_mvwin.c */
+
+#undef mvwin
+int	mvwin(
+		WINDOW	*win, 
+		int	by, 
+		int	bx)
+		{ return(*(int *)0); }
+
+/* ./base/lib_newterm.c */
+
+#undef filter
+void	filter(void)
+		{ /* void */ }
+
+#undef nofilter
+void	nofilter(void)
+		{ /* void */ }
+
+#undef newterm
+SCREEN	*newterm(
+		const char *name, 
+		FILE	*ofp, 
+		FILE	*ifp)
+		{ return(*(SCREEN **)0); }
+
+/* ./base/lib_newwin.c */
+
+#undef _nc_freewin
+int	_nc_freewin(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+#undef newwin
+WINDOW	*newwin(
+		int	num_lines, 
+		int	num_columns, 
+		int	begy, 
+		int	begx)
+		{ return(*(WINDOW **)0); }
+
+#undef derwin
+WINDOW	*derwin(
+		WINDOW	*orig, 
+		int	num_lines, 
+		int	num_columns, 
+		int	begy, 
+		int	begx)
+		{ return(*(WINDOW **)0); }
+
+#undef subwin
+WINDOW	*subwin(
+		WINDOW	*w, 
+		int	l, 
+		int	c, 
+		int	y, 
+		int	x)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_makenew
+WINDOW	*_nc_makenew(
+		int	num_lines, 
+		int	num_columns, 
+		int	begy, 
+		int	begx, 
+		int	flags)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_screen_of
+SCREEN	*_nc_screen_of(
+		WINDOW	*win)
+		{ return(*(SCREEN **)0); }
+
+/* ./base/lib_nl.c */
+
+#undef nl
+int	nl(void)
+		{ return(*(int *)0); }
+
+#undef nonl
+int	nonl(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_overlay.c */
+
+#undef overlay
+int	overlay(
+		const WINDOW *win1, 
+		WINDOW	*win2)
+		{ return(*(int *)0); }
+
+#undef overwrite
+int	overwrite(
+		const WINDOW *win1, 
+		WINDOW	*win2)
+		{ return(*(int *)0); }
+
+#undef copywin
+int	copywin(
+		const WINDOW *src, 
+		WINDOW	*dst, 
+		int	sminrow, 
+		int	smincol, 
+		int	dminrow, 
+		int	dmincol, 
+		int	dmaxrow, 
+		int	dmaxcol, 
+		int	over)
+		{ return(*(int *)0); }
+
+/* ./base/lib_pad.c */
+
+#undef newpad
+WINDOW	*newpad(
+		int	l, 
+		int	c)
+		{ return(*(WINDOW **)0); }
+
+#undef subpad
+WINDOW	*subpad(
+		WINDOW	*orig, 
+		int	l, 
+		int	c, 
+		int	begy, 
+		int	begx)
+		{ return(*(WINDOW **)0); }
+
+#undef prefresh
+int	prefresh(
+		WINDOW	*win, 
+		int	pminrow, 
+		int	pmincol, 
+		int	sminrow, 
+		int	smincol, 
+		int	smaxrow, 
+		int	smaxcol)
+		{ return(*(int *)0); }
+
+#undef pnoutrefresh
+int	pnoutrefresh(
+		WINDOW	*win, 
+		int	pminrow, 
+		int	pmincol, 
+		int	sminrow, 
+		int	smincol, 
+		int	smaxrow, 
+		int	smaxcol)
+		{ return(*(int *)0); }
+
+#undef pechochar
+int	pechochar(
+		WINDOW	*pad, 
+		const chtype ch)
+		{ return(*(int *)0); }
+
+/* ./base/lib_printw.c */
+
+#undef printw
+int	printw(
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef wprintw
+int	wprintw(
+		WINDOW	*win, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef mvprintw
+int	mvprintw(
+		int	y, 
+		int	x, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef mvwprintw
+int	mvwprintw(
+		WINDOW	*win, 
+		int	y, 
+		int	x, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef vwprintw
+int	vwprintw(
+		WINDOW	*win, 
+		const char *fmt, 
+		va_list	argp)
+		{ return(*(int *)0); }
+
+/* ./base/lib_redrawln.c */
+
+#undef wredrawln
+int	wredrawln(
+		WINDOW	*win, 
+		int	beg, 
+		int	num)
+		{ return(*(int *)0); }
+
+/* ./base/lib_refresh.c */
+
+#undef wrefresh
+int	wrefresh(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+#undef wnoutrefresh
+int	wnoutrefresh(
+		WINDOW	*win)
+		{ return(*(int *)0); }
+
+/* ./base/lib_restart.c */
+
+#undef restartterm
+int	restartterm(
+		const char *termp, 
+		int	filenum, 
+		int	*errret)
+		{ return(*(int *)0); }
+
+/* ./base/lib_scanw.c */
+
+#undef vwscanw
+int	vwscanw(
+		WINDOW	*win, 
+		const char *fmt, 
+		va_list	argp)
+		{ return(*(int *)0); }
+
+#undef scanw
+int	scanw(
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef wscanw
+int	wscanw(
+		WINDOW	*win, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef mvscanw
+int	mvscanw(
+		int	y, 
+		int	x, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+#undef mvwscanw
+int	mvwscanw(
+		WINDOW	*win, 
+		int	y, 
+		int	x, 
+		const char *fmt, 
+		...)
+		{ return(*(int *)0); }
+
+/* ./base/lib_screen.c */
+
+#undef getwin
+WINDOW	*getwin(
+		FILE	*filep)
+		{ return(*(WINDOW **)0); }
+
+#undef putwin
+int	putwin(
+		WINDOW	*win, 
+		FILE	*filep)
+		{ return(*(int *)0); }
+
+#undef scr_restore
+int	scr_restore(
+		const char *file)
+		{ return(*(int *)0); }
+
+#undef scr_dump
+int	scr_dump(
+		const char *file)
+		{ return(*(int *)0); }
+
+#undef scr_init
+int	scr_init(
+		const char *file)
+		{ return(*(int *)0); }
+
+#undef scr_set
+int	scr_set(
+		const char *file)
+		{ return(*(int *)0); }
+
+/* ./base/lib_scroll.c */
+
+#undef _nc_scroll_window
+void	_nc_scroll_window(
+		WINDOW	*win, 
+		int const n, 
+		int const top, 
+		int const bottom, 
+		chtype	blank)
+		{ /* void */ }
+
+#undef wscrl
+int	wscrl(
+		WINDOW	*win, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_scrollok.c */
+
+#undef scrollok
+int	scrollok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./base/lib_scrreg.c */
+
+#undef wsetscrreg
+int	wsetscrreg(
+		WINDOW	*win, 
+		int	top, 
+		int	bottom)
+		{ return(*(int *)0); }
+
+/* ./base/lib_set_term.c */
+
+#undef set_term
+SCREEN	*set_term(
+		SCREEN	*screenp)
+		{ return(*(SCREEN **)0); }
+
+#undef delscreen
+void	delscreen(
+		SCREEN	*sp)
+		{ /* void */ }
+
+#undef _nc_setupscreen
+int	_nc_setupscreen(
+		int	slines, 
+		int	scolumns, 
+		FILE	*output, 
+		NCURSES_BOOL filtered, 
+		int	slk_format)
+		{ return(*(int *)0); }
+
+#undef _nc_ripoffline
+int	_nc_ripoffline(
+		int	line, 
+		int	(*init)(
+		WINDOW	*p1, 
+		int	p2))
+		{ return(*(int *)0); }
+
+#undef ripoffline
+int	ripoffline(
+		int	line, 
+		int	(*init)(
+		WINDOW	*p1, 
+		int	p2))
+		{ return(*(int *)0); }
+
+/* ./base/lib_slk.c */
+
+#undef _nc_slk_format
+int	_nc_slk_format;
+
+#undef _nc_slk_initialize
+int	_nc_slk_initialize(
+		WINDOW	*stwin, 
+		int	cols)
+		{ return(*(int *)0); }
+
+#undef slk_restore
+int	slk_restore(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkatr_set.c */
+
+#undef slk_attr_set
+int	slk_attr_set(
+		const attr_t attr, 
+		short	color_pair_number, 
+		void	*opts)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkatrof.c */
+
+#undef slk_attroff
+int	slk_attroff(
+		const chtype attr)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkatron.c */
+
+#undef slk_attron
+int	slk_attron(
+		const chtype attr)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkatrset.c */
+
+#undef slk_attrset
+int	slk_attrset(
+		const chtype attr)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkattr.c */
+
+#undef slk_attr
+attr_t	slk_attr(void)
+		{ return(*(attr_t *)0); }
+
+/* ./base/lib_slkclear.c */
+
+#undef slk_clear
+int	slk_clear(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkcolor.c */
+
+#undef slk_color
+int	slk_color(
+		short	color_pair_number)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkinit.c */
+
+#undef slk_init
+int	slk_init(
+		int	format)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slklab.c */
+
+#undef slk_label
+char	*slk_label(
+		int	n)
+		{ return(*(char **)0); }
+
+/* ./base/lib_slkrefr.c */
+
+#undef slk_noutrefresh
+int	slk_noutrefresh(void)
+		{ return(*(int *)0); }
+
+#undef slk_refresh
+int	slk_refresh(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slkset.c */
+
+#undef slk_set
+int	slk_set(
+		int	i, 
+		const char *astr, 
+		int	format)
+		{ return(*(int *)0); }
+
+/* ./base/lib_slktouch.c */
+
+#undef slk_touch
+int	slk_touch(void)
+		{ return(*(int *)0); }
+
+/* ./base/lib_touch.c */
+
+#undef is_linetouched
+NCURSES_BOOL is_linetouched(
+		WINDOW	*win, 
+		int	line)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_wintouched
+NCURSES_BOOL is_wintouched(
+		WINDOW	*win)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef wtouchln
+int	wtouchln(
+		WINDOW	*win, 
+		int	y, 
+		int	n, 
+		int	changed)
+		{ return(*(int *)0); }
+
+/* ./trace/lib_tracedmp.c */
+
+#undef _tracedump
+void	_tracedump(
+		const char *name, 
+		WINDOW	*win)
+		{ /* void */ }
+
+/* ./trace/lib_tracemse.c */
+
+#undef _nc_tracemouse
+char	*_nc_tracemouse(
+		SCREEN	*sp, 
+		MEVENT const *ep)
+		{ return(*(char **)0); }
+
+#undef _tracemouse
+char	*_tracemouse(
+		MEVENT const *ep)
+		{ return(*(char **)0); }
+
+/* ./tty/lib_tstp.c */
+
+#include <SigAction.h>
+
+#undef _nc_signal_handler
+void	_nc_signal_handler(
+		NCURSES_BOOL enable)
+		{ /* void */ }
+
+/* ./base/lib_ungetch.c */
+
+#undef _nc_fifo_dump
+void	_nc_fifo_dump(
+		SCREEN	*sp)
+		{ /* void */ }
+
+#undef _nc_ungetch
+int	_nc_ungetch(
+		SCREEN	*sp, 
+		int	ch)
+		{ return(*(int *)0); }
+
+#undef ungetch
+int	ungetch(
+		int	ch)
+		{ return(*(int *)0); }
+
+/* ./tty/lib_vidattr.c */
+
+#undef vidputs
+int	vidputs(
+		chtype	newmode, 
+		int	(*outc)(
+		int	p1))
+		{ return(*(int *)0); }
+
+#undef vidattr
+int	vidattr(
+		chtype	newmode)
+		{ return(*(int *)0); }
+
+#undef termattrs
+chtype	termattrs(void)
+		{ return(*(chtype *)0); }
+
+/* ./base/lib_vline.c */
+
+#undef wvline
+int	wvline(
+		WINDOW	*win, 
+		chtype	ch, 
+		int	n)
+		{ return(*(int *)0); }
+
+/* ./base/lib_wattroff.c */
+
+#undef wattr_off
+int	wattr_off(
+		WINDOW	*win, 
+		attr_t	at, 
+		void	*opts)
+		{ return(*(int *)0); }
+
+/* ./base/lib_wattron.c */
+
+#undef wattr_on
+int	wattr_on(
+		WINDOW	*win, 
+		attr_t	at, 
+		void	*opts)
+		{ return(*(int *)0); }
+
+/* ./base/lib_winch.c */
+
+#undef winch
+chtype	winch(
+		WINDOW	*win)
+		{ return(*(chtype *)0); }
+
+/* ./base/lib_window.c */
+
+#undef _nc_synchook
+void	_nc_synchook(
+		WINDOW	*win)
+		{ /* void */ }
+
+#undef mvderwin
+int	mvderwin(
+		WINDOW	*win, 
+		int	y, 
+		int	x)
+		{ return(*(int *)0); }
+
+#undef syncok
+int	syncok(
+		WINDOW	*win, 
+		NCURSES_BOOL bf)
+		{ return(*(int *)0); }
+
+#undef wsyncup
+void	wsyncup(
+		WINDOW	*win)
+		{ /* void */ }
+
+#undef wsyncdown
+void	wsyncdown(
+		WINDOW	*win)
+		{ /* void */ }
+
+#undef wcursyncup
+void	wcursyncup(
+		WINDOW	*win)
+		{ /* void */ }
+
+#undef dupwin
+WINDOW	*dupwin(
+		WINDOW	*win)
+		{ return(*(WINDOW **)0); }
+
+/* ./base/nc_panel.c */
+
+#undef _nc_panelhook
+struct panelhook *_nc_panelhook(void)
+		{ return(*(struct panelhook **)0); }
+
+/* ./base/safe_sprintf.c */
+
+#undef _nc_printf_string
+char	*_nc_printf_string(
+		const char *fmt, 
+		va_list	ap)
+		{ return(*(char **)0); }
+
+/* ./tty/tty_update.c */
+
+#include <sys/time.h>
+#include <sys/times.h>
+
+#undef doupdate
+int	doupdate(void)
+		{ return(*(int *)0); }
+
+#undef _nc_scrolln
+int	_nc_scrolln(
+		int	n, 
+		int	top, 
+		int	bot, 
+		int	maxy)
+		{ return(*(int *)0); }
+
+#undef _nc_screen_resume
+void	_nc_screen_resume(void)
+		{ /* void */ }
+
+#undef _nc_screen_init
+void	_nc_screen_init(void)
+		{ /* void */ }
+
+#undef _nc_screen_wrap
+void	_nc_screen_wrap(void)
+		{ /* void */ }
+
+#undef _nc_do_xmc_glitch
+void	_nc_do_xmc_glitch(
+		attr_t	previous)
+		{ /* void */ }
+
+/* ./trace/varargs.c */
+
+typedef enum {
+    atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
+#undef _nc_varargs
+char	*_nc_varargs(
+		const char *fmt, 
+		va_list	ap)
+		{ return(*(char **)0); }
+
+/* ./base/memmove.c */
+
+#undef _nc_memmove
+void	_nc_memmove(void)
+		{ /* void */ }
+
+/* ./base/vsscanf.c */
+
+#undef _nc_vsscanf
+void	_nc_vsscanf(void)
+		{ /* void */ }
+
+/* ./base/lib_freeall.c */
+
+#include <term_entry.h>
+
+#undef _nc_freeall
+void	_nc_freeall(void)
+		{ /* void */ }
+
+#undef _nc_free_and_exit
+void	_nc_free_and_exit(
+		int	code)
+		{ /* void */ }
+
+/* ./expanded.c */
+
+#undef _nc_expanded
+void	_nc_expanded(void)
+		{ /* void */ }
+
+/* ./base/legacy_coding.c */
+
+#undef use_legacy_coding
+int	use_legacy_coding(
+		int	level)
+		{ return(*(int *)0); }
+
+/* ./base/lib_dft_fgbg.c */
+
+#undef use_default_colors
+int	use_default_colors(void)
+		{ return(*(int *)0); }
+
+#undef assume_default_colors
+int	assume_default_colors(
+		int	fg, 
+		int	bg)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_print.c */
+
+#undef mcprint
+int	mcprint(
+		char	*data, 
+		int	len)
+		{ return(*(int *)0); }
+
+/* ./base/resizeterm.c */
+
+#undef is_term_resized
+NCURSES_BOOL is_term_resized(
+		int	ToLines, 
+		int	ToCols)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef resize_term
+int	resize_term(
+		int	ToLines, 
+		int	ToCols)
+		{ return(*(int *)0); }
+
+#undef resizeterm
+int	resizeterm(
+		int	ToLines, 
+		int	ToCols)
+		{ return(*(int *)0); }
+
+/* ./trace/trace_xnames.c */
+
+#undef _nc_trace_xnames
+void	_nc_trace_xnames(
+		TERMTYPE *tp)
+		{ /* void */ }
+
+/* ./tinfo/use_screen.c */
+
+#undef use_screen
+int	use_screen(
+		SCREEN	*screen, 
+		NCURSES_SCREEN_CB func, 
+		void	*data)
+		{ return(*(int *)0); }
+
+/* ./base/use_window.c */
+
+#undef use_window
+int	use_window(
+		WINDOW	*win, 
+		NCURSES_WINDOW_CB func, 
+		void	*data)
+		{ return(*(int *)0); }
+
+/* ./base/wresize.c */
+
+#undef wresize
+int	wresize(
+		WINDOW	*win, 
+		int	ToLines, 
+		int	ToCols)
+		{ return(*(int *)0); }
+
+/* ./tinfo/access.c */
+
+#include <sys/stat.h>
+#include <nc_alloc.h>
+
+#undef _nc_rootname
+char	*_nc_rootname(
+		char	*path)
+		{ return(*(char **)0); }
+
+#undef _nc_is_abs_path
+NCURSES_BOOL _nc_is_abs_path(
+		const char *path)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_pathlast
+unsigned _nc_pathlast(
+		const char *path)
+		{ return(*(unsigned *)0); }
+
+#undef _nc_basename
+char	*_nc_basename(
+		char	*path)
+		{ return(*(char **)0); }
+
+#undef _nc_access
+int	_nc_access(
+		const char *path, 
+		int	mode)
+		{ return(*(int *)0); }
+
+#undef _nc_is_dir_path
+NCURSES_BOOL _nc_is_dir_path(
+		const char *path)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_is_file_path
+NCURSES_BOOL _nc_is_file_path(
+		const char *path)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./tinfo/add_tries.c */
+
+#undef _nc_add_to_try
+int	_nc_add_to_try(
+		TRIES	**tree, 
+		const char *str, 
+		unsigned code)
+		{ return(*(int *)0); }
+
+/* ./tinfo/alloc_ttype.c */
+
+#undef _nc_align_termtype
+void	_nc_align_termtype(
+		TERMTYPE *to, 
+		TERMTYPE *from)
+		{ /* void */ }
+
+#undef _nc_copy_termtype
+void	_nc_copy_termtype(
+		TERMTYPE *dst, 
+		TERMTYPE *src)
+		{ /* void */ }
+
+/* ./codes.c */
+
+#undef _nc_boolcodes
+const char *const *_nc_boolcodes(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_numcodes
+const char *const *_nc_numcodes(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_strcodes
+const char *const *_nc_strcodes(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_codes_leaks
+void	_nc_codes_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/comp_error.c */
+
+#undef _nc_suppress_warnings
+NCURSES_BOOL _nc_suppress_warnings;
+#undef _nc_curr_line
+int	_nc_curr_line;
+#undef _nc_curr_col
+int	_nc_curr_col;
+
+#undef _nc_get_source
+const char *_nc_get_source(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_set_source
+void	_nc_set_source(
+		const char *const name)
+		{ /* void */ }
+
+#undef _nc_set_type
+void	_nc_set_type(
+		const char *const name)
+		{ /* void */ }
+
+#undef _nc_get_type
+void	_nc_get_type(
+		char	*name)
+		{ /* void */ }
+
+#undef _nc_warning
+void	_nc_warning(
+		const char *const fmt, 
+		...)
+		{ /* void */ }
+
+#undef _nc_err_abort
+void	_nc_err_abort(
+		const char *const fmt, 
+		...)
+		{ /* void */ }
+
+#undef _nc_syserr_abort
+void	_nc_syserr_abort(
+		const char *const fmt, 
+		...)
+		{ /* void */ }
+
+/* ./tinfo/db_iterator.c */
+
+#undef _nc_tic_dir
+const char *_nc_tic_dir(
+		const char *path)
+		{ return(*(const char **)0); }
+
+#undef _nc_keep_tic_dir
+void	_nc_keep_tic_dir(
+		const char *path)
+		{ /* void */ }
+
+#undef _nc_last_db
+void	_nc_last_db(void)
+		{ /* void */ }
+
+#undef _nc_next_db
+const char *_nc_next_db(
+		DBDIRS	*state, 
+		int	*offset)
+		{ return(*(const char **)0); }
+
+#undef _nc_first_db
+void	_nc_first_db(
+		DBDIRS	*state, 
+		int	*offset)
+		{ /* void */ }
+
+/* ./tinfo/doalloc.c */
+
+#undef _nc_doalloc
+void	*_nc_doalloc(
+		void	*oldp, 
+		size_t	amount)
+		{ return(*(void **)0); }
+
+/* ./tinfo/entries.c */
+
+#undef _nc_head
+ENTRY	*_nc_head;
+#undef _nc_tail
+ENTRY	*_nc_tail;
+
+#undef _nc_free_entry
+void	_nc_free_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ /* void */ }
+
+#undef _nc_free_entries
+void	_nc_free_entries(
+		ENTRY	*headp)
+		{ /* void */ }
+
+#undef _nc_delink_entry
+ENTRY	*_nc_delink_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_leaks_tinfo
+void	_nc_leaks_tinfo(void)
+		{ /* void */ }
+
+#undef _nc_free_tinfo
+void	_nc_free_tinfo(
+		int	code)
+		{ /* void */ }
+
+/* ./fallback.c */
+
+#undef _nc_fallback
+const TERMTYPE *_nc_fallback(
+		const char *name)
+		{ return(*(const TERMTYPE **)0); }
+
+/* ./tinfo/free_ttype.c */
+
+#undef _nc_free_termtype
+void	_nc_free_termtype(
+		TERMTYPE *ptr)
+		{ /* void */ }
+
+#undef _nc_user_definable
+NCURSES_BOOL _nc_user_definable;
+
+#undef use_extended_names
+int	use_extended_names(
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./tinfo/getenv_num.c */
+
+#undef _nc_getenv_num
+int	_nc_getenv_num(
+		const char *name)
+		{ return(*(int *)0); }
+
+/* ./tinfo/home_terminfo.c */
+
+#undef _nc_home_terminfo
+char	*_nc_home_terminfo(void)
+		{ return(*(char **)0); }
+
+/* ./tinfo/init_keytry.c */
+
+#if 0
+
+#include <init_keytry.h>
+
+#undef _nc_tinfo_fkeys
+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
+
+#endif
+
+#undef _nc_init_keytry
+void	_nc_init_keytry(
+		SCREEN	*sp)
+		{ /* void */ }
+
+/* ./tinfo/lib_acs.c */
+
+#undef _nc_acs_map
+chtype	*_nc_acs_map(void)
+		{ return(*(chtype **)0); }
+
+#undef _nc_init_acs
+void	_nc_init_acs(void)
+		{ /* void */ }
+
+/* ./tinfo/lib_baudrate.c */
+
+#include <termcap.h>
+
+struct speed {
+    int s; 
+    int sp; 
+};
+
+#undef _nc_baudrate
+int	_nc_baudrate(
+		int	OSpeed)
+		{ return(*(int *)0); }
+
+#undef _nc_ospeed
+int	_nc_ospeed(
+		int	BaudRate)
+		{ return(*(int *)0); }
+
+#undef baudrate
+int	baudrate(void)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_cur_term.c */
+
+#undef _nc_cur_term
+TERMINAL *_nc_cur_term(void)
+		{ return(*(TERMINAL **)0); }
+
+#undef set_curterm
+TERMINAL *set_curterm(
+		TERMINAL *termp)
+		{ return(*(TERMINAL **)0); }
+
+#undef del_curterm
+int	del_curterm(
+		TERMINAL *termp)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_data.c */
+
+#undef _nc_stdscr
+WINDOW	*_nc_stdscr(void)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_curscr
+WINDOW	*_nc_curscr(void)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_newscr
+WINDOW	*_nc_newscr(void)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_screen_chain
+SCREEN	*_nc_screen_chain;
+#undef SP
+SCREEN	*SP;
+#undef _nc_globals
+NCURSES_GLOBALS _nc_globals;
+#undef _nc_prescreen
+NCURSES_PRESCREEN _nc_prescreen;
+
+#undef _nc_mutex_init
+void	_nc_mutex_init(
+		pthread_mutex_t *obj)
+		{ /* void */ }
+
+#undef _nc_mutex_lock
+int	_nc_mutex_lock(
+		pthread_mutex_t *obj)
+		{ return(*(int *)0); }
+
+#undef _nc_mutex_trylock
+int	_nc_mutex_trylock(
+		pthread_mutex_t *obj)
+		{ return(*(int *)0); }
+
+#undef _nc_mutex_unlock
+int	_nc_mutex_unlock(
+		pthread_mutex_t *obj)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_has_cap.c */
+
+#undef has_ic
+NCURSES_BOOL has_ic(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef has_il
+NCURSES_BOOL has_il(void)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./tinfo/lib_kernel.c */
+
+#undef erasechar
+char	erasechar(void)
+		{ return(*(char *)0); }
+
+#undef killchar
+char	killchar(void)
+		{ return(*(char *)0); }
+
+#undef flushinp
+int	flushinp(void)
+		{ return(*(int *)0); }
+
+/* ./lib_keyname.c */
+
+struct kn { short offset; int code; };
+
+#undef _nc_keyname
+const char *_nc_keyname(
+		SCREEN	*sp, 
+		int	c)
+		{ return(*(const char **)0); }
+
+#undef keyname
+const char *keyname(
+		int	c)
+		{ return(*(const char **)0); }
+
+#undef _nc_keyname_leaks
+void	_nc_keyname_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/lib_longname.c */
+
+#undef longname
+char	*longname(void)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_napms.c */
+
+#undef napms
+int	napms(
+		int	ms)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_options.c */
+
+#undef idlok
+int	idlok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+#undef idcok
+void	idcok(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ /* void */ }
+
+#undef halfdelay
+int	halfdelay(
+		int	t)
+		{ return(*(int *)0); }
+
+#undef nodelay
+int	nodelay(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+#undef notimeout
+int	notimeout(
+		WINDOW	*win, 
+		NCURSES_BOOL f)
+		{ return(*(int *)0); }
+
+#undef wtimeout
+void	wtimeout(
+		WINDOW	*win, 
+		int	delay)
+		{ /* void */ }
+
+#undef keypad
+int	keypad(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+#undef meta
+int	meta(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+#undef curs_set
+int	curs_set(
+		int	vis)
+		{ return(*(int *)0); }
+
+#undef typeahead
+int	typeahead(
+		int	fd)
+		{ return(*(int *)0); }
+
+#undef has_key
+int	has_key(
+		int	keycode)
+		{ return(*(int *)0); }
+
+#undef _nc_keypad
+int	_nc_keypad(
+		SCREEN	*sp, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_raw.c */
+
+#undef raw
+int	raw(void)
+		{ return(*(int *)0); }
+
+#undef cbreak
+int	cbreak(void)
+		{ return(*(int *)0); }
+
+#undef qiflush
+void	qiflush(void)
+		{ /* void */ }
+
+#undef noraw
+int	noraw(void)
+		{ return(*(int *)0); }
+
+#undef nocbreak
+int	nocbreak(void)
+		{ return(*(int *)0); }
+
+#undef noqiflush
+void	noqiflush(void)
+		{ /* void */ }
+
+#undef intrflush
+int	intrflush(
+		WINDOW	*win, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_setup.c */
+
+#include <locale.h>
+#include <sys/ioctl.h>
+#include <langinfo.h>
+
+#undef _nc_ttytype
+char	*_nc_ttytype(void)
+		{ return(*(char **)0); }
+
+#undef _nc_ptr_Lines
+int	*_nc_ptr_Lines(void)
+		{ return(*(int **)0); }
+
+#undef _nc_LINES
+int	_nc_LINES(void)
+		{ return(*(int *)0); }
+
+#undef _nc_ptr_Cols
+int	*_nc_ptr_Cols(void)
+		{ return(*(int **)0); }
+
+#undef _nc_COLS
+int	_nc_COLS(void)
+		{ return(*(int *)0); }
+
+#undef _nc_TABSIZE
+int	_nc_TABSIZE(void)
+		{ return(*(int *)0); }
+
+#undef set_tabsize
+int	set_tabsize(
+		int	value)
+		{ return(*(int *)0); }
+
+#undef _nc_handle_sigwinch
+int	_nc_handle_sigwinch(
+		SCREEN	*sp)
+		{ return(*(int *)0); }
+
+#undef use_env
+void	use_env(
+		NCURSES_BOOL f)
+		{ /* void */ }
+
+#undef _nc_get_screensize
+void	_nc_get_screensize(
+		SCREEN	*sp, 
+		int	*linep, 
+		int	*colp)
+		{ /* void */ }
+
+#undef _nc_update_screensize
+void	_nc_update_screensize(
+		SCREEN	*sp)
+		{ /* void */ }
+
+#undef _nc_get_locale
+char	*_nc_get_locale(void)
+		{ return(*(char **)0); }
+
+#undef _nc_unicode_locale
+int	_nc_unicode_locale(void)
+		{ return(*(int *)0); }
+
+#undef _nc_locale_breaks_acs
+int	_nc_locale_breaks_acs(void)
+		{ return(*(int *)0); }
+
+#undef _nc_setupterm
+int	_nc_setupterm(
+		const char *tname, 
+		int	Filedes, 
+		int	*errret, 
+		NCURSES_BOOL reuse)
+		{ return(*(int *)0); }
+
+#undef setupterm
+int	setupterm(
+		const char *tname, 
+		int	Filedes, 
+		int	*errret)
+		{ return(*(int *)0); }
+
+/* ./tinfo/lib_termcap.c */
+
+#undef UP
+char	*UP;
+#undef BC
+char	*BC;
+
+#undef tgetent
+int	tgetent(
+		char	*bufp, 
+		const char *name)
+		{ return(*(int *)0); }
+
+#if 0
+
+#include <capdefaults.c>
+
+#endif
+
+#undef tgetflag
+int	tgetflag(
+		const char *id)
+		{ return(*(int *)0); }
+
+#undef tgetnum
+int	tgetnum(
+		const char *id)
+		{ return(*(int *)0); }
+
+#undef tgetstr
+char	*tgetstr(
+		const char *id, 
+		char	**area)
+		{ return(*(char **)0); }
+
+#undef _nc_tgetent_leaks
+void	_nc_tgetent_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/lib_termname.c */
+
+#undef termname
+char	*termname(void)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_tgoto.c */
+
+#undef tgoto
+char	*tgoto(
+		const char *string, 
+		int	x, 
+		int	y)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_ti.c */
+
+#undef tigetflag
+int	tigetflag(
+		const char *str)
+		{ return(*(int *)0); }
+
+#undef tigetnum
+int	tigetnum(
+		const char *str)
+		{ return(*(int *)0); }
+
+#undef tigetstr
+char	*tigetstr(
+		const char *str)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_tparm.c */
+
+#undef _nc_tparm_err
+int	_nc_tparm_err;
+
+#undef _nc_free_tparm
+void	_nc_free_tparm(void)
+		{ /* void */ }
+
+#undef _nc_tparm_analyze
+int	_nc_tparm_analyze(
+		const char *string, 
+		char	*p_is_s[9], 
+		int	*popcount)
+		{ return(*(int *)0); }
+
+#undef tparm
+char	*tparm(
+		const char *string, 
+		...)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_tputs.c */
+
+#undef PC
+char	PC;
+#undef ospeed
+NCURSES_OSPEED	ospeed;
+#undef _nc_nulls_sent
+int	_nc_nulls_sent;
+
+#undef delay_output
+int	delay_output(
+		int	ms)
+		{ return(*(int *)0); }
+
+#undef _nc_flush
+void	_nc_flush(void)
+		{ /* void */ }
+
+#undef _nc_outch
+int	_nc_outch(
+		int	ch)
+		{ return(*(int *)0); }
+
+#undef putp
+int	putp(
+		const char *string)
+		{ return(*(int *)0); }
+
+#undef tputs
+int	tputs(
+		const char *string, 
+		int	affcnt, 
+		int	(*outc)(
+		int	p1))
+		{ return(*(int *)0); }
+
+/* ./trace/lib_trace.c */
+
+#undef _nc_tracing
+unsigned _nc_tracing;
+
+#undef _nc__nc_tputs_trace
+const char *_nc__nc_tputs_trace(void)
+		{ return(*(const char **)0); }
+
+#undef _nc__nc_outchars
+long	_nc__nc_outchars(void)
+		{ return(*(long *)0); }
+
+#undef _nc_set_tputs_trace
+void	_nc_set_tputs_trace(
+		const char *s)
+		{ /* void */ }
+
+#undef _nc_count_outchars
+void	_nc_count_outchars(
+		long	increment)
+		{ /* void */ }
+
+#undef trace
+void	trace(
+		const unsigned int tracelevel)
+		{ /* void */ }
+
+#undef _tracef
+void	_tracef(
+		const char *fmt, 
+		...)
+		{ /* void */ }
+
+#undef _nc_retrace_bool
+NCURSES_BOOL _nc_retrace_bool(
+		NCURSES_BOOL code)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_retrace_int
+int	_nc_retrace_int(
+		int	code)
+		{ return(*(int *)0); }
+
+#undef _nc_retrace_unsigned
+unsigned _nc_retrace_unsigned(
+		unsigned code)
+		{ return(*(unsigned *)0); }
+
+#undef _nc_retrace_ptr
+char	*_nc_retrace_ptr(
+		char	*code)
+		{ return(*(char **)0); }
+
+#undef _nc_retrace_cptr
+const char *_nc_retrace_cptr(
+		const char *code)
+		{ return(*(const char **)0); }
+
+#undef _nc_retrace_cvoid_ptr
+const void *_nc_retrace_cvoid_ptr(
+		const void *code)
+		{ return(*(const void **)0); }
+
+#undef _nc_retrace_void_ptr
+void	*_nc_retrace_void_ptr(
+		void	*code)
+		{ return(*(void **)0); }
+
+#undef _nc_retrace_sp
+SCREEN	*_nc_retrace_sp(
+		SCREEN	*code)
+		{ return(*(SCREEN **)0); }
+
+#undef _nc_retrace_win
+WINDOW	*_nc_retrace_win(
+		WINDOW	*code)
+		{ return(*(WINDOW **)0); }
+
+#undef _nc_use_tracef
+int	_nc_use_tracef(
+		unsigned mask)
+		{ return(*(int *)0); }
+
+#undef _nc_locked_tracef
+void	_nc_locked_tracef(
+		const char *fmt, 
+		...)
+		{ /* void */ }
+
+/* ./trace/lib_traceatr.c */
+
+#undef _traceattr2
+char	*_traceattr2(
+		int	bufnum, 
+		chtype	newmode)
+		{ return(*(char **)0); }
+
+#undef _traceattr
+char	*_traceattr(
+		attr_t	newmode)
+		{ return(*(char **)0); }
+
+#undef _nc_retrace_attr_t
+attr_t	_nc_retrace_attr_t(
+		attr_t	code)
+		{ return(*(attr_t *)0); }
+
+#undef _nc_altcharset_name
+const char *_nc_altcharset_name(
+		attr_t	attr, 
+		chtype	ch)
+		{ return(*(const char **)0); }
+
+#undef _tracechtype2
+char	*_tracechtype2(
+		int	bufnum, 
+		chtype	ch)
+		{ return(*(char **)0); }
+
+#undef _tracechtype
+char	*_tracechtype(
+		chtype	ch)
+		{ return(*(char **)0); }
+
+#undef _nc_retrace_chtype
+chtype	_nc_retrace_chtype(
+		chtype	code)
+		{ return(*(chtype *)0); }
+
+/* ./trace/lib_tracebits.c */
+
+typedef struct {
+    unsigned int val;
+    const char *name;
+} BITNAMES;
+
+#undef _nc_trace_ttymode
+char	*_nc_trace_ttymode(
+		struct termios *tty)
+		{ return(*(char **)0); }
+
+#undef _nc_tracebits
+char	*_nc_tracebits(void)
+		{ return(*(char **)0); }
+
+/* ./trace/lib_tracechr.c */
+
+#undef _nc_tracechar
+char	*_nc_tracechar(
+		SCREEN	*sp, 
+		int	ch)
+		{ return(*(char **)0); }
+
+#undef _tracechar
+char	*_tracechar(
+		int	ch)
+		{ return(*(char **)0); }
+
+/* ./tinfo/lib_ttyflags.c */
+
+#undef _nc_get_tty_mode
+int	_nc_get_tty_mode(
+		struct termios *buf)
+		{ return(*(int *)0); }
+
+#undef _nc_set_tty_mode
+int	_nc_set_tty_mode(
+		struct termios *buf)
+		{ return(*(int *)0); }
+
+#undef def_shell_mode
+int	def_shell_mode(void)
+		{ return(*(int *)0); }
+
+#undef def_prog_mode
+int	def_prog_mode(void)
+		{ return(*(int *)0); }
+
+#undef reset_prog_mode
+int	reset_prog_mode(void)
+		{ return(*(int *)0); }
+
+#undef reset_shell_mode
+int	reset_shell_mode(void)
+		{ return(*(int *)0); }
+
+#undef savetty
+int	savetty(void)
+		{ return(*(int *)0); }
+
+#undef resetty
+int	resetty(void)
+		{ return(*(int *)0); }
+
+/* ./tty/lib_twait.c */
+
+#undef _nc_eventlist_timeout
+int	_nc_eventlist_timeout(
+		_nc_eventlist *evl)
+		{ return(*(int *)0); }
+
+#undef _nc_timed_wait
+int	_nc_timed_wait(
+		SCREEN	*sp, 
+		int	mode, 
+		int	milliseconds, 
+		int	*timeleft, 
+		_nc_eventlist *evl)
+		{ return(*(int *)0); }
+
+/* ./tinfo/name_match.c */
+
+#undef _nc_first_name
+char	*_nc_first_name(
+		const char *const sp)
+		{ return(*(char **)0); }
+
+#undef _nc_name_match
+int	_nc_name_match(
+		const char *const namelst, 
+		const char *const name, 
+		const char *const delim)
+		{ return(*(int *)0); }
+
+/* ./names.c */
+
+#undef _nc_boolnames
+const char *const *_nc_boolnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_boolfnames
+const char *const *_nc_boolfnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_numnames
+const char *const *_nc_numnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_numfnames
+const char *const *_nc_numfnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_strnames
+const char *const *_nc_strnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_strfnames
+const char *const *_nc_strfnames(void)
+		{ return(*(const char **)0); }
+
+#undef _nc_names_leaks
+void	_nc_names_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/read_entry.c */
+
+#include <hashed_db.h>
+
+#undef _nc_read_termtype
+int	_nc_read_termtype(
+		TERMTYPE *ptr, 
+		char	*buffer, 
+		int	limit)
+		{ return(*(int *)0); }
+
+#undef _nc_read_file_entry
+int	_nc_read_file_entry(
+		const char *const filename, 
+		TERMTYPE *ptr)
+		{ return(*(int *)0); }
+
+#undef _nc_read_entry
+int	_nc_read_entry(
+		const char *const name, 
+		char	*const filename, 
+		TERMTYPE *const tp)
+		{ return(*(int *)0); }
+
+/* ./tinfo/read_termcap.c */
+
+#include <sys/types.h>
+
+#undef _nc_read_termcap
+void	_nc_read_termcap(void)
+		{ /* void */ }
+
+/* ./tinfo/setbuf.c */
+
+#undef _nc_set_buffer
+void	_nc_set_buffer(
+		FILE	*ofp, 
+		NCURSES_BOOL buffered)
+		{ /* void */ }
+
+/* ./tinfo/strings.c */
+
+#undef _nc_str_init
+string_desc *_nc_str_init(
+		string_desc *dst, 
+		char	*src, 
+		size_t	len)
+		{ return(*(string_desc **)0); }
+
+#undef _nc_str_null
+string_desc *_nc_str_null(
+		string_desc *dst, 
+		size_t	len)
+		{ return(*(string_desc **)0); }
+
+#undef _nc_str_copy
+string_desc *_nc_str_copy(
+		string_desc *dst, 
+		string_desc *src)
+		{ return(*(string_desc **)0); }
+
+#undef _nc_safe_strcat
+NCURSES_BOOL _nc_safe_strcat(
+		string_desc *dst, 
+		const char *src)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_safe_strcpy
+NCURSES_BOOL _nc_safe_strcpy(
+		string_desc *dst, 
+		const char *src)
+		{ return(*(NCURSES_BOOL *)0); }
+
+/* ./trace/trace_buf.c */
+
+#undef _nc_trace_buf
+char	*_nc_trace_buf(
+		int	bufnum, 
+		size_t	want)
+		{ return(*(char **)0); }
+
+#undef _nc_trace_bufcat
+char	*_nc_trace_bufcat(
+		int	bufnum, 
+		const char *value)
+		{ return(*(char **)0); }
+
+/* ./trace/trace_tries.c */
+
+#undef _nc_trace_tries
+void	_nc_trace_tries(
+		TRIES	*tree)
+		{ /* void */ }
+
+/* ./base/tries.c */
+
+#undef _nc_expand_try
+char	*_nc_expand_try(
+		TRIES	*tree, 
+		unsigned code, 
+		int	*count, 
+		size_t	len)
+		{ return(*(char **)0); }
+
+#undef _nc_remove_key
+int	_nc_remove_key(
+		TRIES	**tree, 
+		unsigned code)
+		{ return(*(int *)0); }
+
+#undef _nc_remove_string
+int	_nc_remove_string(
+		TRIES	**tree, 
+		const char *string)
+		{ return(*(int *)0); }
+
+/* ./tinfo/trim_sgr0.c */
+
+#undef _nc_trim_sgr0
+char	*_nc_trim_sgr0(
+		TERMTYPE *tp)
+		{ return(*(char **)0); }
+
+/* ./unctrl.c */
+
+#undef _nc_unctrl
+const char *_nc_unctrl(
+		SCREEN	*sp, 
+		chtype	ch)
+		{ return(*(const char **)0); }
+
+#undef unctrl
+const char *unctrl(
+		chtype	ch)
+		{ return(*(const char **)0); }
+
+/* ./trace/visbuf.c */
+
+#undef _nc_visbuf2
+const char *_nc_visbuf2(
+		int	bufnum, 
+		const char *buf)
+		{ return(*(const char **)0); }
+
+#undef _nc_visbuf
+const char *_nc_visbuf(
+		const char *buf)
+		{ return(*(const char **)0); }
+
+#undef _nc_visbufn
+const char *_nc_visbufn(
+		const char *buf, 
+		int	len)
+		{ return(*(const char **)0); }
+
+#undef _nc_viscbuf2
+const char *_nc_viscbuf2(
+		int	bufnum, 
+		const chtype *buf, 
+		int	len)
+		{ return(*(const char **)0); }
+
+#undef _nc_viscbuf
+const char *_nc_viscbuf(
+		const chtype *buf, 
+		int	len)
+		{ return(*(const char **)0); }
+
+/* ./tinfo/alloc_entry.c */
+
+#undef _nc_init_entry
+void	_nc_init_entry(
+		TERMTYPE *const tp)
+		{ /* void */ }
+
+#undef _nc_copy_entry
+ENTRY	*_nc_copy_entry(
+		ENTRY	*oldp)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_save_str
+char	*_nc_save_str(
+		const char *const string)
+		{ return(*(char **)0); }
+
+#undef _nc_wrap_entry
+void	_nc_wrap_entry(
+		ENTRY	*const ep, 
+		NCURSES_BOOL copy_strings)
+		{ /* void */ }
+
+#undef _nc_merge_entry
+void	_nc_merge_entry(
+		TERMTYPE *const to, 
+		TERMTYPE *const from)
+		{ /* void */ }
+
+#undef _nc_alloc_entry_leaks
+void	_nc_alloc_entry_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/captoinfo.c */
+
+#undef _nc_captoinfo
+char	*_nc_captoinfo(
+		const char *cap, 
+		const char *s, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+#undef _nc_infotocap
+char	*_nc_infotocap(
+		const char *cap, 
+		const char *str, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+#undef _nc_captoinfo_leaks
+void	_nc_captoinfo_leaks(void)
+		{ /* void */ }
+
+/* ./comp_captab.c */
+
+#include <hashsize.h>
+
+#undef _nc_get_table
+const struct name_table_entry *_nc_get_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct name_table_entry **)0); }
+
+#undef _nc_get_hash_table
+const short *_nc_get_hash_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const short **)0); }
+
+#undef _nc_get_alias_table
+const struct alias *_nc_get_alias_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct alias **)0); }
+
+#undef _nc_comp_captab_leaks
+void	_nc_comp_captab_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/comp_expand.c */
+
+#undef _nc_tic_expand
+char	*_nc_tic_expand(
+		const char *srcp, 
+		NCURSES_BOOL tic_format, 
+		int	numbers)
+		{ return(*(char **)0); }
+
+/* ./tinfo/comp_hash.c */
+
+#undef _nc_find_entry
+struct name_table_entry const *_nc_find_entry(
+		const char *string, 
+		const short *hash_table)
+		{ return(*(struct name_table_entry const **)0); }
+
+#undef _nc_find_type_entry
+struct name_table_entry const *_nc_find_type_entry(
+		const char *string, 
+		int	type, 
+		const struct name_table_entry *table)
+		{ return(*(struct name_table_entry const **)0); }
+
+/* ./tinfo/comp_parse.c */
+
+#undef _nc_check_termtype2
+void	(*_nc_check_termtype2)(
+		TERMTYPE *p1, 
+		NCURSES_BOOL p2);
+#undef _nc_check_termtype
+void	(*_nc_check_termtype)(
+		TERMTYPE *p1);
+
+#undef _nc_entry_match
+NCURSES_BOOL _nc_entry_match(
+		char	*n1, 
+		char	*n2)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_read_entry_source
+void	_nc_read_entry_source(
+		FILE	*fp, 
+		char	*buf, 
+		int	literal, 
+		NCURSES_BOOL silent, 
+		NCURSES_BOOL (*hook)(
+		ENTRY	*p1))
+		{ /* void */ }
+
+#undef _nc_resolve_uses2
+int	_nc_resolve_uses2(
+		NCURSES_BOOL fullresolve, 
+		NCURSES_BOOL literal)
+		{ return(*(int *)0); }
+
+#undef _nc_resolve_uses
+int	_nc_resolve_uses(
+		NCURSES_BOOL fullresolve)
+		{ return(*(int *)0); }
+
+#undef _nc_leaks_tic
+void	_nc_leaks_tic(void)
+		{ /* void */ }
+
+#undef _nc_free_tic
+void	_nc_free_tic(
+		int	code)
+		{ /* void */ }
+
+/* ./tinfo/comp_scan.c */
+
+#undef _nc_syntax
+int	_nc_syntax;
+#undef _nc_curr_file_pos
+long	_nc_curr_file_pos;
+#undef _nc_comment_start
+long	_nc_comment_start;
+#undef _nc_comment_end
+long	_nc_comment_end;
+#undef _nc_start_line
+long	_nc_start_line;
+#undef _nc_curr_token
+struct token _nc_curr_token;
+#undef _nc_disable_period
+NCURSES_BOOL _nc_disable_period;
+
+#undef _nc_reset_input
+void	_nc_reset_input(
+		FILE	*fp, 
+		char	*buf)
+		{ /* void */ }
+
+#undef _nc_get_token
+int	_nc_get_token(
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_trans_string
+int	_nc_trans_string(
+		char	*ptr, 
+		char	*last)
+		{ return(*(int *)0); }
+
+#undef _nc_push_token
+void	_nc_push_token(
+		int	tokclass)
+		{ /* void */ }
+
+#undef _nc_panic_mode
+void	_nc_panic_mode(
+		char	ch)
+		{ /* void */ }
+
+#undef _nc_comp_scan_leaks
+void	_nc_comp_scan_leaks(void)
+		{ /* void */ }
+
+/* ./tinfo/parse_entry.c */
+
+#undef _nc_parse_entry
+int	_nc_parse_entry(
+		struct entry *entryp, 
+		int	literal, 
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_capcmp
+int	_nc_capcmp(
+		const char *s, 
+		const char *t)
+		{ return(*(int *)0); }
+
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
+/* ./tinfo/write_entry.c */
+
+#undef _nc_set_writedir
+void	_nc_set_writedir(
+		char	*dir)
+		{ /* void */ }
+
+#undef _nc_write_entry
+void	_nc_write_entry(
+		TERMTYPE *const tp)
+		{ /* void */ }
+
+#undef _nc_tic_written
+int	_nc_tic_written(void)
+		{ return(*(int *)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int	define_key(
+		const char *str, 
+		int	keycode)
+		{ return(*(int *)0); }
+
+/* ./tinfo/hashed_db.c */
+
+#undef _nc_hashed_db
+void	_nc_hashed_db(void)
+		{ /* void */ }
+
+/* ./base/key_defined.c */
+
+#undef key_defined
+int	key_defined(
+		const char *str)
+		{ return(*(int *)0); }
+
+/* ./base/keybound.c */
+
+#undef keybound
+char	*keybound(
+		int	code, 
+		int	count)
+		{ return(*(char **)0); }
+
+/* ./base/keyok.c */
+
+#undef keyok
+int	keyok(
+		int	c, 
+		NCURSES_BOOL flag)
+		{ return(*(int *)0); }
+
+/* ./base/version.c */
+
+#undef curses_version
+const char *curses_version(void)
+		{ return(*(const char **)0); }
diff -Naur ncurses-5.6.orig/ncurses/llib-lncursesw ncurses-5.6/ncurses/llib-lncursesw
--- ncurses-5.6.orig/ncurses/llib-lncursesw	2006-12-17 12:37:36.000000000 -0500
+++ ncurses-5.6/ncurses/llib-lncursesw	2008-06-18 06:49:44.000000000 -0400
@@ -1066,6 +1066,11 @@
 		WINDOW	*z)
 		{ return(*(int *)0); }
 
+#undef getattrs
+int	getattrs(
+		const WINDOW *z)
+		{ return(*(int *)0); }
+
 #undef getcurx
 int	getcurx(
 		const WINDOW *z)
@@ -1106,6 +1111,68 @@
 		const WINDOW *z)
 		{ return(*(int *)0); }
 
+#undef wgetparent
+WINDOW	*wgetparent(
+		const WINDOW *z)
+		{ return(*(WINDOW **)0); }
+
+#undef is_cleared
+NCURSES_BOOL is_cleared(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idcok
+NCURSES_BOOL is_idcok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_idlok
+NCURSES_BOOL is_idlok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_immedok
+NCURSES_BOOL is_immedok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_keypad
+NCURSES_BOOL is_keypad(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_leaveok
+NCURSES_BOOL is_leaveok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_nodelay
+NCURSES_BOOL is_nodelay(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_notimeout
+NCURSES_BOOL is_notimeout(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_scrollok
+NCURSES_BOOL is_scrollok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef is_syncok
+NCURSES_BOOL is_syncok(
+		const WINDOW *z)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef wgetscrreg
+int	wgetscrreg(
+		const WINDOW *a1, 
+		int	*a2, 
+		int	*z)
+		{ return(*(int *)0); }
+
 #undef add_wch
 int	add_wch(
 		const cchar_t *z)
@@ -2529,14 +2596,6 @@
 		void	*opts)
 		{ return(*(int *)0); }
 
-/* ./widechar/lib_get_wch.c */
-
-#undef wget_wch
-int	wget_wch(
-		WINDOW	*win, 
-		wint_t	*result)
-		{ return(*(int *)0); }
-
 /* ./widechar/lib_erasewchar.c */
 
 #undef erasewchar
@@ -2549,6 +2608,14 @@
 		wchar_t	*wch)
 		{ return(*(int *)0); }
 
+/* ./widechar/lib_get_wch.c */
+
+#undef wget_wch
+int	wget_wch(
+		WINDOW	*win, 
+		wint_t	*result)
+		{ return(*(int *)0); }
+
 /* ./widechar/lib_get_wstr.c */
 
 #undef wgetn_wstr
@@ -2614,6 +2681,13 @@
 		wchar_t	*wstr)
 		{ return(*(int *)0); }
 
+/* ./widechar/lib_key_name.c */
+
+#undef key_name
+char	*key_name(
+		wchar_t	c)
+		{ return(*(char **)0); }
+
 /* ./widechar/lib_pecho_wchar.c */
 
 #undef pecho_wchar
@@ -2832,40 +2906,11 @@
 /* ./tinfo/add_tries.c */
 
 #undef _nc_add_to_try
-void	_nc_add_to_try(
-		struct tries **tree, 
+int	_nc_add_to_try(
+		TRIES	**tree, 
 		const char *str, 
 		unsigned code)
-		{ /* void */ }
-
-/* ./tinfo/alloc_entry.c */
-
-#undef _nc_init_entry
-void	_nc_init_entry(
-		TERMTYPE *const tp)
-		{ /* void */ }
-
-#undef _nc_copy_entry
-ENTRY	*_nc_copy_entry(
-		ENTRY	*oldp)
-		{ return(*(ENTRY **)0); }
-
-#undef _nc_save_str
-char	*_nc_save_str(
-		const char *const string)
-		{ return(*(char **)0); }
-
-#undef _nc_wrap_entry
-void	_nc_wrap_entry(
-		ENTRY	*const ep, 
-		NCURSES_BOOL copy_strings)
-		{ /* void */ }
-
-#undef _nc_merge_entry
-void	_nc_merge_entry(
-		TERMTYPE *const to, 
-		TERMTYPE *const from)
-		{ /* void */ }
+		{ return(*(int *)0); }
 
 /* ./tinfo/alloc_ttype.c */
 
@@ -2881,22 +2926,6 @@
 		TERMTYPE *src)
 		{ /* void */ }
 
-/* ./tinfo/captoinfo.c */
-
-#undef _nc_captoinfo
-char	*_nc_captoinfo(
-		const char *cap, 
-		const char *s, 
-		int const parameterized)
-		{ return(*(char **)0); }
-
-#undef _nc_infotocap
-char	*_nc_infotocap(
-		const char *cap, 
-		const char *str, 
-		int const parameterized)
-		{ return(*(char **)0); }
-
 /* ./codes.c */
 
 #undef boolcodes
@@ -2906,31 +2935,7 @@
 #undef strcodes
 char	*const strcodes[] = {0};
 
-/* ./comp_captab.c */
-
-#include <ncurses_cfg.h>
-
-#undef _nc_info_hash_table
-const struct name_table_entry *const _nc_info_hash_table[995] = {0};
-#undef _nc_cap_hash_table
-const struct name_table_entry *const _nc_cap_hash_table[995] = {0};
-#undef _nc_capalias_table
-const struct alias _nc_capalias_table[] = {0};
-#undef _nc_infoalias_table
-const struct alias _nc_infoalias_table[] = {0};
-
-#undef _nc_get_table
-const struct name_table_entry *_nc_get_table(
-		NCURSES_BOOL termcap)
-		{ return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const struct name_table_entry *const *_nc_get_hash_table(
-		NCURSES_BOOL termcap)
-		{ return(*(const struct name_table_entry **)0); }
-
 /* ./tinfo/comp_error.c */
-
 #undef _nc_suppress_warnings
 NCURSES_BOOL _nc_suppress_warnings;
 #undef _nc_curr_line
@@ -2975,134 +2980,6 @@
 		...)
 		{ /* void */ }
 
-/* ./tinfo/comp_expand.c */
-
-#undef _nc_tic_expand
-char	*_nc_tic_expand(
-		const char *srcp, 
-		NCURSES_BOOL tic_format, 
-		int	numbers)
-		{ return(*(char **)0); }
-
-/* ./tinfo/comp_hash.c */
-
-#include <hashsize.h>
-
-#undef _nc_find_entry
-struct name_table_entry const *_nc_find_entry(
-		const char *string, 
-		const struct name_table_entry *const *hash_table)
-		{ return(*(struct name_table_entry const **)0); }
-
-#undef _nc_find_type_entry
-struct name_table_entry const *_nc_find_type_entry(
-		const char *string, 
-		int	type, 
-		const struct name_table_entry *table)
-		{ return(*(struct name_table_entry const **)0); }
-
-/* ./tinfo/comp_parse.c */
-
-#undef _nc_check_termtype2
-void	(*_nc_check_termtype2)(
-		TERMTYPE *p1, 
-		NCURSES_BOOL p2);
-#undef _nc_check_termtype
-void	(*_nc_check_termtype)(
-		TERMTYPE *p1);
-#undef _nc_head
-ENTRY	*_nc_head;
-#undef _nc_tail
-ENTRY	*_nc_tail;
-
-#undef _nc_free_entries
-void	_nc_free_entries(
-		ENTRY	*headp)
-		{ /* void */ }
-
-#undef _nc_delink_entry
-ENTRY	*_nc_delink_entry(
-		ENTRY	*headp, 
-		TERMTYPE *tterm)
-		{ return(*(ENTRY **)0); }
-
-#undef _nc_free_entry
-void	_nc_free_entry(
-		ENTRY	*headp, 
-		TERMTYPE *tterm)
-		{ /* void */ }
-
-#undef _nc_entry_match
-NCURSES_BOOL _nc_entry_match(
-		char	*n1, 
-		char	*n2)
-		{ return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_read_entry_source
-void	_nc_read_entry_source(
-		FILE	*fp, 
-		char	*buf, 
-		int	literal, 
-		NCURSES_BOOL silent, 
-		NCURSES_BOOL (*hook)(
-		ENTRY	*p1))
-		{ /* void */ }
-
-#undef _nc_resolve_uses2
-int	_nc_resolve_uses2(
-		NCURSES_BOOL fullresolve, 
-		NCURSES_BOOL literal)
-		{ return(*(int *)0); }
-
-#undef _nc_resolve_uses
-int	_nc_resolve_uses(
-		NCURSES_BOOL fullresolve)
-		{ return(*(int *)0); }
-
-/* ./tinfo/comp_scan.c */
-
-#undef _nc_syntax
-int	_nc_syntax;
-#undef _nc_curr_file_pos
-long	_nc_curr_file_pos;
-#undef _nc_comment_start
-long	_nc_comment_start;
-#undef _nc_comment_end
-long	_nc_comment_end;
-#undef _nc_start_line
-long	_nc_start_line;
-#undef _nc_curr_token
-struct token _nc_curr_token;
-#undef _nc_disable_period
-NCURSES_BOOL _nc_disable_period;
-
-#undef _nc_reset_input
-void	_nc_reset_input(
-		FILE	*fp, 
-		char	*buf)
-		{ /* void */ }
-
-#undef _nc_get_token
-int	_nc_get_token(
-		NCURSES_BOOL silent)
-		{ return(*(int *)0); }
-
-#undef _nc_trans_string
-int	_nc_trans_string(
-		char	*ptr, 
-		char	*last)
-		{ return(*(int *)0); }
-
-#undef _nc_push_token
-void	_nc_push_token(
-		int	tokclass)
-		{ /* void */ }
-
-#undef _nc_panic_mode
-void	_nc_panic_mode(
-		char	ch)
-		{ /* void */ }
-
 /* ./tinfo/db_iterator.c */
 
 #undef _nc_tic_dir
@@ -3139,6 +3016,34 @@
 		size_t	amount)
 		{ return(*(void **)0); }
 
+/* ./tinfo/entries.c */
+
+#undef _nc_head
+ENTRY	*_nc_head;
+#undef _nc_tail
+ENTRY	*_nc_tail;
+
+#undef _nc_free_entry
+void	_nc_free_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ /* void */ }
+
+#undef _nc_free_entries
+void	_nc_free_entries(
+		ENTRY	*headp)
+		{ /* void */ }
+
+#undef _nc_delink_entry
+ENTRY	*_nc_delink_entry(
+		ENTRY	*headp, 
+		TERMTYPE *tterm)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_leaks_tinfo
+void	_nc_leaks_tinfo(void)
+		{ /* void */ }
+
 /* ./fallback.c */
 
 #undef _nc_fallback
@@ -3181,7 +3086,7 @@
 #include <init_keytry.h>
 
 #undef _nc_tinfo_fkeys
-struct tinfo_fkeys _nc_tinfo_fkeys[];
+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
 
 #endif
 
@@ -3248,6 +3153,10 @@
 SCREEN	*_nc_screen_chain;
 #undef SP
 SCREEN	*SP;
+#undef _nc_globals
+NCURSES_GLOBALS _nc_globals;
+#undef _nc_prescreen
+NCURSES_PRESCREEN _nc_prescreen;
 
 /* ./tinfo/lib_has_cap.c */
 
@@ -3275,19 +3184,13 @@
 
 /* ./lib_keyname.c */
 
-#undef _nc_key_names
-const struct kn _nc_key_names[] = {0};
+struct kn { short offset; int code; };
 
 #undef keyname
 char	*keyname(
 		int	c)
 		{ return(*(char **)0); }
 
-#undef key_name
-char	*key_name(
-		wchar_t	c)
-		{ return(*(char **)0); }
-
 /* ./tinfo/lib_longname.c */
 
 #undef longname
@@ -3421,7 +3324,7 @@
 
 #undef _nc_handle_sigwinch
 int	_nc_handle_sigwinch(
-		int	enable)
+		int	update)
 		{ return(*(int *)0); }
 
 #undef use_env
@@ -3429,6 +3332,12 @@
 		NCURSES_BOOL f)
 		{ /* void */ }
 
+#undef _nc_get_screensize
+void	_nc_get_screensize(
+		int	*linep, 
+		int	*colp)
+		{ /* void */ }
+
 #undef _nc_update_screensize
 void	_nc_update_screensize(void)
 		{ /* void */ }
@@ -3529,14 +3438,6 @@
 
 /* ./tinfo/lib_tparm.c */
 
-typedef struct {
-    union {
- int num;
- char *str;
-    } data;
-    NCURSES_BOOL num_type;
-} stack_frame;
-
 #undef _nc_tparm_err
 int	_nc_tparm_err;
 
@@ -3802,26 +3703,6 @@
 #undef strfnames
 char	*const strfnames[] = {0};
 
-/* ./tinfo/parse_entry.c */
-
-#undef _nc_parse_entry
-int	_nc_parse_entry(
-		struct entry *entryp, 
-		int	literal, 
-		NCURSES_BOOL silent)
-		{ return(*(int *)0); }
-
-#undef _nc_capcmp
-int	_nc_capcmp(
-		const char *s, 
-		const char *t)
-		{ return(*(int *)0); }
-
-typedef struct {
-    const char *from;
-    const char *to;
-} assoc;
-
 /* ./tinfo/read_entry.c */
 
 #include <hashed_db.h>
@@ -3899,11 +3780,6 @@
 
 /* ./trace/trace_buf.c */
 
-typedef struct {
-    char *text;
-    size_t size;
-} LIST;
-
 #undef _nc_trace_buf
 char	*_nc_trace_buf(
 		int	bufnum, 
@@ -3920,14 +3796,14 @@
 
 #undef _nc_trace_tries
 void	_nc_trace_tries(
-		struct tries *tree)
+		TRIES	*tree)
 		{ /* void */ }
 
 /* ./base/tries.c */
 
 #undef _nc_expand_try
 char	*_nc_expand_try(
-		struct tries *tree, 
+		TRIES	*tree, 
 		unsigned code, 
 		int	*count, 
 		size_t	len)
@@ -3935,13 +3811,13 @@
 
 #undef _nc_remove_key
 int	_nc_remove_key(
-		struct tries **tree, 
+		TRIES	**tree, 
 		unsigned code)
 		{ return(*(int *)0); }
 
 #undef _nc_remove_string
 int	_nc_remove_string(
-		struct tries **tree, 
+		TRIES	**tree, 
 		const char *string)
 		{ return(*(int *)0); }
 
@@ -4013,6 +3889,195 @@
 		int	len)
 		{ return(*(const char **)0); }
 
+/* ./tinfo/alloc_entry.c */
+
+#undef _nc_init_entry
+void	_nc_init_entry(
+		TERMTYPE *const tp)
+		{ /* void */ }
+
+#undef _nc_copy_entry
+ENTRY	*_nc_copy_entry(
+		ENTRY	*oldp)
+		{ return(*(ENTRY **)0); }
+
+#undef _nc_save_str
+char	*_nc_save_str(
+		const char *const string)
+		{ return(*(char **)0); }
+
+#undef _nc_wrap_entry
+void	_nc_wrap_entry(
+		ENTRY	*const ep, 
+		NCURSES_BOOL copy_strings)
+		{ /* void */ }
+
+#undef _nc_merge_entry
+void	_nc_merge_entry(
+		TERMTYPE *const to, 
+		TERMTYPE *const from)
+		{ /* void */ }
+
+/* ./tinfo/captoinfo.c */
+
+#undef _nc_captoinfo
+char	*_nc_captoinfo(
+		const char *cap, 
+		const char *s, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+#undef _nc_infotocap
+char	*_nc_infotocap(
+		const char *cap, 
+		const char *str, 
+		int const parameterized)
+		{ return(*(char **)0); }
+
+/* ./comp_captab.c */
+
+#include <hashsize.h>
+
+#undef _nc_get_table
+const struct name_table_entry *_nc_get_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct name_table_entry **)0); }
+
+#undef _nc_get_hash_table
+const short *_nc_get_hash_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const short **)0); }
+
+#undef _nc_get_alias_table
+const struct alias *_nc_get_alias_table(
+		NCURSES_BOOL termcap)
+		{ return(*(const struct alias **)0); }
+
+/* ./tinfo/comp_expand.c */
+
+#undef _nc_tic_expand
+char	*_nc_tic_expand(
+		const char *srcp, 
+		NCURSES_BOOL tic_format, 
+		int	numbers)
+		{ return(*(char **)0); }
+
+/* ./tinfo/comp_hash.c */
+
+#undef _nc_find_entry
+struct name_table_entry const *_nc_find_entry(
+		const char *string, 
+		const short *hash_table)
+		{ return(*(struct name_table_entry const **)0); }
+
+#undef _nc_find_type_entry
+struct name_table_entry const *_nc_find_type_entry(
+		const char *string, 
+		int	type, 
+		const struct name_table_entry *table)
+		{ return(*(struct name_table_entry const **)0); }
+
+/* ./tinfo/comp_parse.c */
+
+#undef _nc_check_termtype2
+void	(*_nc_check_termtype2)(
+		TERMTYPE *p1, 
+		NCURSES_BOOL p2);
+#undef _nc_check_termtype
+void	(*_nc_check_termtype)(
+		TERMTYPE *p1);
+
+#undef _nc_entry_match
+NCURSES_BOOL _nc_entry_match(
+		char	*n1, 
+		char	*n2)
+		{ return(*(NCURSES_BOOL *)0); }
+
+#undef _nc_read_entry_source
+void	_nc_read_entry_source(
+		FILE	*fp, 
+		char	*buf, 
+		int	literal, 
+		NCURSES_BOOL silent, 
+		NCURSES_BOOL (*hook)(
+		ENTRY	*p1))
+		{ /* void */ }
+
+#undef _nc_resolve_uses2
+int	_nc_resolve_uses2(
+		NCURSES_BOOL fullresolve, 
+		NCURSES_BOOL literal)
+		{ return(*(int *)0); }
+
+#undef _nc_resolve_uses
+int	_nc_resolve_uses(
+		NCURSES_BOOL fullresolve)
+		{ return(*(int *)0); }
+
+/* ./tinfo/comp_scan.c */
+
+#undef _nc_syntax
+int	_nc_syntax;
+#undef _nc_curr_file_pos
+long	_nc_curr_file_pos;
+#undef _nc_comment_start
+long	_nc_comment_start;
+#undef _nc_comment_end
+long	_nc_comment_end;
+#undef _nc_start_line
+long	_nc_start_line;
+#undef _nc_curr_token
+struct token _nc_curr_token;
+#undef _nc_disable_period
+NCURSES_BOOL _nc_disable_period;
+
+#undef _nc_reset_input
+void	_nc_reset_input(
+		FILE	*fp, 
+		char	*buf)
+		{ /* void */ }
+
+#undef _nc_get_token
+int	_nc_get_token(
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_trans_string
+int	_nc_trans_string(
+		char	*ptr, 
+		char	*last)
+		{ return(*(int *)0); }
+
+#undef _nc_push_token
+void	_nc_push_token(
+		int	tokclass)
+		{ /* void */ }
+
+#undef _nc_panic_mode
+void	_nc_panic_mode(
+		char	ch)
+		{ /* void */ }
+
+/* ./tinfo/parse_entry.c */
+
+#undef _nc_parse_entry
+int	_nc_parse_entry(
+		struct entry *entryp, 
+		int	literal, 
+		NCURSES_BOOL silent)
+		{ return(*(int *)0); }
+
+#undef _nc_capcmp
+int	_nc_capcmp(
+		const char *s, 
+		const char *t)
+		{ return(*(int *)0); }
+
+typedef struct {
+    const char *from;
+    const char *to;
+} assoc;
+
 /* ./tinfo/write_entry.c */
 
 #undef _nc_set_writedir
diff -Naur ncurses-5.6.orig/ncurses/modules ncurses-5.6/ncurses/modules
--- ncurses-5.6.orig/ncurses/modules	2006-08-12 10:19:44.000000000 -0400
+++ ncurses-5.6/ncurses/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.107 2006/08/12 14:19:44 tom Exp $
+# $Id: modules,v 1.112 2007/09/08 22:03:34 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -127,14 +127,15 @@
 lib_add_wch	lib		$(wide)
 lib_box_set	lib		$(wide)
 lib_cchar	lib		$(wide)
-lib_get_wch	lib		$(wide)
 lib_erasewchar	lib		$(wide)
+lib_get_wch	lib		$(wide)
 lib_get_wstr	lib		$(wide)
 lib_hline_set	lib		$(wide)
 lib_in_wch	lib		$(wide)
 lib_in_wchnstr	lib		$(wide)
 lib_ins_wch	lib		$(wide)
 lib_inwstr	lib		$(wide)
+lib_key_name	lib		$(wide)
 lib_pecho_wchar	lib		$(wide)
 lib_slk_wset	lib		$(wide)
 lib_unget_wch	lib		$(wide)
@@ -151,24 +152,20 @@
 lib_print	lib		$(tinfo)	../include/term.h
 resizeterm	lib		$(base)		../include/term.h
 trace_xnames	lib		$(trace)	../include/term.h $(INCDIR)/term_entry.h
+use_screen	lib		$(tinfo)
+use_window	lib		$(base)
 wresize		lib		$(base)		../include/term.h
 
 # Support for termcap (and tic, etc.), which can be a separate library
 @ termlib
 access		lib		$(tinfo)
 add_tries	lib		$(tinfo)
-alloc_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 alloc_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-captoinfo	lib		$(tinfo)	$(INCDIR)/tic.h
 codes		lib		.
-comp_captab	lib		.		$(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
 comp_error	lib		$(tinfo)	$(INCDIR)/tic.h
-comp_expand	lib		$(tinfo)	$(INCDIR)/tic.h
-comp_hash	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
-comp_parse	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-comp_scan	lib		$(tinfo)	$(INCDIR)/tic.h
 db_iterator	lib		$(tinfo)	$(INCDIR)/tic.h
 doalloc		lib		$(tinfo)
+entries		lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
 fallback	lib		.		../include/term.h $(INCDIR)/tic.h
 free_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 getenv_num	lib		$(tinfo)
@@ -200,7 +197,6 @@
 lib_twait	lib		$(serial)
 name_match	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
 names		lib		.
-parse_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
 read_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 read_termcap	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 setbuf		lib		$(tinfo)
@@ -211,6 +207,17 @@
 trim_sgr0	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 unctrl		lib		.
 visbuf		lib		$(trace)	$(INCDIR)/tic.h
+
+# Modules used only for tic, other programs using internal interfaces
+@ ticlib
+alloc_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+captoinfo	lib		$(tinfo)	$(INCDIR)/tic.h
+comp_captab	lib		.		$(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
+comp_expand	lib		$(tinfo)	$(INCDIR)/tic.h
+comp_hash	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
+comp_parse	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+comp_scan	lib		$(tinfo)	$(INCDIR)/tic.h
+parse_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
 write_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
 
 # Extensions to the termlib library
@@ -221,3 +228,5 @@
 keybound	lib		$(base)
 keyok		lib		$(base)
 version		lib		$(base)
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/ncurses/tinfo/MKcaptab.awk ncurses-5.6/ncurses/tinfo/MKcaptab.awk
--- ncurses-5.6.orig/ncurses/tinfo/MKcaptab.awk	2006-04-22 17:46:17.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/MKcaptab.awk	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,5 @@
-#!/bin/sh
 ##############################################################################
-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -26,73 +25,70 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: MKcaptab.awk,v 1.13 2006/04/22 21:46:17 tom Exp $
-AWK=${1-awk}
-DATA=${2-../include/Caps}
-
-cat <<'EOF'
-/*
- *	comp_captab.c -- The names of the capabilities indexed via a hash
- *		         table for the compiler.
- *
- */
-
-#include <ncurses_cfg.h>
-#include <curses.priv.h>
-#include <tic.h>
-#include <term.h>
-
-EOF
-
-./make_hash 1 info <$DATA
-./make_hash 3 cap  <$DATA
-
-cat <<'EOF'
-const struct alias _nc_capalias_table[] =
-{
-EOF
+# $Id: MKcaptab.awk,v 1.20 2007/08/12 00:26:15 tom Exp $
+function add_string(text) {
+    if (text != "IGNORE") {
+	offsets[num_strings] = offset;
+	offset = offset + length(text) + 1;
+	printf "%s\\0", text;
+    } else {
+	offsets[num_strings] = -1;
+    }
+    num_strings = num_strings + 1;
+    if ((num_strings % 3) == 0) {
+	printf "\\\n";
+    }
+    return offsets[num_strings - 1];
+}
+BEGIN {
+	first = 1;
+	num_aliases = 0;
+	num_strings = 0;
+	offset = 0;
+}
 
-$AWK <$DATA '
-$1 == "capalias"	{
-		    if ($3 == "IGNORE")
-			to = "(char *)NULL";
-		    else
-			to = "\"" $3 "\"";
-		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
-				$2, to, $4, $5
+/^[^#]/ {
+	    if (first) {
+		printf "/* generated by MKcaptab.awk %s(%d) */\n", tablename, bigstrings;
+		print ""
+		if (bigstrings) {
+		    printf "static struct alias *_nc_%s_table = 0;\n", tablename;
+		    print "";
+		    printf "static const char %s_text[] = \"\\\n", tablename;
+		} else {
+		    printf "static const struct alias _nc_%s_table[] =\n", tablename;
+		    printf "{\n";
 		}
-'
-
-cat <<'EOF'
-	{(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-const struct alias _nc_infoalias_table[] =
-{
-EOF
-
-$AWK <$DATA '
-$1 == "infoalias"	{
-		    if ($3 == "IGNORE")
-			to = "(char *)NULL";
-		    else
-			to = "\"" $3 "\"";
-		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
-				$2, to, $4, $5
+		first = 0;
+	    }
+	    if ($1 == tablename) {
+		if ($3 == "IGNORE") {
+		    to = "(char *)NULL";
+		} else {
+		    to = "\"" $3 "\"";
 		}
-'
-
-cat <<'EOF'
-	{(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
-{
-	return termcap ? _nc_cap_table: _nc_info_table ;
-}
-
-NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool termcap)
-{
-	return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
-}
-EOF
+		if (bigstrings) {
+		    c1 = add_string($2);
+		    c2 = add_string($3);
+		    c3 = add_string($4);
+		    aliases[num_aliases] = sprintf("\t{%5d, %5d, %5d},\t /* %s */", c1, c2, c3, $5);
+		    num_aliases = num_aliases + 1;
+		} else {
+		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n", $2, to, $4, $5;
+		}
+	    }
+	}
+END	{
+	    if (bigstrings) {
+		printf "\";\n\n";
+		printf "static const alias_table_data %s_data[] = {\n", tablename;
+		for (n = 0; n < num_aliases; ++n) {
+		    printf "%s\n", aliases[n];
+		}
+		printf "};\n\n";
+	    } else {
+		printf "\t{(char *)NULL, (char *)NULL, (char *)NULL}\n";
+		printf "};\n\n";
+	    }
+	}
+# vile:sw=4:
diff -Naur ncurses-5.6.orig/ncurses/tinfo/MKcaptab.sh ncurses-5.6/ncurses/tinfo/MKcaptab.sh
--- ncurses-5.6.orig/ncurses/tinfo/MKcaptab.sh	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/MKcaptab.sh	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,149 @@
+#!/bin/sh
+##############################################################################
+# Copyright (c) 2007 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+# $Id: MKcaptab.sh,v 1.8 2007/08/12 13:13:51 tom Exp $
+AWK=${1-awk}
+OPT1=${2-0}
+OPT2=${3-tinfo/MKcaptab.awk}
+DATA=${4-../include/Caps}
+
+cat <<'EOF'
+/*
+ *	comp_captab.c -- The names of the capabilities indexed via a hash
+ *		         table for the compiler.
+ *
+ */
+
+#include <curses.priv.h>
+#include <tic.h>
+#include <hashsize.h>
+
+EOF
+
+./make_hash 1 info $OPT1 <$DATA
+./make_hash 3 cap  $OPT1 <$DATA
+
+$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias <$DATA 
+
+$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias <$DATA
+
+cat <<EOF
+
+#if $OPT1
+static void
+next_string(const char *strings, unsigned *offset)
+{
+	*offset += strlen(strings + *offset) + 1;
+}
+
+static const struct name_table_entry *
+_nc_build_names(struct name_table_entry **actual,
+		const name_table_data *source,
+		const char *strings)
+{
+	if (*actual == 0) {
+		*actual = typeCalloc(struct name_table_entry, CAPTABSIZE);
+		if (*actual != 0) {
+			unsigned n;
+			unsigned len = 0;
+			for (n = 0; n < CAPTABSIZE; ++n) {
+				(*actual)[n].nte_name = strings + len;
+				(*actual)[n].nte_type = source[n].nte_type;
+				(*actual)[n].nte_index = source[n].nte_index;
+				(*actual)[n].nte_link = source[n].nte_link;
+				next_string(strings, &len);
+			}
+		}
+	}
+	return *actual;
+}
+
+#define add_alias(field) \\
+	if (source[n].field >= 0) { \\
+		(*actual)[n].field = strings + source[n].field; \\
+	}
+
+static const struct alias *
+_nc_build_alias(struct alias **actual,
+		const alias_table_data *source,
+		const char *strings,
+		unsigned tablesize)
+{
+	if (*actual == 0) {
+		*actual = typeCalloc(struct alias, tablesize + 1);
+		if (*actual != 0) {
+			unsigned n;
+			for (n = 0; n < tablesize; ++n) {
+				add_alias(from);
+				add_alias(to);
+				add_alias(source);
+			}
+		}
+	}
+	return *actual;
+}
+
+#define build_names(root) _nc_build_names(&_nc_##root##_table, \\
+					  root##_names_data, \\
+					  root##_names_text)
+#define build_alias(root) _nc_build_alias(&_nc_##root##alias_table, \\
+					  root##alias_data, \\
+					  root##alias_text, \\
+					  SIZEOF(root##alias_data))
+#else
+#define build_names(root) _nc_ ## root ## _table
+#define build_alias(root) _nc_ ## root ## alias_table
+#endif
+
+NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
+{
+	return termcap ? build_names(cap) : build_names(info) ;
+}
+
+NCURSES_EXPORT(const short *) _nc_get_hash_table (bool termcap)
+{
+	return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
+}
+
+NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool termcap)
+{
+	return termcap ? build_alias(cap) : build_alias(info) ;
+}
+
+#if NO_LEAKS
+NCURSES_EXPORT(void) _nc_comp_captab_leaks(void)
+{
+#if $OPT1
+	FreeIfNeeded(_nc_cap_table);
+	FreeIfNeeded(_nc_info_table);
+	FreeIfNeeded(_nc_capalias_table);
+	FreeIfNeeded(_nc_infoalias_table);
+#endif
+}
+#endif /* NO_LEAKS */
+EOF
diff -Naur ncurses-5.6.orig/ncurses/tinfo/MKcodes.awk ncurses-5.6/ncurses/tinfo/MKcodes.awk
--- ncurses-5.6.orig/ncurses/tinfo/MKcodes.awk	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/MKcodes.awk	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,161 @@
+##############################################################################
+# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+# $Id: MKcodes.awk,v 1.4 2007/11/03 20:24:15 tom Exp $
+function large_item(value) {
+	result = sprintf("%d,", offset);
+	offset = offset + length(value) + 1;
+	offcol = offcol + length(result) + 2;
+	if (offcol > 70) {
+		result = result "\n";
+		offcol = 0;
+	} else {
+		result = result " ";
+	}
+	bigstr = bigstr sprintf("\"%s\\0\" ", value);
+	bigcol = bigcol + length(value) + 5;
+	if (bigcol > 70) {
+		bigstr = bigstr "\\\n";
+		bigcol = 0;
+	}
+	return result;
+}
+
+function small_item(value) {
+	return sprintf("\t\t\"%s\",\n", value);
+}
+
+function print_strings(name,value) {
+	printf  "DCL(%s) = {\n", name
+	print  value
+	print  "\t\t(NCURSES_CONST char *)0,"
+	print  "};"
+	print  ""
+}
+
+function print_offsets(name,value) {
+	printf  "static const short _nc_offset_%s[] = {\n", name
+	printf "%s",  value
+	print  "};"
+	print  ""
+	printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
+	print  ""
+}
+
+BEGIN	{
+		print  "/* This file was generated by MKcodes.awk */"
+		print  ""
+		print  "#include <curses.priv.h>"
+		print  ""
+		print  "#define IT NCURSES_CONST char * const"
+		print  ""
+		offset = 0;
+		offcol = 0;
+		bigcol = 0;
+	}
+
+$1 ~ /^#/		{next;}
+
+$1 == "SKIPWARN"	{next;}
+
+$3 == "bool"	{
+			small_boolcodes = small_boolcodes small_item($4);
+			large_boolcodes = large_boolcodes large_item($4);
+		}
+
+$3 == "num"	{
+			small_numcodes = small_numcodes small_item($4);
+			large_numcodes = large_numcodes large_item($4);
+		}
+
+$3 == "str"	{
+			small_strcodes = small_strcodes small_item($4);
+			large_strcodes = large_strcodes large_item($4);
+		}
+
+END	{
+		print  ""
+		print  "#if BROKEN_LINKER || USE_REENTRANT"
+		print  ""
+		print  "#include <term.h>"
+		print  ""
+		if (bigstrings) {
+			printf "static const char _nc_code_blob[] = \n"
+			printf "%s;\n", bigstr;
+			print_offsets("boolcodes", large_boolcodes);
+			print_offsets("numcodes", large_numcodes);
+			print_offsets("strcodes", large_strcodes);
+			print  ""
+			print  "static IT *"
+			print  "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
+			print  "{"
+			print  "	if (*value == 0) {"
+			print  "		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
+			print  "			unsigned n;"
+			print  "			for (n = 0; n < size; ++n) {"
+			print  "				(*value)[n] = _nc_code_blob + offsets[n];"
+			print  "			}"
+			print  "		}"
+			print  "	}"
+			print  "	return *value;"
+			print  "}"
+			print  ""
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
+		} else {
+			print  "#define DCL(it) static IT data##it[]"
+			print  ""
+			print_strings("boolcodes", small_boolcodes);
+			print_strings("numcodes", small_numcodes);
+			print_strings("strcodes", small_strcodes);
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
+		}
+		print  ""
+		print  "FIX(boolcodes)"
+		print  "FIX(numcodes)"
+		print  "FIX(strcodes)"
+		print  ""
+		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
+		print  ""
+		print  "NCURSES_EXPORT(void)"
+		print  "_nc_codes_leaks(void)"
+		print  "{"
+		if (bigstrings) {
+		print  "FREE_FIX(boolcodes)"
+		print  "FREE_FIX(numcodes)"
+		print  "FREE_FIX(strcodes)"
+		}
+		print  "}"
+		print  "#else"
+		print  ""
+		print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
+		print  ""
+		print_strings("boolcodes", small_boolcodes);
+		print_strings("numcodes", small_numcodes);
+		print_strings("strcodes", small_strcodes);
+		print  ""
+		print  "#endif /* BROKEN_LINKER */"
+	}
diff -Naur ncurses-5.6.orig/ncurses/tinfo/MKnames.awk ncurses-5.6/ncurses/tinfo/MKnames.awk
--- ncurses-5.6.orig/ncurses/tinfo/MKnames.awk	2006-04-22 17:46:17.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/MKnames.awk	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 2007 Free Software Foundation, Inc.                          #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -25,101 +25,159 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: MKnames.awk,v 1.12 2006/04/22 21:46:17 tom Exp $
-BEGIN		{
-			print  "/* This file was generated by MKnames.awk */" > "namehdr"
-			print  ""				> "namehdr"
-			print  "#include <curses.priv.h>"	> "namehdr"
-			print  ""				> "namehdr"
-			print  "#define IT NCURSES_CONST char * const"	> "namehdr"
-			print  ""				> "namehdr"
-			print  "#if BROKEN_LINKER"		> "namehdr"
-			print  "#include <term.h>"		> "namehdr"
-			print  "#define DCL(it) static IT data##it[]" > "namehdr"
-			print  "#else"				> "namehdr"
-			print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"	> "namehdr"
-			print  "#endif"				> "namehdr"
-			print  ""				> "namehdr"
-			print  "/*"				> "boolnames"
-			print  " *	names.c - Arrays of capability names and codes"  > "boolnames"
-			print  " *"				> "boolnames"
-			print  " */"				> "boolnames"
-			print  ""				> "boolnames"
-			print  "DCL(boolnames)  = {"		> "boolnames"
-			print  "DCL(boolfnames) = {"		> "boolfnames"
-			print  "DCL(boolcodes)  = {"		> "boolcodes"
-			print  "DCL(numnames)   = {"		> "numnames"
-			print  "DCL(numfnames)  = {"		> "numfnames"
-			print  "DCL(numcodes)   = {"		> "numcodes"
-			print  "DCL(strnames)   = {"		> "strnames"
-			print  "DCL(strfnames)  = {"		> "strfnames"
-			print  "DCL(strcodes)   = {"		> "strcodes"
-		}
+# $Id: MKnames.awk,v 1.18 2007/11/03 20:24:15 tom Exp $
+function large_item(value) {
+	result = sprintf("%d,", offset);
+	offset = offset + length(value) + 1;
+	offcol = offcol + length(result) + 2;
+	if (offcol > 70) {
+		result = result "\n";
+		offcol = 0;
+	} else {
+		result = result " ";
+	}
+	bigstr = bigstr sprintf("\"%s\\0\" ", value);
+	bigcol = bigcol + length(value) + 5;
+	if (bigcol > 70) {
+		bigstr = bigstr "\\\n";
+		bigcol = 0;
+	}
+	return result;
+}
+
+function small_item(value) {
+	return sprintf("\t\t\"%s\",\n", value);
+}
+
+function print_strings(name,value) {
+	printf  "DCL(%s) = {\n", name
+	print  value
+	print  "\t\t(NCURSES_CONST char *)0,"
+	print  "};"
+	print  ""
+}
+
+function print_offsets(name,value) {
+	printf  "static const short _nc_offset_%s[] = {\n", name
+	printf "%s",  value
+	print  "};"
+	print  ""
+	printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
+	print  ""
+}
+
+BEGIN	{
+		print  "/* This file was generated by MKnames.awk */"
+		print  ""
+		print  "#include <curses.priv.h>"
+		print  ""
+		print  "#define IT NCURSES_CONST char * const"
+		print  ""
+		offset = 0;
+		offcol = 0;
+		bigcol = 0;
+	}
 
 $1 ~ /^#/		{next;}
 
 $1 == "SKIPWARN"	{next;}
 
 $3 == "bool"	{
-			printf "\t\t\"%s\",\n", $2 > "boolnames"
-			printf "\t\t\"%s\",\n", $1 > "boolfnames"
-			printf "\t\t\"%s\",\n", $4 > "boolcodes"
+			small_boolnames = small_boolnames small_item($2);
+			large_boolnames = large_boolnames large_item($2);
+			small_boolfnames = small_boolfnames small_item($1);
+			large_boolfnames = large_boolfnames large_item($1);
 		}
 
 $3 == "num"	{
-			printf "\t\t\"%s\",\n", $2 > "numnames"
-			printf "\t\t\"%s\",\n", $1 > "numfnames"
-			printf "\t\t\"%s\",\n", $4 > "numcodes"
+			small_numnames = small_numnames small_item($2);
+			large_numnames = large_numnames large_item($2);
+			small_numfnames = small_numfnames small_item($1);
+			large_numfnames = large_numfnames large_item($1);
 		}
 
 $3 == "str"	{
-			printf "\t\t\"%s\",\n", $2 > "strnames"
-			printf "\t\t\"%s\",\n", $1 > "strfnames"
-			printf "\t\t\"%s\",\n", $4 > "strcodes"
+			small_strnames = small_strnames small_item($2);
+			large_strnames = large_strnames large_item($2);
+			small_strfnames = small_strfnames small_item($1);
+			large_strfnames = large_strfnames large_item($1);
 		}
 
-END		{
-			print  "\t\t(NCURSES_CONST char *)0," > "boolnames"
-			print  "};" > "boolnames"
-			print  "" > "boolnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "boolfnames"
-			print  "};" > "boolfnames"
-			print  "" > "boolfnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "boolcodes"
-			print  "};" > "boolcodes"
-			print  "" > "boolcodes"
-			print  "\t\t(NCURSES_CONST char *)0," > "numnames"
-			print  "};" > "numnames"
-			print  "" > "numnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "numfnames"
-			print  "};" > "numfnames"
-			print  "" > "numfnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "numcodes"
-			print  "};" > "numcodes"
-			print  "" > "numcodes"
-			print  "\t\t(NCURSES_CONST char *)0," > "strnames"
-			print  "};" > "strnames"
-			print  "" > "strnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "strfnames"
-			print  "};" > "strfnames"
-			print  "" > "strfnames"
-			print  "\t\t(NCURSES_CONST char *)0," > "strcodes"
-			print  "};"				> "strcodes"
-			print  ""				> "strcodes"
-			print  "#if BROKEN_LINKER"		> "nameftr"
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "nameftr"
-			print  "FIX(boolnames)"			> "nameftr"
-			print  "FIX(boolfnames)"		> "nameftr"
-			print  "FIX(numnames)"			> "nameftr"
-			print  "FIX(numfnames)"			> "nameftr"
-			print  "FIX(strnames)"			> "nameftr"
-			print  "FIX(strfnames)"			> "nameftr"
-			print  "#endif /* BROKEN_LINKER */"	> "nameftr"
-			print  ""				> "codeftr"
-			print  "#if BROKEN_LINKER"		> "codeftr"
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "codeftr"
-			print  "FIX(boolcodes)"			> "codeftr"
-			print  "FIX(numcodes)"			> "codeftr"
-			print  "FIX(strcodes)"			> "codeftr"
-			print  "#endif /* BROKEN_LINKER */"	> "codeftr"
+END	{
+		print  ""
+		print  "#if BROKEN_LINKER || USE_REENTRANT"
+		print  ""
+		print  "#include <term.h>"
+		print  ""
+		if (bigstrings) {
+			printf "static const char _nc_name_blob[] = \n"
+			printf "%s;\n", bigstr;
+			print_offsets("boolfnames", large_boolfnames);
+			print_offsets("boolnames", large_boolnames);
+			print_offsets("numfnames", large_numfnames);
+			print_offsets("numnames", large_numnames);
+			print_offsets("strfnames", large_strfnames);
+			print_offsets("strnames", large_strnames);
+			print  ""
+			print  "static IT *"
+			print  "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
+			print  "{"
+			print  "	if (*value == 0) {"
+			print  "		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
+			print  "			unsigned n;"
+			print  "			for (n = 0; n < size; ++n) {"
+			print  "				(*value)[n] = _nc_name_blob + offsets[n];"
+			print  "			}"
+			print  "		}"
+			print  "	}"
+			print  "	return *value;"
+			print  "}"
+			print  ""
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
+		} else {
+			print  "#define DCL(it) static IT data##it[]"
+			print  ""
+			print_strings("boolnames", small_boolnames);
+			print_strings("boolfnames", small_boolfnames);
+			print_strings("numnames", small_numnames);
+			print_strings("numfnames", small_numfnames);
+			print_strings("strnames", small_strnames);
+			print_strings("strfnames", small_strfnames);
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
+		}
+		print  ""
+		print  "FIX(boolnames)"
+		print  "FIX(boolfnames)"
+		print  "FIX(numnames)"
+		print  "FIX(numfnames)"
+		print  "FIX(strnames)"
+		print  "FIX(strfnames)"
+		print  ""
+		print  ""
+		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
+		print  ""
+		print  "NCURSES_EXPORT(void)"
+		print  "_nc_names_leaks(void)"
+		print  "{"
+		if (bigstrings) {
+		print  "FREE_FIX(boolnames)"
+		print  "FREE_FIX(boolfnames)"
+		print  "FREE_FIX(numnames)"
+		print  "FREE_FIX(numfnames)"
+		print  "FREE_FIX(strnames)"
+		print  "FREE_FIX(strfnames)"
 		}
+		print  "}"
+		print  "#else"
+		print  ""
+		print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
+		print  ""
+		print_strings("boolnames", small_boolnames);
+		print_strings("boolfnames", small_boolfnames);
+		print_strings("numnames", small_numnames);
+		print_strings("numfnames", small_numfnames);
+		print_strings("strnames", small_strnames);
+		print_strings("strfnames", small_strfnames);
+		print  ""
+		print  "#endif /* BROKEN_LINKER */"
+	}
diff -Naur ncurses-5.6.orig/ncurses/tinfo/access.c ncurses-5.6/ncurses/tinfo/access.c
--- ncurses-5.6.orig/ncurses/tinfo/access.c	2006-08-05 13:18:14.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/access.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,12 +32,13 @@
 
 #include <curses.priv.h>
 
+#include <ctype.h>
 #include <sys/stat.h>
 
 #include <tic.h>
 #include <nc_alloc.h>
 
-MODULE_ID("$Id: access.c,v 1.12 2006/08/05 17:18:14 tom Exp $")
+MODULE_ID("$Id: access.c,v 1.14 2007/11/18 00:57:53 tom Exp $")
 
 #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
 
@@ -45,14 +46,13 @@
 _nc_rootname(char *path)
 {
     char *result = _nc_basename(path);
-#if !defined(MIXEDCASE_FILENAMES) || defined(PROG_EXT)
+#if !MIXEDCASE_FILENAMES || defined(PROG_EXT)
     static char *temp;
     char *s;
 
     temp = strdup(result);
     result = temp;
-#if !defined(MIXEDCASE_FILENAMES)
-    int n;
+#if !MIXEDCASE_FILENAMES
     for (s = result; *s != '\0'; ++s) {
 	*s = LOWERCASE(*s);
     }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/add_tries.c ncurses-5.6/ncurses/tinfo/add_tries.c
--- ncurses-5.6.orig/ncurses/tinfo/add_tries.c	2005-11-19 20:32:48.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/add_tries.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,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            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
+ *  Author: Thomas E. Dickey            1998-on                             *
  ****************************************************************************/
 
 /*
@@ -39,20 +39,20 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: add_tries.c,v 1.5 2005/11/20 01:32:48 tom Exp $")
+MODULE_ID("$Id: add_tries.c,v 1.8 2006/12/30 23:15:26 tom Exp $")
 
 #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
 #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
 
-NCURSES_EXPORT(void)
-_nc_add_to_try(struct tries **tree, const char *str, unsigned code)
+NCURSES_EXPORT(int)
+_nc_add_to_try(TRIES ** tree, const char *str, unsigned code)
 {
-    static bool out_of_memory = FALSE;
-    struct tries *ptr, *savedptr;
+    TRIES *ptr, *savedptr;
     unsigned const char *txt = (unsigned const char *) str;
 
-    if (txt == 0 || *txt == '\0' || out_of_memory || code == 0)
-	return;
+    T((T_CALLED("_nc_add_to_try(%p, %s, %u)"), *tree, _nc_visbuf(str), code));
+    if (txt == 0 || *txt == '\0' || code == 0)
+	returnCode(ERR);
 
     if ((*tree) != 0) {
 	ptr = savedptr = (*tree);
@@ -67,16 +67,15 @@
 	    if (CMP_TRY(ptr->ch, cmp)) {
 		if (*(++txt) == '\0') {
 		    ptr->value = code;
-		    return;
+		    returnCode(OK);
 		}
 		if (ptr->child != 0)
 		    ptr = ptr->child;
 		else
 		    break;
 	    } else {
-		if ((ptr->sibling = typeCalloc(struct tries, 1)) == 0) {
-		    out_of_memory = TRUE;
-		    return;
+		if ((ptr->sibling = typeCalloc(TRIES, 1)) == 0) {
+		    returnCode(ERR);
 		}
 
 		savedptr = ptr = ptr->sibling;
@@ -87,11 +86,10 @@
 	    }
 	}			/* end for (;;) */
     } else {			/* (*tree) == 0 :: First sequence to be added */
-	savedptr = ptr = (*tree) = typeCalloc(struct tries, 1);
+	savedptr = ptr = (*tree) = typeCalloc(TRIES, 1);
 
 	if (ptr == 0) {
-	    out_of_memory = TRUE;
-	    return;
+	    returnCode(ERR);
 	}
 
 	SET_TRY(ptr, txt);
@@ -101,19 +99,16 @@
     /* at this point, we are adding to the try.  ptr->child == 0 */
 
     while (*txt) {
-	ptr->child = typeCalloc(struct tries, 1);
+	ptr->child = typeCalloc(TRIES, 1);
 
 	ptr = ptr->child;
 
 	if (ptr == 0) {
-	    out_of_memory = TRUE;
-
 	    while ((ptr = savedptr) != 0) {
 		savedptr = ptr->child;
 		free(ptr);
 	    }
-
-	    return;
+	    returnCode(ERR);
 	}
 
 	SET_TRY(ptr, txt);
@@ -121,5 +116,5 @@
     }
 
     ptr->value = code;
-    return;
+    returnCode(OK);
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/comp_error.c ncurses-5.6/ncurses/tinfo/comp_error.c
--- ncurses-5.6.orig/ncurses/tinfo/comp_error.c	2005-11-26 10:28:47.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/comp_error.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,36 +41,36 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: comp_error.c,v 1.30 2005/11/26 15:28:47 tom Exp $")
+MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
 
 NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
 NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
 NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
 
-static const char *sourcename;
-static char *termtype;
+#define SourceName	_nc_globals.comp_sourcename
+#define TermType	_nc_globals.comp_termtype
 
 NCURSES_EXPORT(const char *)
 _nc_get_source(void)
 {
-    return sourcename;
+    return SourceName;
 }
 
 NCURSES_EXPORT(void)
 _nc_set_source(const char *const name)
 {
-    sourcename = name;
+    SourceName = name;
 }
 
 NCURSES_EXPORT(void)
 _nc_set_type(const char *const name)
 {
-    if (termtype == 0)
-	termtype = typeMalloc(char, MAX_NAME_SIZE + 1);
-    if (termtype != 0) {
-	termtype[0] = '\0';
+    if (TermType == 0)
+	TermType = typeMalloc(char, MAX_NAME_SIZE + 1);
+    if (TermType != 0) {
+	TermType[0] = '\0';
 	if (name)
-	    strncat(termtype, name, MAX_NAME_SIZE);
+	    strncat(TermType, name, MAX_NAME_SIZE);
     }
 }
 
@@ -78,25 +78,25 @@
 _nc_get_type(char *name)
 {
 #if NO_LEAKS
-    if (name == 0 && termtype != 0) {
-	FreeAndNull(termtype);
+    if (name == 0 && TermType != 0) {
+	FreeAndNull(TermType);
 	return;
     }
 #endif
     if (name != 0)
-	strcpy(name, termtype != 0 ? termtype : "");
+	strcpy(name, TermType != 0 ? TermType : "");
 }
 
 static NCURSES_INLINE void
 where_is_problem(void)
 {
-    fprintf(stderr, "\"%s\"", sourcename);
+    fprintf(stderr, "\"%s\"", SourceName ? SourceName : "?");
     if (_nc_curr_line >= 0)
 	fprintf(stderr, ", line %d", _nc_curr_line);
     if (_nc_curr_col >= 0)
 	fprintf(stderr, ", col %d", _nc_curr_col);
-    if (termtype != 0 && termtype[0] != '\0')
-	fprintf(stderr, ", terminal '%s'", termtype);
+    if (TermType != 0 && TermType[0] != '\0')
+	fprintf(stderr, ", terminal '%s'", TermType);
     fputc(':', stderr);
     fputc(' ', stderr);
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/comp_hash.c ncurses-5.6/ncurses/tinfo/comp_hash.c
--- ncurses-5.6.orig/ncurses/tinfo/comp_hash.c	2005-08-20 15:58:18.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/comp_hash.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -50,7 +50,7 @@
 #define DEBUG(level, params)	/*nothing */
 #endif
 
-MODULE_ID("$Id: comp_hash.c,v 1.28 2005/08/20 19:58:18 tom Exp $")
+MODULE_ID("$Id: comp_hash.c,v 1.33 2007/08/18 21:42:25 tom Exp $")
 
 static int hash_function(const char *);
 
@@ -71,21 +71,24 @@
 
 static void
 _nc_make_hash_table(struct name_table_entry *table,
-		    struct name_table_entry **hash_table)
+		    short *hash_table)
 {
     int i;
     int hashvalue;
     int collisions = 0;
 
+    for (i = 0; i < HASHTABSIZE; i++) {
+	hash_table[i] = -1;
+    }
     for (i = 0; i < CAPTABSIZE; i++) {
 	hashvalue = hash_function(table[i].nte_name);
 
-	if (hash_table[hashvalue] != (struct name_table_entry *) 0)
+	if (hash_table[hashvalue] >= 0)
 	    collisions++;
 
 	if (hash_table[hashvalue] != 0)
-	    table[i].nte_link = (short) (hash_table[hashvalue] - table);
-	hash_table[hashvalue] = &table[i];
+	    table[i].nte_link = hash_table[hashvalue];
+	hash_table[hashvalue] = i;
     }
 
     DEBUG(4, ("Hash table complete: %d collisions out of %d entries",
@@ -130,18 +133,21 @@
 #ifndef MAIN_PROGRAM
 NCURSES_EXPORT(struct name_table_entry const *)
 _nc_find_entry(const char *string,
-	       const struct name_table_entry *const *hash_table)
+	       const short *hash_table)
 {
     int hashvalue;
-    struct name_table_entry const *ptr;
+    struct name_table_entry const *ptr = 0;
+    struct name_table_entry const *real_table;
 
     hashvalue = hash_function(string);
 
-    if ((ptr = hash_table[hashvalue]) != 0) {
+    if (hash_table[hashvalue] >= 0) {
+	real_table = _nc_get_table(hash_table != _nc_get_hash_table(FALSE));
+	ptr = real_table + hash_table[hashvalue];
 	while (strcmp(ptr->nte_name, string) != 0) {
 	    if (ptr->nte_link < 0)
 		return 0;
-	    ptr = ptr->nte_link + hash_table[HASHTABSIZE];
+	    ptr = real_table + (ptr->nte_link + hash_table[HASHTABSIZE]);
 	}
     }
 
@@ -231,10 +237,10 @@
 {
     struct name_table_entry *name_table = typeCalloc(struct
 						     name_table_entry, CAPTABSIZE);
-    struct name_table_entry **hash_table = typeCalloc(struct name_table_entry
-						      *, HASHTABSIZE);
+    short *hash_table = typeCalloc(short, HASHTABSIZE);
     const char *root_name = "";
     int column = 0;
+    int bigstring = 0;
     int n;
     char buffer[BUFSIZ];
 
@@ -248,11 +254,12 @@
     /* The first argument is the column-number (starting with 0).
      * The second is the root name of the tables to generate.
      */
-    if (argc <= 2
+    if (argc <= 3
 	|| (column = atoi(argv[1])) <= 0
 	|| (column >= MAX_COLUMNS)
-	|| *(root_name = argv[2]) == 0) {
-	fprintf(stderr, "usage: make_hash column root_name\n");
+	|| *(root_name = argv[2]) == 0
+	|| (bigstring = atoi(argv[3])) < 0) {
+	fprintf(stderr, "usage: make_hash column root_name bigstring\n");
 	exit(EXIT_FAILURE);
     }
 
@@ -288,36 +295,64 @@
     /*
      * Write the compiled tables to standard output
      */
-    printf("static struct name_table_entry const _nc_%s_table[] =\n",
-	   root_name);
-    printf("{\n");
-    for (n = 0; n < CAPTABSIZE; n++) {
-	sprintf(buffer, "\"%s\"",
-		name_table[n].nte_name);
-	printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
-	       buffer,
-	       typenames[name_table[n].nte_type],
-	       name_table[n].nte_index,
-	       name_table[n].nte_link,
-	       n < CAPTABSIZE - 1 ? ',' : ' ');
+    if (bigstring) {
+	int len = 0;
+	int nxt;
+
+	printf("static const char %s_names_text[] = \\\n", root_name);
+	for (n = 0; n < CAPTABSIZE; n++) {
+	    nxt = strlen(name_table[n].nte_name) + 5;
+	    if (nxt + len > 72) {
+		printf("\\\n");
+		len = 0;
+	    }
+	    printf("\"%s\\0\" ", name_table[n].nte_name);
+	    len += nxt;
+	}
+	printf(";\n\n");
+
+	len = 0;
+	printf("static name_table_data const %s_names_data[] =\n",
+	       root_name);
+	printf("{\n");
+	for (n = 0; n < CAPTABSIZE; n++) {
+	    printf("\t{ %15d,\t%10s,\t%3d, %3d }%c\n",
+		   len,
+		   typenames[name_table[n].nte_type],
+		   name_table[n].nte_index,
+		   name_table[n].nte_link,
+		   n < CAPTABSIZE - 1 ? ',' : ' ');
+	    len += strlen(name_table[n].nte_name) + 1;
+	}
+	printf("};\n\n");
+	printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
+    } else {
+
+	printf("static struct name_table_entry %s _nc_%s_table[] =\n",
+	       bigstring ? "" : "const",
+	       root_name);
+	printf("{\n");
+	for (n = 0; n < CAPTABSIZE; n++) {
+	    sprintf(buffer, "\"%s\"",
+		    name_table[n].nte_name);
+	    printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
+		   buffer,
+		   typenames[name_table[n].nte_type],
+		   name_table[n].nte_index,
+		   name_table[n].nte_link,
+		   n < CAPTABSIZE - 1 ? ',' : ' ');
+	}
+	printf("};\n\n");
     }
-    printf("};\n\n");
 
-    printf("const struct name_table_entry * const _nc_%s_hash_table[%d] =\n",
+    printf("static const short _nc_%s_hash_table[%d] =\n",
 	   root_name,
 	   HASHTABSIZE + 1);
     printf("{\n");
     for (n = 0; n < HASHTABSIZE; n++) {
-	if (hash_table[n] != 0) {
-	    sprintf(buffer, "_nc_%s_table + %3ld",
-		    root_name,
-		    (long) (hash_table[n] - name_table));
-	} else {
-	    strcpy(buffer, "0");
-	}
-	printf("\t%s,\n", buffer);
+	printf("\t%3d,\n", hash_table[n]);
     }
-    printf("\t_nc_%s_table\t/* base-of-table */\n", root_name);
+    printf("\t0\t/* base-of-table */\n");
     printf("};\n\n");
 
     printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n",
diff -Naur ncurses-5.6.orig/ncurses/tinfo/comp_parse.c ncurses-5.6/ncurses/tinfo/comp_parse.c
--- ncurses-5.6.orig/ncurses/tinfo/comp_parse.c	2006-07-08 14:55:14.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/comp_parse.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -53,7 +53,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: comp_parse.c,v 1.63 2006/07/08 18:55:14 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.68 2007/11/03 20:41:46 tom Exp $")
 
 static void sanity_check2(TERMTYPE *, bool);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
@@ -62,30 +62,6 @@
 static void sanity_check(TERMTYPE *);
 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
 
-/****************************************************************************
- *
- * Entry queue handling
- *
- ****************************************************************************/
-/*
- *  The entry list is a doubly linked list with NULLs terminating the lists:
- *
- *	  ---------   ---------   ---------
- *	  |       |   |       |   |       |   offset
- *        |-------|   |-------|   |-------|
- *	  |   ----+-->|   ----+-->|  NULL |   next
- *	  |-------|   |-------|   |-------|
- *	  |  NULL |<--+----   |<--+----   |   last
- *	  ---------   ---------   ---------
- *	      ^                       ^
- *	      |                       |
- *	      |                       |
- *	   _nc_head                _nc_tail
- */
-
-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
-
 static void
 enqueue(ENTRY * ep)
 /* add an entry to the in-core list */
@@ -103,51 +79,6 @@
 	newp->last->next = newp;
 }
 
-NCURSES_EXPORT(void)
-_nc_free_entries(ENTRY * headp)
-/* free the allocated storage consumed by list entries */
-{
-    (void) headp;		/* unused - _nc_head is altered here! */
-
-    while (_nc_head != 0) {
-	_nc_free_termtype(&(_nc_head->tterm));
-    }
-}
-
-NCURSES_EXPORT(ENTRY *)
-_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
-/* delink the allocated storage for the given list entry */
-{
-    ENTRY *ep, *last;
-
-    for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
-	if (&(ep->tterm) == tterm) {
-	    if (last != 0) {
-		last->next = ep->next;
-	    }
-	    if (ep == _nc_head) {
-		_nc_head = ep->next;
-	    }
-	    if (ep == _nc_tail) {
-		_nc_tail = last;
-	    }
-	    break;
-	}
-    }
-    return ep;
-}
-
-NCURSES_EXPORT(void)
-_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
-/* free the allocated storage consumed by the given list entry */
-{
-    ENTRY *ep;
-
-    if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
-	free(ep);
-    }
-}
-
 static char *
 force_bar(char *dst, char *src)
 {
@@ -534,3 +465,26 @@
 {
     sanity_check2(tp, FALSE);
 }
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_leaks_tic(void)
+{
+    _nc_alloc_entry_leaks();
+    _nc_captoinfo_leaks();
+    _nc_comp_captab_leaks();
+    _nc_comp_scan_leaks();
+#if BROKEN_LINKER || USE_REENTRANT
+    _nc_names_leaks();
+    _nc_codes_leaks();
+#endif
+    _nc_tic_expand(0, FALSE, 0);
+}
+
+NCURSES_EXPORT(void)
+_nc_free_tic(int code)
+{
+    _nc_leaks_tic();
+    _nc_free_tinfo(code);
+}
+#endif
diff -Naur ncurses-5.6.orig/ncurses/tinfo/db_iterator.c ncurses-5.6/ncurses/tinfo/db_iterator.c
--- ncurses-5.6.orig/ncurses/tinfo/db_iterator.c	2006-12-16 14:06:42.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/db_iterator.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                     2006                       *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
@@ -38,10 +38,11 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: db_iterator.c,v 1.5 2006/12/16 19:06:42 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.6 2007/04/22 00:00:26 tom Exp $")
 
-static bool have_tic_directory = FALSE;
-static bool keep_tic_directory = FALSE;
+#define HaveTicDirectory _nc_globals.have_tic_directory
+#define KeepTicDirectory _nc_globals.keep_tic_directory
+#define TicDirectory     _nc_globals.tic_directory
 
 /*
  * Record the "official" location of the terminfo directory, according to
@@ -50,19 +51,17 @@
 NCURSES_EXPORT(const char *)
 _nc_tic_dir(const char *path)
 {
-    static const char *result = TERMINFO;
-
-    if (!keep_tic_directory) {
+    if (!KeepTicDirectory) {
 	if (path != 0) {
-	    result = path;
-	    have_tic_directory = TRUE;
-	} else if (!have_tic_directory && use_terminfo_vars()) {
+	    TicDirectory = path;
+	    HaveTicDirectory = TRUE;
+	} else if (!HaveTicDirectory && use_terminfo_vars()) {
 	    char *envp;
 	    if ((envp = getenv("TERMINFO")) != 0)
 		return _nc_tic_dir(envp);
 	}
     }
-    return result;
+    return TicDirectory;
 }
 
 /*
@@ -74,16 +73,15 @@
 _nc_keep_tic_dir(const char *path)
 {
     _nc_tic_dir(path);
-    keep_tic_directory = TRUE;
+    KeepTicDirectory = TRUE;
 }
 
 /*
  * Process the list of :-separated directories, looking for the terminal type.
  * We don't use strtok because it does not show us empty tokens.
  */
-
-static char *this_db_list = 0;
-static int size_db_list;
+#define ThisDbList	_nc_globals.dbi_list
+#define ThisDbSize	_nc_globals.dbi_size
 
 /*
  * Cleanup.
@@ -91,10 +89,10 @@
 NCURSES_EXPORT(void)
 _nc_last_db(void)
 {
-    if (this_db_list != 0) {
-	FreeAndNull(this_db_list);
+    if (ThisDbList != 0) {
+	FreeAndNull(ThisDbList);
     }
-    size_db_list = 0;
+    ThisDbSize = 0;
 }
 
 /* The TERMINFO_DIRS value, if defined by the configure script, begins with a
@@ -104,14 +102,14 @@
 next_list_item(const char *source, int *offset)
 {
     if (source != 0) {
-	FreeIfNeeded(this_db_list);
-	this_db_list = strdup(source);
-	size_db_list = strlen(source);
+	FreeIfNeeded(ThisDbList);
+	ThisDbList = strdup(source);
+	ThisDbSize = strlen(source);
     }
 
-    if (this_db_list != 0 && size_db_list && *offset < size_db_list) {
+    if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) {
 	static char system_db[] = TERMINFO;
-	char *result = this_db_list + *offset;
+	char *result = ThisDbList + *offset;
 	char *marker = strchr(result, NCURSES_PATHSEP);
 
 	/*
@@ -124,9 +122,9 @@
 	    marker = result + *offset;
 	} else {
 	    *marker++ = 0;
-	    *offset = marker - this_db_list;
+	    *offset = marker - ThisDbList;
 	}
-	if (*result == 0 && result != (this_db_list + size_db_list))
+	if (*result == 0 && result != (ThisDbList + ThisDbSize))
 	    result = system_db;
 	return result;
     }
@@ -153,7 +151,7 @@
 
 	switch (*state) {
 	case dbdTIC:
-	    if (have_tic_directory)
+	    if (HaveTicDirectory)
 		result = _nc_tic_dir(0);
 	    break;
 #if USE_DATABASE
diff -Naur ncurses-5.6.orig/ncurses/tinfo/entries.c ncurses-5.6/ncurses/tinfo/entries.c
--- ncurses-5.6.orig/ncurses/tinfo/entries.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/entries.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,144 @@
+/****************************************************************************
+ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey                                                *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+#include <ctype.h>
+
+#include <tic.h>
+#include <term_entry.h>
+
+MODULE_ID("$Id: entries.c,v 1.4 2007/11/03 21:00:27 tom Exp $")
+
+/****************************************************************************
+ *
+ * Entry queue handling
+ *
+ ****************************************************************************/
+/*
+ *  The entry list is a doubly linked list with NULLs terminating the lists:
+ *
+ *	  ---------   ---------   ---------
+ *	  |       |   |       |   |       |   offset
+ *        |-------|   |-------|   |-------|
+ *	  |   ----+-->|   ----+-->|  NULL |   next
+ *	  |-------|   |-------|   |-------|
+ *	  |  NULL |<--+----   |<--+----   |   last
+ *	  ---------   ---------   ---------
+ *	      ^                       ^
+ *	      |                       |
+ *	      |                       |
+ *	   _nc_head                _nc_tail
+ */
+
+NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
+NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
+
+NCURSES_EXPORT(void)
+_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
+/* free the allocated storage consumed by the given list entry */
+{
+    ENTRY *ep;
+
+    if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
+	free(ep);
+    }
+}
+
+NCURSES_EXPORT(void)
+_nc_free_entries(ENTRY * headp)
+/* free the allocated storage consumed by list entries */
+{
+    (void) headp;		/* unused - _nc_head is altered here! */
+
+    while (_nc_head != 0) {
+	_nc_free_termtype(&(_nc_head->tterm));
+    }
+}
+
+NCURSES_EXPORT(ENTRY *)
+_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
+/* delink the allocated storage for the given list entry */
+{
+    ENTRY *ep, *last;
+
+    for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
+	if (&(ep->tterm) == tterm) {
+	    if (last != 0) {
+		last->next = ep->next;
+	    }
+	    if (ep == _nc_head) {
+		_nc_head = ep->next;
+	    }
+	    if (ep == _nc_tail) {
+		_nc_tail = last;
+	    }
+	    break;
+	}
+    }
+    return ep;
+}
+
+NCURSES_EXPORT(void)
+_nc_leaks_tinfo(void)
+{
+    char *s;
+
+    T((T_CALLED("_nc_free_tinfo()")));
+#if NO_LEAKS
+    _nc_free_tparm();
+    _nc_tgetent_leaks();
+#endif
+    _nc_free_entries(_nc_head);
+    _nc_get_type(0);
+    _nc_first_name(0);
+#if NO_LEAKS
+    _nc_keyname_leaks();
+#endif
+#if BROKEN_LINKER || USE_REENTRANT
+    _nc_names_leaks();
+    _nc_codes_leaks();
+#endif
+
+    if ((s = _nc_home_terminfo()) != 0)
+	free(s);
+    returnVoid;
+}
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_free_tinfo(int code)
+{
+    _nc_leaks_tinfo();
+    exit(code);
+}
+#endif
diff -Naur ncurses-5.6.orig/ncurses/tinfo/home_terminfo.c ncurses-5.6/ncurses/tinfo/home_terminfo.c
--- ncurses-5.6.orig/ncurses/tinfo/home_terminfo.c	2005-07-02 15:43:38.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/home_terminfo.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 1998,2000,2004,2005                            *
+ *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /*
@@ -37,31 +37,32 @@
 #include <curses.priv.h>
 #include <tic.h>
 
-MODULE_ID("$Id: home_terminfo.c,v 1.9 2005/07/02 19:43:38 tom Exp $")
+MODULE_ID("$Id: home_terminfo.c,v 1.10 2007/04/21 23:11:53 tom Exp $")
 
 #define my_length (strlen(home) + sizeof(PRIVATE_INFO))
 
 /* ncurses extension...fall back on user's private directory */
 
+#define MyBuffer _nc_globals.home_terminfo
+
 NCURSES_EXPORT(char *)
 _nc_home_terminfo(void)
 {
     char *result = 0;
-#ifdef USE_HOME_TERMINFO
+#if USE_HOME_TERMINFO
     char *home;
-    static char *temp = 0;
 
     if (use_terminfo_vars()) {
-	if (temp == 0) {
+	if (MyBuffer == 0) {
 	    if ((home = getenv("HOME")) != 0
 		&& my_length <= PATH_MAX) {
-		temp = typeMalloc(char, my_length);
-		if (temp == 0)
+		MyBuffer = typeMalloc(char, my_length);
+		if (MyBuffer == 0)
 		    _nc_err_abort(MSG_NO_MEMORY);
-		(void) sprintf(temp, PRIVATE_INFO, home);
+		(void) sprintf(MyBuffer, PRIVATE_INFO, home);
 	    }
 	}
-	result = temp;
+	result = MyBuffer;
     }
 #endif
     return result;
diff -Naur ncurses-5.6.orig/ncurses/tinfo/init_keytry.c ncurses-5.6/ncurses/tinfo/init_keytry.c
--- ncurses-5.6.orig/ncurses/tinfo/init_keytry.c	2006-01-21 18:43:28.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/init_keytry.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,7 +36,7 @@
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: init_keytry.c,v 1.8 2006/01/21 23:43:28 tom Exp $")
+MODULE_ID("$Id: init_keytry.c,v 1.12 2008/05/24 21:44:51 tom Exp $")
 
 /*
 **      _nc_init_keytry()
@@ -45,6 +45,13 @@
 **
 */
 
+/*
+ * Internal entrypoints use SCREEN* parameter to obtain capabilities rather
+ * than cur_term.
+ */
+#undef CUR
+#define CUR (sp->_term)->type.
+
 #if	BROKEN_LINKER
 #undef	_nc_tinfo_fkeys
 #endif
@@ -56,7 +63,7 @@
 #endif*/
 
 #if	BROKEN_LINKER
-struct tinfo_fkeys *
+const struct tinfo_fkeys *
 _nc_tinfo_fkeysf(void)
 {
     return _nc_tinfo_fkeys;
@@ -64,21 +71,21 @@
 #endif
 
 NCURSES_EXPORT(void)
-_nc_init_keytry(void)
+_nc_init_keytry(SCREEN *sp)
 {
     size_t n;
 
-    /* The SP->_keytry value is initialized in newterm(), where the SP
+    /* The sp->_keytry value is initialized in newterm(), where the sp
      * structure is created, because we can not tell where keypad() or
      * mouse_activate() (which will call keyok()) are first called.
      */
 
-    if (SP != 0) {
+    if (sp != 0) {
 	for (n = 0; _nc_tinfo_fkeys[n].code; n++) {
 	    if (_nc_tinfo_fkeys[n].offset < STRCOUNT) {
-		_nc_add_to_try(&(SP->_keytry),
-			       CUR Strings[_nc_tinfo_fkeys[n].offset],
-			       _nc_tinfo_fkeys[n].code);
+		(void) _nc_add_to_try(&(sp->_keytry),
+				      CUR Strings[_nc_tinfo_fkeys[n].offset],
+				      _nc_tinfo_fkeys[n].code);
 	    }
 	}
 #if NCURSES_XNAMES
@@ -88,7 +95,7 @@
 	 * names.
 	 */
 	{
-	    TERMTYPE *tp = &(SP->_term->type);
+	    TERMTYPE *tp = &(sp->_term->type);
 	    for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) {
 		const char *name = ExtStrname(tp, n, strnames);
 		char *value = tp->Strings[n];
@@ -96,15 +103,15 @@
 		    && *name == 'k'
 		    && value != 0
 		    && key_defined(value) == 0) {
-		    _nc_add_to_try(&(SP->_keytry),
-				   value,
-				   n - STRCOUNT + KEY_MAX);
+		    (void) _nc_add_to_try(&(sp->_keytry),
+					  value,
+					  n - STRCOUNT + KEY_MAX);
 		}
 	    }
 	}
 #endif
 #ifdef TRACE
-	_nc_trace_tries(SP->_keytry);
+	_nc_trace_tries(sp->_keytry);
 #endif
     }
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_acs.c ncurses-5.6/ncurses/tinfo/lib_acs.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_acs.c	2006-01-07 16:27:15.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_acs.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,17 +35,18 @@
 #include <curses.priv.h>
 #include <term.h>		/* ena_acs, acs_chars */
 
-MODULE_ID("$Id: lib_acs.c,v 1.30 2006/01/07 21:27:15 tom Exp $")
+MODULE_ID("$Id: lib_acs.c,v 1.34 2007/09/29 20:37:13 tom Exp $")
 
-#if BROKEN_LINKER
+#if BROKEN_LINKER || USE_REENTRANT
+#define MyBuffer _nc_prescreen.real_acs_map
 NCURSES_EXPORT_VAR(chtype *)
 _nc_acs_map(void)
 {
-    static chtype *the_map = 0;
-    if (the_map == 0)
-	the_map = typeCalloc(chtype, ACS_LEN);
-    return the_map;
+    if (MyBuffer == 0)
+	MyBuffer = typeCalloc(chtype, ACS_LEN);
+    return MyBuffer;
 }
+#undef MyBuffer
 #else
 NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
 {
@@ -117,16 +118,6 @@
     real_map['|'] = '!';	/* should be not-equal */
     real_map['}'] = 'f';	/* should be pound-sterling symbol */
 
-#if !USE_WIDEC_SUPPORT
-    if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
-	acs_chars = NULL;
-	ena_acs = NULL;
-	enter_alt_charset_mode = NULL;
-	exit_alt_charset_mode = NULL;
-	set_attributes = NULL;
-    }
-#endif
-
     if (ena_acs != NULL) {
 	TPUTS_TRACE("ena_acs");
 	putp(ena_acs);
@@ -175,7 +166,7 @@
     /* Show the equivalent mapping, noting if it does not match the
      * given attribute, whether by re-ordering or duplication.
      */
-    if (_nc_tracing & TRACE_CALLS) {
+    if (USE_TRACEF(TRACE_CALLS)) {
 	size_t n, m;
 	char show[ACS_LEN * 2 + 1];
 	for (n = 1, m = 0; n < ACS_LEN; n++) {
@@ -196,6 +187,7 @@
 		   ? "DIFF"
 		   : "SAME"),
 		_nc_visbuf(show));
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_baudrate.c ncurses-5.6/ncurses/tinfo/lib_baudrate.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_baudrate.c	2002-01-19 18:07:53.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_baudrate.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -39,6 +40,9 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term, pad_char */
 #include <termcap.h>		/* ospeed */
+#if defined(__FreeBSD__)
+#include <sys/param.h>
+#endif
 
 /*
  * These systems use similar header files, which define B1200 as 1200, etc.,
@@ -46,7 +50,7 @@
  * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
  * ospeed's type for compatibility.
  */
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
 #undef B0
 #undef B50
 #undef B75
@@ -76,7 +80,7 @@
 #undef USE_OLD_TTY
 #endif /* USE_OLD_TTY */
 
-MODULE_ID("$Id: lib_baudrate.c,v 1.22 2002/01/19 23:07:53 Andrey.A.Chernov Exp $")
+MODULE_ID("$Id: lib_baudrate.c,v 1.25 2007/10/20 15:00:41 Rong-En.Fan Exp $")
 
 /*
  *	int
@@ -141,16 +145,20 @@
 NCURSES_EXPORT(int)
 _nc_baudrate(int OSpeed)
 {
+#if !USE_REENTRANT
     static int last_OSpeed;
     static int last_baudrate;
+#endif
 
-    int result;
+    int result = ERR;
     unsigned i;
 
+#if !USE_REENTRANT
     if (OSpeed == last_OSpeed) {
 	result = last_baudrate;
-    } else {
-	result = ERR;
+    }
+#endif
+    if (result == ERR) {
 	if (OSpeed >= 0) {
 	    for (i = 0; i < SIZEOF(speeds); i++) {
 		if (speeds[i].s == OSpeed) {
@@ -159,7 +167,12 @@
 		}
 	    }
 	}
-	last_baudrate = result;
+#if !USE_REENTRANT
+	if (OSpeed == last_OSpeed) {
+	    last_OSpeed = OSpeed;
+	    last_baudrate = result;
+	}
+#endif
     }
     return (result);
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_cur_term.c ncurses-5.6/ncurses/tinfo/lib_cur_term.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_cur_term.c	2003-12-27 13:21:30.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_cur_term.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,21 +40,45 @@
 #include <term_entry.h>		/* TTY, cur_term */
 #include <termcap.h>		/* ospeed */
 
-MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.16 2008/06/07 22:22:16 tom Exp $")
 
+#undef CUR
+#define CUR termp->type.
+
+#if USE_REENTRANT
+NCURSES_EXPORT(TERMINAL *)
+NCURSES_PUBLIC_VAR(cur_term) (void)
+{
+    return (SP != 0 && SP->_term != 0) ? SP->_term : _nc_prescreen._cur_term;
+}
+#else
 NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
+#endif
 
 NCURSES_EXPORT(TERMINAL *)
 set_curterm(TERMINAL * termp)
 {
-    TERMINAL *oldterm = cur_term;
+    TERMINAL *oldterm;
 
     T((T_CALLED("set_curterm(%p)"), termp));
 
-    if ((cur_term = termp) != 0) {
-	ospeed = _nc_ospeed(cur_term->_baudrate);
-	PC = (pad_char != NULL) ? pad_char[0] : 0;
+    _nc_lock_global(curses);
+    oldterm = cur_term;
+    if (SP)
+	SP->_term = termp;
+#if USE_REENTRANT
+    _nc_prescreen._cur_term = termp;
+#else
+    cur_term = termp;
+#endif
+    if (termp != 0) {
+	ospeed = _nc_ospeed(termp->_baudrate);
+	if (termp->type.Strings) {
+	    PC = (pad_char != NULL) ? pad_char[0] : 0;
+	}
     }
+    _nc_unlock_global(curses);
+
     T((T_RETURN("%p"), oldterm));
     return (oldterm);
 }
@@ -62,15 +86,20 @@
 NCURSES_EXPORT(int)
 del_curterm(TERMINAL * termp)
 {
+    int rc = ERR;
+
     T((T_CALLED("del_curterm(%p)"), termp));
 
+    _nc_lock_global(curses);
     if (termp != 0) {
 	_nc_free_termtype(&(termp->type));
 	FreeIfNeeded(termp->_termname);
 	free(termp);
 	if (termp == cur_term)
-	    cur_term = 0;
-	returnCode(OK);
+	    set_curterm(0);
+	rc = OK;
     }
-    returnCode(ERR);
+    _nc_unlock_global(curses);
+
+    returnCode(rc);
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_data.c ncurses-5.6/ncurses/tinfo/lib_data.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_data.c	2005-01-22 12:39:22.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_data.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,15 +41,33 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.17 2005/01/22 17:39:22 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.48 2008/06/07 14:03:15 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
  * constructing a dll (reported by J.J.G.Ripoll).
  */
+#if USE_REENTRANT
+NCURSES_EXPORT(WINDOW *)
+NCURSES_PUBLIC_VAR(stdscr) (void)
+{
+    return SP ? SP->_stdscr : 0;
+}
+NCURSES_EXPORT(WINDOW *)
+NCURSES_PUBLIC_VAR(curscr) (void)
+{
+    return SP ? SP->_curscr : 0;
+}
+NCURSES_EXPORT(WINDOW *)
+NCURSES_PUBLIC_VAR(newscr) (void)
+{
+    return SP ? SP->_newscr : 0;
+}
+#else
 NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
 NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
 NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
+#endif
 
 NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
 
@@ -87,3 +105,183 @@
 #else
 NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
 #endif
+/* *INDENT-OFF* */
+#define CHARS_0s { '\0' }
+
+#define TGETENT_0 { 0L, FALSE, NULL, NULL, NULL }
+#define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 }
+
+NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
+    0,				/* have_sigwinch */
+    0,				/* cleanup_nested */
+
+    FALSE,			/* init_signals */
+    FALSE,			/* init_screen */
+
+    NULL,			/* comp_sourcename */
+    NULL,			/* comp_termtype */
+
+    FALSE,			/* have_tic_directory */
+    FALSE,			/* keep_tic_directory */
+    TERMINFO,			/* tic_directory */
+
+    NULL,			/* dbi_list */
+    0,				/* dbi_size */
+
+    NULL,			/* first_name */
+    NULL,			/* keyname_table */
+
+    0,				/* slk_format */
+
+    NULL,			/* safeprint_buf */
+    0,				/* safeprint_used */
+
+    TGETENT_0s,			/* tgetent_cache */
+    0,				/* tgetent_index */
+    0,				/* tgetent_sequence */
+
+    0,				/* _nc_windowlist */
+
+#if USE_HOME_TERMINFO
+    NULL,			/* home_terminfo */
+#endif
+
+#if !USE_SAFE_SPRINTF
+    0,				/* safeprint_cols */
+    0,				/* safeprint_rows */
+#endif
+
+#ifdef TRACE
+    FALSE,			/* init_trace */
+    CHARS_0s,			/* trace_fname */
+    0,				/* trace_level */
+    NULL,			/* trace_fp */
+
+    NULL,			/* tracearg_buf */
+    0,				/* tracearg_used */
+
+    NULL,			/* tracebuf_ptr */
+    0,				/* tracebuf_used */
+
+    CHARS_0s,			/* tracechr_buf */
+
+    NULL,			/* tracedmp_buf */
+    0,				/* tracedmp_used */
+
+    NULL,			/* tracetry_buf */
+    0,				/* tracetry_used */
+
+    { CHARS_0s, CHARS_0s },	/* traceatr_color_buf */
+    0,				/* traceatr_color_sel */
+    -1,				/* traceatr_color_last */
+
+#endif /* TRACE */
+#ifdef USE_PTHREADS
+    PTHREAD_MUTEX_INITIALIZER,	/* mutex_curses */
+    PTHREAD_MUTEX_INITIALIZER,	/* mutex_tst_tracef */
+    PTHREAD_MUTEX_INITIALIZER,	/* mutex_tracef */
+    0,				/* nested_tracef */
+#endif
+};
+
+#define STACK_FRAME_0	{ { 0 }, 0 }
+#define STACK_FRAME_0s	{ STACK_FRAME_0 }
+#define NUM_VARS_0s	{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
+
+#define RIPOFF_0	{ 0,0,0 }
+#define RIPOFF_0s	{ RIPOFF_0 }
+
+NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
+    TRUE,			/* use_env */
+    FALSE,			/* filter_mode */
+    A_NORMAL,			/* previous_attr */
+    RIPOFF_0s,			/* ripoff */
+    NULL,			/* rsp */
+    {				/* tparm_state */
+#ifdef TRACE
+	NULL,			/* tname */
+#endif
+	NULL,			/* tparam_base */
+
+	STACK_FRAME_0s,		/* stack */
+	0,			/* stack_ptr */
+
+	NULL,			/* out_buff */
+	0,			/* out_size */
+	0,			/* out_used */
+
+	NULL,			/* fmt_buff */
+	0,			/* fmt_size */
+
+	NUM_VARS_0s,		/* dynamic_var */
+	NUM_VARS_0s,		/* static_vars */
+    },
+    NULL,			/* saved_tty */
+#if BROKEN_LINKER || USE_REENTRANT
+    NULL,			/* real_acs_map */
+    0,				/* LINES */
+    0,				/* COLS */
+    0,				/* cur_term */
+#ifdef TRACE
+    0L,				/* _outchars */
+    NULL,			/* _tputs_trace */
+#endif
+#endif
+};
+/* *INDENT-ON* */
+
+/******************************************************************************/
+#ifdef USE_PTHREADS
+static void
+init_global_mutexes(void)
+{
+    static bool initialized = FALSE;
+
+    if (!initialized) {
+	initialized = TRUE;
+	_nc_mutex_init(&_nc_globals.mutex_curses);
+	_nc_mutex_init(&_nc_globals.mutex_tst_tracef);
+	_nc_mutex_init(&_nc_globals.mutex_tracef);
+    }
+}
+
+/*
+ * Use recursive mutexes if we have them - they're part of Unix98.
+ * For the cases where we do not, _nc_mutex_trylock() is used to avoid a
+ * deadlock, at the expense of memory leaks and unexpected failures that
+ * may not be handled by typical clients.
+ *
+ * FIXME - need configure check for PTHREAD_MUTEX_RECURSIVE, define it to
+ * PTHREAD_MUTEX_NORMAL if not supported.
+ */
+NCURSES_EXPORT(void)
+_nc_mutex_init(pthread_mutex_t * obj)
+{
+    pthread_mutexattr_t recattr;
+
+    memset(&recattr, 0, sizeof(recattr));
+    pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
+    pthread_mutex_init(obj, &recattr);
+}
+
+NCURSES_EXPORT(int)
+_nc_mutex_lock(pthread_mutex_t * obj)
+{
+    init_global_mutexes();
+    return pthread_mutex_lock(obj);
+}
+
+NCURSES_EXPORT(int)
+_nc_mutex_trylock(pthread_mutex_t * obj)
+{
+    init_global_mutexes();
+    return pthread_mutex_trylock(obj);
+}
+
+NCURSES_EXPORT(int)
+_nc_mutex_unlock(pthread_mutex_t * obj)
+{
+    init_global_mutexes();
+    return pthread_mutex_unlock(obj);
+}
+#endif /* USE_PTHREADS */
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_napms.c ncurses-5.6/ncurses/tinfo/lib_napms.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_napms.c	2005-04-03 09:58:14.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/lib_napms.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -49,7 +49,7 @@
 #endif
 #endif
 
-MODULE_ID("$Id: lib_napms.c,v 1.15 2005/04/03 13:58:14 tom Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.17 2008/05/03 21:34:13 tom Exp $")
 
 NCURSES_EXPORT(int)
 napms(int ms)
@@ -67,7 +67,7 @@
 	}
     }
 #else
-    _nc_timed_wait(0, ms, (int *) 0 EVENTLIST_2nd(0));
+    _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0));
 #endif
 
     returnCode(OK);
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_options.c ncurses-5.6/ncurses/tinfo/lib_options.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_options.c	2006-03-04 14:28:25.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_options.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -43,7 +43,10 @@
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_options.c,v 1.49 2006/03/04 19:28:25 tom Exp $")
+MODULE_ID("$Id: lib_options.c,v 1.56 2008/06/07 14:01:46 tom Exp $")
+
+static int _nc_curs_set(SCREEN *, int);
+static int _nc_meta(SCREEN *, bool);
 
 NCURSES_EXPORT(int)
 idlok(WINDOW *win, bool flag)
@@ -126,7 +129,7 @@
 
     if (win) {
 	win->_use_keypad = flag;
-	returnCode(_nc_keypad(flag));
+	returnCode(_nc_keypad(SP, flag));
     } else
 	returnCode(ERR);
 }
@@ -134,23 +137,11 @@
 NCURSES_EXPORT(int)
 meta(WINDOW *win GCC_UNUSED, bool flag)
 {
-    int result = ERR;
+    int result;
 
     /* Ok, we stay relaxed and don't signal an error if win is NULL */
     T((T_CALLED("meta(%p,%d)"), win, flag));
-
-    if (SP != 0) {
-	SP->_use_meta = flag;
-
-	if (flag && meta_on) {
-	    TPUTS_TRACE("meta_on");
-	    putp(meta_on);
-	} else if (!flag && meta_off) {
-	    TPUTS_TRACE("meta_off");
-	    putp(meta_off);
-	}
-	result = OK;
-    }
+    result = _nc_meta(SP, flag);
     returnCode(result);
 }
 
@@ -159,43 +150,10 @@
 NCURSES_EXPORT(int)
 curs_set(int vis)
 {
-    int result = ERR;
+    int result;
 
     T((T_CALLED("curs_set(%d)"), vis));
-    if (SP != 0 && vis >= 0 && vis <= 2) {
-	int cursor = SP->_cursor;
-
-	if (vis == cursor) {
-	    result = cursor;
-	} else {
-	    result = (cursor == -1 ? 1 : cursor);
-	    switch (vis) {
-	    case 2:
-		if (cursor_visible) {
-		    TPUTS_TRACE("cursor_visible");
-		    putp(cursor_visible);
-		} else
-		    result = ERR;
-		break;
-	    case 1:
-		if (cursor_normal) {
-		    TPUTS_TRACE("cursor_normal");
-		    putp(cursor_normal);
-		} else
-		    result = ERR;
-		break;
-	    case 0:
-		if (cursor_invisible) {
-		    TPUTS_TRACE("cursor_invisible");
-		    putp(cursor_invisible);
-		} else
-		    result = ERR;
-		break;
-	    }
-	    SP->_cursor = vis;
-	    _nc_flush();
-	}
-    }
+    result = _nc_curs_set(SP, vis);
     returnCode(result);
 }
 
@@ -220,7 +178,7 @@
 
 #if NCURSES_EXT_FUNCS
 static int
-has_key_internal(int keycode, struct tries *tp)
+has_key_internal(int keycode, TRIES * tp)
 {
     if (tp == 0)
 	return (FALSE);
@@ -239,6 +197,35 @@
 }
 #endif /* NCURSES_EXT_FUNCS */
 
+/*
+ * Internal entrypoints use SCREEN* parameter to obtain capabilities rather
+ * than cur_term.
+ */
+#undef CUR
+#define CUR (sp->_term)->type.
+
+static int
+_nc_putp(const char *name GCC_UNUSED, const char *value)
+{
+    int rc = ERR;
+
+    if (value) {
+	TPUTS_TRACE(name);
+	rc = putp(value);
+    }
+    return rc;
+}
+
+static int
+_nc_putp_flush(const char *name, const char *value)
+{
+    int rc = _nc_putp(name, value);
+    if (rc != ERR) {
+	_nc_flush();
+    }
+    return rc;
+}
+
 /* Turn the keypad on/off
  *
  * Note:  we flush the output because changing this mode causes some terminals
@@ -247,24 +234,94 @@
  * the terminal state _before_ switching modes.
  */
 NCURSES_EXPORT(int)
-_nc_keypad(bool flag)
+_nc_keypad(SCREEN *sp, bool flag)
 {
-    if (flag && keypad_xmit) {
-	TPUTS_TRACE("keypad_xmit");
-	putp(keypad_xmit);
-	_nc_flush();
-    } else if (!flag && keypad_local) {
-	TPUTS_TRACE("keypad_local");
-	putp(keypad_local);
-	_nc_flush();
+    int rc = ERR;
+
+    if (sp != 0) {
+#ifdef USE_PTHREADS
+	/*
+	 * We might have this situation in a multithreaded application that
+	 * has wgetch() reading in more than one thread.  putp() and below
+	 * may use SP explicitly.
+	 */
+	if (sp != SP) {
+	    SCREEN *save_sp;
+
+	    /* cannot use use_screen(), since that is not in tinfo library */
+	    _nc_lock_global(curses);
+	    save_sp = SP;
+	    SP = sp;
+	    rc = _nc_keypad(sp, flag);
+	    SP = save_sp;
+	    _nc_unlock_global(curses);
+	} else
+#endif
+	{
+	    if (flag) {
+		(void) _nc_putp_flush("keypad_xmit", keypad_xmit);
+	    } else if (!flag && keypad_local) {
+		(void) _nc_putp_flush("keypad_local", keypad_local);
+	    }
+
+	    if (flag && !sp->_tried) {
+		_nc_init_keytry(sp);
+		sp->_tried = TRUE;
+	    }
+	    sp->_keypad_on = flag;
+	    rc = OK;
+	}
     }
+    return (rc);
+}
+
+static int
+_nc_curs_set(SCREEN *sp, int vis)
+{
+    int result = ERR;
+
+    T((T_CALLED("curs_set(%d)"), vis));
+    if (sp != 0 && vis >= 0 && vis <= 2) {
+	int cursor = sp->_cursor;
+
+	if (vis == cursor) {
+	    result = cursor;
+	} else {
+	    switch (vis) {
+	    case 2:
+		result = _nc_putp_flush("cursor_visible", cursor_visible);
+		break;
+	    case 1:
+		result = _nc_putp_flush("cursor_normal", cursor_normal);
+		break;
+	    case 0:
+		result = _nc_putp_flush("cursor_invisible", cursor_invisible);
+		break;
+	    }
+	    if (result != ERR)
+		result = (cursor == -1 ? 1 : cursor);
+	    sp->_cursor = vis;
+	}
+    }
+    returnCode(result);
+}
+
+static int
+_nc_meta(SCREEN *sp, bool flag)
+{
+    int result = ERR;
+
+    /* Ok, we stay relaxed and don't signal an error if win is NULL */
 
     if (SP != 0) {
-	if (flag && !SP->_tried) {
-	    _nc_init_keytry();
-	    SP->_tried = TRUE;
+	SP->_use_meta = flag;
+
+	if (flag) {
+	    _nc_putp("meta_on", meta_on);
+	} else {
+	    _nc_putp("meta_off", meta_off);
 	}
-	SP->_keypad_on = flag;
+	result = OK;
     }
-    return (OK);
+    return result;
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_raw.c ncurses-5.6/ncurses/tinfo/lib_raw.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_raw.c	2002-07-06 18:00:45.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/lib_raw.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2002,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -49,7 +49,7 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_raw.c,v 1.13 2002/07/06 22:00:45 tom Exp $")
+MODULE_ID("$Id: lib_raw.c,v 1.14 2007/09/29 21:50:22 tom Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
@@ -69,8 +69,8 @@
 #define COOKED_INPUT	(IXON|BRKINT|PARMRK)
 
 #ifdef TRACE
-#define BEFORE(N)	if (_nc_tracing&TRACE_BITS) _tracef("%s before bits: %s", N, _nc_tracebits())
-#define AFTER(N)	if (_nc_tracing&TRACE_BITS) _tracef("%s after bits: %s", N, _nc_tracebits())
+#define BEFORE(N)	if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s before bits: %s", N, _nc_tracebits())
+#define AFTER(N)	if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s after bits: %s", N, _nc_tracebits())
 #else
 #define BEFORE(s)
 #define AFTER(s)
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_setup.c ncurses-5.6/ncurses/tinfo/lib_setup.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_setup.c	2006-07-28 18:58:13.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/lib_setup.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1996-2003                                      *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -53,7 +53,7 @@
 
 #include <term.h>		/* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_setup.c,v 1.95 2006/07/28 22:58:13 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.107 2008/06/07 22:22:58 tom Exp $")
 
 /****************************************************************************
  *
@@ -99,55 +99,84 @@
 # endif
 #endif
 
+/*
+ * Wrap global variables in this module.
+ */
+#if USE_REENTRANT
+NCURSES_EXPORT(char *)
+NCURSES_PUBLIC_VAR(ttytype) (void)
+{
+    static char empty[] = "";
+    return cur_term ? cur_term->type.term_names : empty;
+}
+NCURSES_EXPORT(int *)
+_nc_ptr_Lines(void)
+{
+    return ptrLines();
+}
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(LINES) (void)
+{
+    return *_nc_ptr_Lines();
+}
+NCURSES_EXPORT(int *)
+_nc_ptr_Cols(void)
+{
+    return ptrCols();
+}
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(COLS) (void)
+{
+    return *_nc_ptr_Cols();
+}
+NCURSES_EXPORT(int)
+NCURSES_PUBLIC_VAR(TABSIZE) (void)
+{
+    return SP ? SP->_TABSIZE : 8;
+}
+#else
 NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
 NCURSES_EXPORT_VAR(int) LINES = 0;
 NCURSES_EXPORT_VAR(int) COLS = 0;
 NCURSES_EXPORT_VAR(int) TABSIZE = 0;
+#endif
 
-static int _use_env = TRUE;
+#if NCURSES_EXT_FUNCS
+NCURSES_EXPORT(int)
+set_tabsize(int value)
+{
+    int code = OK;
+#if USE_REENTRANT
+    if (SP) {
+	SP->_TABSIZE = value;
+    } else {
+	code = ERR;
+    }
+#else
+    TABSIZE = value;
+#endif
+    return code;
+}
+#endif
 
 #if USE_SIGWINCH
-int
-_nc_handle_sigwinch(int enable)
+/*
+ * If we have a pending SIGWINCH, set the flag in each screen.
+ */
+NCURSES_EXPORT(int)
+_nc_handle_sigwinch(SCREEN *sp)
 {
-    static int have_sigwinch = 0;	/* initially no SIGWINCH's */
-    static int can_resizeall = 1;	/* initially enabled */
     SCREEN *scan;
-    int result;
 
-    switch (enable) {
-    default:
-	/* record a SIGWINCH */
-	have_sigwinch = 1;
-	break;
-    case 0:
-	/* temporarily disable the next block */
-	--can_resizeall;
-	break;
-    case 1:
-	/* temporarily enable the next block */
-	++can_resizeall;
-	break;
-    }
+    if (_nc_globals.have_sigwinch) {
+	_nc_globals.have_sigwinch = 0;
 
-    /*
-     * If we have a pending SIGWINCH, set the flag in each screen.
-     * But do this only if the block is enabled.
-     */
-    if (can_resizeall-- >= 0) {	/* test and disable */
-	if (have_sigwinch) {
-	    scan = _nc_screen_chain;
-	    while (scan) {
-		scan->_sig_winch = TRUE;
-		scan = scan->_next_screen;
-	    }
-	    have_sigwinch = 0;
+	for (each_screen(scan)) {
+	    scan->_sig_winch = TRUE;
 	}
     }
-    result = can_resizeall + 1;	/* reenable (unless disables are nested) */
-    can_resizeall = result;
 
-    return result;
+    return (sp ? sp->_sig_winch : 0);
 }
 
 #endif
@@ -156,19 +185,20 @@
 use_env(bool f)
 {
     T((T_CALLED("use_env()")));
-    _use_env = f;
+    _nc_prescreen.use_env = f;
     returnVoid;
 }
 
-static void
-_nc_get_screensize(int *linep, int *colp)
+NCURSES_EXPORT(void)
+_nc_get_screensize(SCREEN *sp, int *linep, int *colp)
 /* Obtain lines/columns values from the environment and/or terminfo entry */
 {
+    int my_tabsize;
+
     /* figure out the size of the screen */
     T(("screen size: terminfo lines = %d columns = %d", lines, columns));
 
-    _nc_handle_sigwinch(0);
-    if (!_use_env) {
+    if (!_nc_prescreen.use_env) {
 	*linep = (int) lines;
 	*colp = (int) columns;
     } else {			/* usually want to query LINES and COLUMNS from environment */
@@ -214,7 +244,7 @@
 		 * environment variable.
 		 */
 		if (*linep <= 0)
-		    *linep = (SP != 0 && SP->_filtered) ? 1 : WINSIZE_ROWS(size);
+		    *linep = (sp != 0 && sp->_filtered) ? 1 : WINSIZE_ROWS(size);
 		if (*colp <= 0)
 		    *colp = WINSIZE_COLS(size);
 	    }
@@ -246,38 +276,44 @@
 	lines = (short) (*linep);
 	columns = (short) (*colp);
     }
-    _nc_handle_sigwinch(1);
 
     T(("screen size is %dx%d", *linep, *colp));
 
     if (VALID_NUMERIC(init_tabs))
-	TABSIZE = (int) init_tabs;
+	my_tabsize = (int) init_tabs;
     else
-	TABSIZE = 8;
+	my_tabsize = 8;
+
+#if USE_REENTRANT
+    if (sp != 0)
+	sp->_TABSIZE = my_tabsize;
+#else
+    TABSIZE = my_tabsize;
+#endif
     T(("TABSIZE = %d", TABSIZE));
 }
 
 #if USE_SIZECHANGE
 NCURSES_EXPORT(void)
-_nc_update_screensize(void)
+_nc_update_screensize(SCREEN *sp)
 {
     int old_lines = lines;
     int new_lines;
     int old_cols = columns;
     int new_cols;
 
-    _nc_get_screensize(&new_lines, &new_cols);
+    _nc_get_screensize(sp, &new_lines, &new_cols);
 
     /*
      * See is_term_resized() and resizeterm().
      * We're doing it this way because those functions belong to the upper
      * ncurses library, while this resides in the lower terminfo library.
      */
-    if (SP != 0
-	&& SP->_resize != 0) {
+    if (sp != 0
+	&& sp->_resize != 0) {
 	if ((new_lines != old_lines) || (new_cols != old_cols))
-	    SP->_resize(new_lines, new_cols);
-	SP->_sig_winch = FALSE;
+	    sp->_resize(new_lines, new_cols);
+	sp->_sig_winch = FALSE;
     }
 }
 #endif
@@ -530,18 +566,19 @@
 		ret_error(status, "'%s': unknown terminal type.\n", tname);
 	    }
 	}
+#if !USE_REENTRANT
+	strncpy(ttytype, term_ptr->type.term_names, NAMESIZE - 1);
+	ttytype[NAMESIZE - 1] = '\0';
+#endif
+
+	term_ptr->Filedes = Filedes;
+	term_ptr->_termname = strdup(tname);
 
 	set_curterm(term_ptr);
 
 	if (command_character && getenv("CC"))
 	    do_prototype();
 
-	strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
-	ttytype[NAMESIZE - 1] = '\0';
-
-	cur_term->Filedes = Filedes;
-	cur_term->_termname = strdup(tname);
-
 	/*
 	 * If an application calls setupterm() rather than initscr() or
 	 * newterm(), we will not have the def_prog_mode() call in
@@ -557,13 +594,11 @@
     /*
      * We should always check the screensize, just in case.
      */
-    _nc_get_screensize(&LINES, &COLS);
+    _nc_get_screensize(SP, ptrLines(), ptrCols());
 
     if (errret)
 	*errret = TGETENT_YES;
 
-    T((T_CREATE("screen %s %dx%d"), tname, LINES, COLS));
-
     if (generic_type) {
 	ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
     }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_termcap.c ncurses-5.6/ncurses/tinfo/lib_termcap.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_termcap.c	2006-09-02 15:39:46.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/lib_termcap.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -45,26 +45,20 @@
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: lib_termcap.c,v 1.58 2006/09/02 19:39:46 Miroslav.Lichvar Exp $")
+MODULE_ID("$Id: lib_termcap.c,v 1.61 2007/06/02 19:36:03 tom Exp $")
 
 NCURSES_EXPORT_VAR(char *) UP = 0;
 NCURSES_EXPORT_VAR(char *) BC = 0;
 
-typedef struct {
-    long sequence;
-    char *fix_sgr0;		/* this holds the filtered sgr0 string */
-    char *last_bufp;		/* help with fix_sgr0 leak */
-    TERMINAL *last_term;
-} CACHE;
-
-#define MAX_CACHE 4
-static CACHE cache[MAX_CACHE];
-static int in_cache = 0;
-
-#define FIX_SGR0 cache[in_cache].fix_sgr0
-#define LAST_TRM cache[in_cache].last_term
-#define LAST_BUF cache[in_cache].last_bufp
-#define LAST_SEQ cache[in_cache].sequence
+#define MyCache  _nc_globals.tgetent_cache
+#define CacheInx _nc_globals.tgetent_index
+#define CacheSeq _nc_globals.tgetent_sequence
+
+#define FIX_SGR0 MyCache[CacheInx].fix_sgr0
+#define LAST_TRM MyCache[CacheInx].last_term
+#define LAST_BUF MyCache[CacheInx].last_bufp
+#define LAST_USE MyCache[CacheInx].last_used
+#define LAST_SEQ MyCache[CacheInx].sequence
 
 /***************************************************************************
  *
@@ -84,8 +78,6 @@
 NCURSES_EXPORT(int)
 tgetent(char *bufp, const char *name)
 {
-    static long sequence;
-
     int errcode;
     int n;
     bool found_cache = FALSE;
@@ -100,11 +92,17 @@
      * caller, but if tgetent() is called with the same buffer, that is
      * good enough, since the previous data would be invalidated by the
      * current call.
+     *
+     * bufp may be a null pointer, e.g., GNU termcap.  That allocates data,
+     * which is good until the next tgetent() call.  The conventional termcap
+     * is inconvenient because of the fixed buffer size, but because it uses
+     * caller-supplied buffers, can have multiple terminal descriptions in
+     * use at a given time.
      */
-    for (n = 0; n < MAX_CACHE; ++n) {
-	bool same_result = (bufp != 0 && cache[n].last_bufp == bufp);
+    for (n = 0; n < TGETENT_MAX; ++n) {
+	bool same_result = (MyCache[n].last_used && MyCache[n].last_bufp == bufp);
 	if (same_result) {
-	    in_cache = n;
+	    CacheInx = n;
 	    if (FIX_SGR0 != 0) {
 		FreeAndNull(FIX_SGR0);
 	    }
@@ -114,10 +112,10 @@
 	    if (LAST_TRM != 0 && LAST_TRM != cur_term) {
 		TERMINAL *trm = LAST_TRM;
 		del_curterm(LAST_TRM);
-		for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache)
+		for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx)
 		    if (LAST_TRM == trm)
 			LAST_TRM = 0;
-		in_cache = n;
+		CacheInx = n;
 	    }
 	    found_cache = TRUE;
 	    break;
@@ -126,15 +124,15 @@
     if (!found_cache) {
 	int best = 0;
 
-	for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache) {
-	    if (LAST_SEQ < cache[best].sequence) {
-		best = in_cache;
+	for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
+	    if (LAST_SEQ < MyCache[best].sequence) {
+		best = CacheInx;
 	    }
 	}
-	in_cache = best;
+	CacheInx = best;
     }
     LAST_TRM = cur_term;
-    LAST_SEQ = ++sequence;
+    LAST_SEQ = ++CacheSeq;
 
     PC = 0;
     UP = 0;
@@ -164,6 +162,7 @@
 	    }
 	}
 	LAST_BUF = bufp;
+	LAST_USE = TRUE;
 
 	(void) baudrate();	/* sets ospeed as a side-effect */
 
@@ -282,9 +281,10 @@
 NCURSES_EXPORT(void)
 _nc_tgetent_leaks(void)
 {
-    for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache) {
+    for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
 	FreeIfNeeded(FIX_SGR0);
-	del_curterm(LAST_TRM);
+	if (LAST_TRM != 0)
+	    del_curterm(LAST_TRM);
     }
 }
 #endif
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_tparm.c ncurses-5.6/ncurses/tinfo/lib_tparm.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_tparm.c	2006-11-25 20:12:56.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_tparm.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -43,7 +43,7 @@
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tparm.c,v 1.71 2006/11/26 01:12:56 tom Exp $")
+MODULE_ID("$Id: lib_tparm.c,v 1.74 2007/09/29 20:37:13 tom Exp $")
 
 /*
  *	char *
@@ -105,43 +105,20 @@
  *	resulting in x mod y, not the reverse.
  */
 
-#define STACKSIZE	20
-
-typedef struct {
-    union {
-	int num;
-	char *str;
-    } data;
-    bool num_type;
-} stack_frame;
-
 NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
 
-static stack_frame stack[STACKSIZE];
-static int stack_ptr;
-static const char *tparam_base = "";
-
-#ifdef TRACE
-static const char *tname;
-#endif /* TRACE */
-
-static char *out_buff;
-static size_t out_size;
-static size_t out_used;
-
-static char *fmt_buff;
-static size_t fmt_size;
+#define TPS(var) _nc_prescreen.tparm_state.var
 
 #if NO_LEAKS
 NCURSES_EXPORT(void)
 _nc_free_tparm(void)
 {
-    if (out_buff != 0) {
-	FreeAndNull(out_buff);
-	out_size = 0;
-	out_used = 0;
-	FreeAndNull(fmt_buff);
-	fmt_size = 0;
+    if (TPS(out_buff) != 0) {
+	FreeAndNull(TPS(out_buff));
+	TPS(out_size) = 0;
+	TPS(out_used) = 0;
+	FreeAndNull(TPS(fmt_buff));
+	TPS(fmt_size) = 0;
     }
 }
 #endif
@@ -149,11 +126,11 @@
 static NCURSES_INLINE void
 get_space(size_t need)
 {
-    need += out_used;
-    if (need > out_size) {
-	out_size = need * 2;
-	out_buff = typeRealloc(char, out_size, out_buff);
-	if (out_buff == 0)
+    need += TPS(out_used);
+    if (need > TPS(out_size)) {
+	TPS(out_size) = need * 2;
+	TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff));
+	if (TPS(out_buff) == 0)
 	    _nc_err_abort(MSG_NO_MEMORY);
     }
 }
@@ -167,8 +144,8 @@
 
     get_space(s_len + 1);
 
-    (void) sprintf(out_buff + out_used, fmt, s);
-    out_used += strlen(out_buff + out_used);
+    (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, s);
+    TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
 }
 
 static NCURSES_INLINE void
@@ -179,8 +156,8 @@
 
     get_space((unsigned) len + 1);
 
-    (void) sprintf(out_buff + out_used, fmt, number);
-    out_used += strlen(out_buff + out_used);
+    (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, number);
+    TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
 }
 
 static NCURSES_INLINE void
@@ -189,18 +166,18 @@
     if (c == 0)
 	c = 0200;
     get_space(1);
-    out_buff[out_used++] = c;
+    TPS(out_buff)[TPS(out_used)++] = c;
 }
 
 static NCURSES_INLINE void
 npush(int x)
 {
-    if (stack_ptr < STACKSIZE) {
-	stack[stack_ptr].num_type = TRUE;
-	stack[stack_ptr].data.num = x;
-	stack_ptr++;
+    if (TPS(stack_ptr) < STACKSIZE) {
+	TPS(stack)[TPS(stack_ptr)].num_type = TRUE;
+	TPS(stack)[TPS(stack_ptr)].data.num = x;
+	TPS(stack_ptr)++;
     } else {
-	DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(tparam_base)));
+	DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
 	_nc_tparm_err++;
     }
 }
@@ -209,12 +186,12 @@
 npop(void)
 {
     int result = 0;
-    if (stack_ptr > 0) {
-	stack_ptr--;
-	if (stack[stack_ptr].num_type)
-	    result = stack[stack_ptr].data.num;
+    if (TPS(stack_ptr) > 0) {
+	TPS(stack_ptr)--;
+	if (TPS(stack)[TPS(stack_ptr)].num_type)
+	    result = TPS(stack)[TPS(stack_ptr)].data.num;
     } else {
-	DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(tparam_base)));
+	DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
 	_nc_tparm_err++;
     }
     return result;
@@ -223,12 +200,12 @@
 static NCURSES_INLINE void
 spush(char *x)
 {
-    if (stack_ptr < STACKSIZE) {
-	stack[stack_ptr].num_type = FALSE;
-	stack[stack_ptr].data.str = x;
-	stack_ptr++;
+    if (TPS(stack_ptr) < STACKSIZE) {
+	TPS(stack)[TPS(stack_ptr)].num_type = FALSE;
+	TPS(stack)[TPS(stack_ptr)].data.str = x;
+	TPS(stack_ptr)++;
     } else {
-	DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(tparam_base)));
+	DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
 	_nc_tparm_err++;
     }
 }
@@ -238,12 +215,13 @@
 {
     static char dummy[] = "";	/* avoid const-cast */
     char *result = dummy;
-    if (stack_ptr > 0) {
-	stack_ptr--;
-	if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0)
-	    result = stack[stack_ptr].data.str;
+    if (TPS(stack_ptr) > 0) {
+	TPS(stack_ptr)--;
+	if (!TPS(stack)[TPS(stack_ptr)].num_type
+	    && TPS(stack)[TPS(stack_ptr)].data.str != 0)
+	    result = TPS(stack)[TPS(stack_ptr)].data.str;
     } else {
-	DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(tparam_base)));
+	DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
 	_nc_tparm_err++;
     }
     return result;
@@ -369,10 +347,11 @@
     if (cp == 0)
 	return 0;
 
-    if ((len2 = strlen(cp)) > fmt_size) {
-	fmt_size = len2 + fmt_size + 2;
-	if ((fmt_buff = typeRealloc(char, fmt_size, fmt_buff)) == 0)
-	      return 0;
+    if ((len2 = strlen(cp)) > TPS(fmt_size)) {
+	TPS(fmt_size) = len2 + TPS(fmt_size) + 2;
+	TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff));
+	if (TPS(fmt_buff) == 0)
+	    return 0;
     }
 
     memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM);
@@ -381,7 +360,7 @@
     while ((cp - string) < (int) len2) {
 	if (*cp == '%') {
 	    cp++;
-	    cp = parse_format(cp, fmt_buff, &len);
+	    cp = parse_format(cp, TPS(fmt_buff), &len);
 	    switch (*cp) {
 	    default:
 		break;
@@ -474,7 +453,6 @@
 static NCURSES_INLINE char *
 tparam_internal(const char *string, va_list ap)
 {
-#define NUM_VARS 26
     char *p_is_s[NUM_PARM];
     TPARM_ARG param[NUM_PARM];
     int popcount;
@@ -485,13 +463,11 @@
     int i;
     const char *cp = string;
     size_t len2;
-    static int dynamic_var[NUM_VARS];
-    static int static_vars[NUM_VARS];
 
     if (cp == NULL)
 	return NULL;
 
-    out_used = 0;
+    TPS(out_used) = 0;
     len2 = strlen(cp);
 
     /*
@@ -500,7 +476,7 @@
      * variable-length argument list.
      */
     number = _nc_tparm_analyze(cp, p_is_s, &popcount);
-    if (fmt_buff == 0)
+    if (TPS(fmt_buff) == 0)
 	return NULL;
 
     for (i = 0; i < max(popcount, number); i++) {
@@ -525,22 +501,23 @@
      * the expansion of (for example) \E[%d;%dH work correctly in termcap
      * style, which means tparam() will expand termcap strings OK.
      */
-    stack_ptr = 0;
+    TPS(stack_ptr) = 0;
     if (popcount == 0) {
 	popcount = number;
 	for (i = number - 1; i >= 0; i--)
 	    npush(param[i]);
     }
 #ifdef TRACE
-    if (_nc_tracing & TRACE_CALLS) {
+    if (USE_TRACEF(TRACE_CALLS)) {
 	for (i = 0; i < popcount; i++) {
 	    if (p_is_s[i] != 0)
 		save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
 	    else
 		save_number(", %d", param[i], 0);
 	}
-	_tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(cp), out_buff);
-	out_used = 0;
+	_tracef(T_CALLED("%s(%s%s)"), TPS(tname), _nc_visbuf(cp), TPS(out_buff));
+	TPS(out_used) = 0;
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
@@ -548,8 +525,8 @@
 	if (*cp != '%') {
 	    save_char(UChar(*cp));
 	} else {
-	    tparam_base = cp++;
-	    cp = parse_format(cp, fmt_buff, &len);
+	    TPS(tparam_base) = cp++;
+	    cp = parse_format(cp, TPS(fmt_buff), &len);
 	    switch (*cp) {
 	    default:
 		break;
@@ -561,7 +538,7 @@
 	    case 'o':		/* FALLTHRU */
 	    case 'x':		/* FALLTHRU */
 	    case 'X':		/* FALLTHRU */
-		save_number(fmt_buff, npop(), len);
+		save_number(TPS(fmt_buff), npop(), len);
 		break;
 
 	    case 'c':		/* FALLTHRU */
@@ -573,7 +550,7 @@
 		break;
 
 	    case 's':
-		save_text(fmt_buff, spop(), len);
+		save_text(TPS(fmt_buff), spop(), len);
 		break;
 
 	    case 'p':
@@ -591,10 +568,10 @@
 		cp++;
 		if (isUPPER(*cp)) {
 		    i = (UChar(*cp) - 'A');
-		    static_vars[i] = npop();
+		    TPS(static_vars)[i] = npop();
 		} else if (isLOWER(*cp)) {
 		    i = (UChar(*cp) - 'a');
-		    dynamic_var[i] = npop();
+		    TPS(dynamic_var)[i] = npop();
 		}
 		break;
 
@@ -602,10 +579,10 @@
 		cp++;
 		if (isUPPER(*cp)) {
 		    i = (UChar(*cp) - 'A');
-		    npush(static_vars[i]);
+		    npush(TPS(static_vars)[i]);
 		} else if (isLOWER(*cp)) {
 		    i = (UChar(*cp) - 'a');
-		    npush(dynamic_var[i]);
+		    npush(TPS(dynamic_var)[i]);
 		}
 		break;
 
@@ -768,10 +745,10 @@
     }				/* endwhile (*cp) */
 
     get_space(1);
-    out_buff[out_used] = '\0';
+    TPS(out_buff)[TPS(out_used)] = '\0';
 
-    T((T_RETURN("%s"), _nc_visbuf(out_buff)));
-    return (out_buff);
+    T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff))));
+    return (TPS(out_buff));
 }
 
 #if NCURSES_TPARM_VARARGS
@@ -789,7 +766,7 @@
     _nc_tparm_err = 0;
     va_start(ap, string);
 #ifdef TRACE
-    tname = "tparm";
+    TPS(tname) = "tparm";
 #endif /* TRACE */
     result = tparam_internal(string, ap);
     va_end(ap);
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_tputs.c ncurses-5.6/ncurses/tinfo/lib_tputs.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_tputs.c	2003-08-23 17:39:20.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/lib_tputs.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -45,12 +45,12 @@
 #include <termcap.h>		/* ospeed */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $")
+MODULE_ID("$Id: lib_tputs.c,v 1.64 2007/09/29 20:37:13 tom Exp $")
 
-NCURSES_EXPORT_VAR(char) PC = 0;		/* used by termcap library */
-NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;	/* used by termcap library */
+NCURSES_EXPORT_VAR(char) PC = 0;              /* used by termcap library */
+NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;        /* used by termcap library */
 
-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;	/* used by 'tack' program */
+NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;   /* used by 'tack' program */
 
 static int (*my_outch) (int c) = _nc_outch;
 
@@ -84,7 +84,7 @@
 NCURSES_EXPORT(int)
 _nc_outch(int ch)
 {
-    TRACE_OUTCHARS(1);
+    COUNT_OUTCHARS(1);
 
     if (SP != 0
 	&& SP->_cleanup) {
@@ -119,7 +119,7 @@
 #ifdef TRACE
     char addrbuf[32];
 
-    if (_nc_tracing & TRACE_TPUTS) {
+    if (USE_TRACEF(TRACE_TPUTS)) {
 	if (outc == _nc_outch)
 	    (void) strcpy(addrbuf, "_nc_outch");
 	else
@@ -130,7 +130,8 @@
 	} else {
 	    _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf);
 	}
-	_nc_tputs_trace = (char *) NULL;
+	TPUTS_TRACE(NULL);
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
diff -Naur ncurses-5.6.orig/ncurses/tinfo/lib_ttyflags.c ncurses-5.6/ncurses/tinfo/lib_ttyflags.c
--- ncurses-5.6.orig/ncurses/tinfo/lib_ttyflags.c	2006-12-09 20:31:54.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/lib_ttyflags.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,31 +38,35 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_ttyflags.c,v 1.13 2006/12/10 01:31:54 tom Exp $")
+MODULE_ID("$Id: lib_ttyflags.c,v 1.16 2008/05/03 22:39:03 tom Exp $")
 
 NCURSES_EXPORT(int)
 _nc_get_tty_mode(TTY * buf)
 {
     int result = OK;
 
-    if (cur_term == 0) {
+    if (buf == 0) {
 	result = ERR;
     } else {
-	for (;;) {
-	    if (GET_TTY(cur_term->Filedes, buf) != 0) {
-		if (errno == EINTR)
-		    continue;
-		result = ERR;
+	if (cur_term == 0) {
+	    result = ERR;
+	} else {
+	    for (;;) {
+		if (GET_TTY(cur_term->Filedes, buf) != 0) {
+		    if (errno == EINTR)
+			continue;
+		    result = ERR;
+		}
+		break;
 	    }
-	    break;
 	}
-    }
 
-    if (result == ERR)
-	memset(buf, 0, sizeof(*buf));
+	if (result == ERR)
+	    memset(buf, 0, sizeof(*buf));
 
-    TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
-		    cur_term->Filedes, _nc_trace_ttymode(buf)));
+	TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
+			cur_term->Filedes, _nc_trace_ttymode(buf)));
+    }
     return (result);
 }
 
@@ -71,22 +75,26 @@
 {
     int result = OK;
 
-    if (cur_term == 0) {
+    if (buf == 0) {
 	result = ERR;
     } else {
-	for (;;) {
-	    if (SET_TTY(cur_term->Filedes, buf) != 0) {
-		if (errno == EINTR)
-		    continue;
-		if ((errno == ENOTTY) && (SP != 0))
-		    SP->_notty = TRUE;
-		result = ERR;
+	if (cur_term == 0) {
+	    result = ERR;
+	} else {
+	    for (;;) {
+		if (SET_TTY(cur_term->Filedes, buf) != 0) {
+		    if (errno == EINTR)
+			continue;
+		    if ((errno == ENOTTY) && (SP != 0))
+			SP->_notty = TRUE;
+		    result = ERR;
+		}
+		break;
 	    }
-	    break;
 	}
+	TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
+			cur_term->Filedes, _nc_trace_ttymode(buf)));
     }
-    TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
-		    cur_term->Filedes, _nc_trace_ttymode(buf)));
     return (result);
 }
 
@@ -139,7 +147,7 @@
 	if (_nc_set_tty_mode(&cur_term->Nttyb) == OK) {
 	    if (SP) {
 		if (SP->_keypad_on)
-		    _nc_keypad(TRUE);
+		    _nc_keypad(SP, TRUE);
 		NC_BUFFERED(TRUE);
 	    }
 	    returnCode(OK);
@@ -155,7 +163,7 @@
 
     if (cur_term != 0) {
 	if (SP) {
-	    _nc_keypad(FALSE);
+	    _nc_keypad(SP, FALSE);
 	    _nc_flush();
 	    NC_BUFFERED(FALSE);
 	}
@@ -164,19 +172,33 @@
     returnCode(ERR);
 }
 
+static TTY *
+saved_tty(void)
+{
+    TTY *result = 0;
+
+    if (SP != 0) {
+	result = &(SP->_saved_tty);
+    } else {
+	if (_nc_prescreen.saved_tty == 0) {
+	    _nc_prescreen.saved_tty = typeCalloc(TTY, 1);
+	}
+	result = _nc_prescreen.saved_tty;
+    }
+    return result;
+}
+
 /*
 **	savetty()  and  resetty()
 **
 */
 
-static TTY buf;
-
 NCURSES_EXPORT(int)
 savetty(void)
 {
     T((T_CALLED("savetty()")));
 
-    returnCode(_nc_get_tty_mode(&buf));
+    returnCode(_nc_get_tty_mode(saved_tty()));
 }
 
 NCURSES_EXPORT(int)
@@ -184,5 +206,5 @@
 {
     T((T_CALLED("resetty()")));
 
-    returnCode(_nc_set_tty_mode(&buf));
+    returnCode(_nc_set_tty_mode(saved_tty()));
 }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/make_keys.c ncurses-5.6/ncurses/tinfo/make_keys.c
--- ncurses-5.6.orig/ncurses/tinfo/make_keys.c	2005-08-20 15:58:18.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/make_keys.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,7 +39,7 @@
 #define USE_TERMLIB 1
 #include <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.12 2005/08/20 19:58:18 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.13 2007/01/07 00:00:14 tom Exp $")
 
 #include <names.c>
 
@@ -113,7 +113,7 @@
 	"#if BROKEN_LINKER",
 	"static",
 	"#endif",
-	"struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
+	"const struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
 	0
     };
     static const char *suffix[] =
diff -Naur ncurses-5.6.orig/ncurses/tinfo/name_match.c ncurses-5.6/ncurses/tinfo/name_match.c
--- ncurses-5.6.orig/ncurses/tinfo/name_match.c	2005-01-22 16:47:25.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/name_match.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,38 +34,38 @@
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: name_match.c,v 1.15 2005/01/22 21:47:25 tom Exp $")
+MODULE_ID("$Id: name_match.c,v 1.16 2007/04/21 21:28:13 tom Exp $")
 
 /*
  *	_nc_first_name(char *names)
  *
  *	Extract the primary name from a compiled entry.
  */
+#define FirstName _nc_globals.first_name
 
 NCURSES_EXPORT(char *)
 _nc_first_name(const char *const sp)
 /* get the first name from the given name list */
 {
-    static char *buf;
-    register unsigned n;
+    unsigned n;
 
 #if NO_LEAKS
     if (sp == 0) {
-	if (buf != 0)
-	    FreeAndNull(buf);	/* for leak-testing */
+	if (FirstName != 0)
+	    FreeAndNull(FirstName);
 	return 0;
     }
 #endif
 
-    if (buf == 0)
-	buf = typeMalloc(char, MAX_NAME_SIZE + 1);
+    if (FirstName == 0)
+	FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
     for (n = 0; n < MAX_NAME_SIZE; n++) {
-	if ((buf[n] = sp[n]) == '\0'
-	    || (buf[n] == '|'))
+	if ((FirstName[n] = sp[n]) == '\0'
+	    || (FirstName[n] == '|'))
 	    break;
     }
-    buf[n] = '\0';
-    return (buf);
+    FirstName[n] = '\0';
+    return (FirstName);
 }
 
 /*
diff -Naur ncurses-5.6.orig/ncurses/tinfo/parse_entry.c ncurses-5.6/ncurses/tinfo/parse_entry.c
--- ncurses-5.6.orig/ncurses/tinfo/parse_entry.c	2006-06-17 13:57:50.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/parse_entry.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -48,7 +48,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: parse_entry.c,v 1.63 2006/06/17 17:57:50 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.65 2007/08/11 16:19:02 tom Exp $")
 
 #ifdef LINT
 static short const parametrized[] =
@@ -283,7 +283,7 @@
 	} else {
 	    /* normal token lookup */
 	    entry_ptr = _nc_find_entry(_nc_curr_token.tk_name,
-				       _nc_syntax ? _nc_cap_hash_table : _nc_info_hash_table);
+				       _nc_get_hash_table(_nc_syntax));
 
 	    /*
 	     * Our kluge to handle aliasing.  The reason it's done
@@ -300,7 +300,7 @@
 		    if (entryp->nuses != 0) {
 			BAD_TC_USAGE
 		    }
-		    for (ap = _nc_capalias_table; ap->from; ap++)
+		    for (ap = _nc_get_alias_table(TRUE); ap->from; ap++)
 			if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
 			    if (ap->to == (char *) 0) {
 				_nc_warning("%s (%s termcap extension) ignored",
@@ -308,14 +308,15 @@
 				goto nexttok;
 			    }
 
-			    entry_ptr = _nc_find_entry(ap->to, _nc_cap_hash_table);
+			    entry_ptr = _nc_find_entry(ap->to,
+						       _nc_get_hash_table(TRUE));
 			    if (entry_ptr && !silent)
 				_nc_warning("%s (%s termcap extension) aliased to %s",
 					    ap->from, ap->source, ap->to);
 			    break;
 			}
 		} else {	/* if (_nc_syntax == SYN_TERMINFO) */
-		    for (ap = _nc_infoalias_table; ap->from; ap++)
+		    for (ap = _nc_get_alias_table(FALSE); ap->from; ap++)
 			if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
 			    if (ap->to == (char *) 0) {
 				_nc_warning("%s (%s terminfo extension) ignored",
@@ -323,7 +324,8 @@
 				goto nexttok;
 			    }
 
-			    entry_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
+			    entry_ptr = _nc_find_entry(ap->to,
+						       _nc_get_hash_table(FALSE));
 			    if (entry_ptr && !silent)
 				_nc_warning("%s (%s terminfo extension) aliased to %s",
 					    ap->from, ap->source, ap->to);
@@ -796,8 +798,8 @@
 
 	    /* now we know we found a match in ko_table, so... */
 
-	    from_ptr = _nc_find_entry(ap->from, _nc_cap_hash_table);
-	    to_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
+	    from_ptr = _nc_find_entry(ap->from, _nc_get_hash_table(TRUE));
+	    to_ptr = _nc_find_entry(ap->to, _nc_get_hash_table(FALSE));
 
 	    if (!from_ptr || !to_ptr)	/* should never happen! */
 		_nc_err_abort("ko translation table is invalid, I give up");
diff -Naur ncurses-5.6.orig/ncurses/tinfo/read_entry.c ncurses-5.6/ncurses/tinfo/read_entry.c
--- ncurses-5.6.orig/ncurses/tinfo/read_entry.c	2006-08-19 11:58:50.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/read_entry.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,7 +42,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: read_entry.c,v 1.99 2006/08/19 15:58:50 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.100 2007/11/17 23:56:50 tom Exp $")
 
 #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
 
@@ -409,7 +409,7 @@
 	unsigned need = 4 + strlen(path) + strlen(name);
 
 	if (need <= limit) {
-	    (void) sprintf(filename, "%s/%c/%s", path, *name, name);
+	    (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name);
 	    result = _nc_read_file_entry(filename, tp);
 	}
     }
diff -Naur ncurses-5.6.orig/ncurses/tinfo/setbuf.c ncurses-5.6/ncurses/tinfo/setbuf.c
--- ncurses-5.6.orig/ncurses/tinfo/setbuf.c	2003-11-15 18:55:34.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/setbuf.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: setbuf.c,v 1.12 2003/11/15 23:55:34 tom Exp $")
+MODULE_ID("$Id: setbuf.c,v 1.13 2007/05/12 19:04:02 tom Exp $")
 
 /*
  * If the output file descriptor is connected to a tty (the typical case) it
@@ -102,7 +102,7 @@
 {
     /* optional optimization hack -- do before any output to ofp */
 #if HAVE_SETVBUF || HAVE_SETBUFFER
-    if (SP->_buffered != (int)buffered) {
+    if (SP->_buffered != buffered) {
 	unsigned buf_len;
 	char *buf_ptr;
 
diff -Naur ncurses-5.6.orig/ncurses/tinfo/strings.c ncurses-5.6/ncurses/tinfo/strings.c
--- ncurses-5.6.orig/ncurses/tinfo/strings.c	2003-08-16 19:46:00.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/strings.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2000,2003 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,7 +36,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: strings.c,v 1.5 2003/08/16 23:46:00 tom Exp $")
+MODULE_ID("$Id: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $")
 
 /****************************************************************************
  * Useful string functions (especially for mvcur)
@@ -52,7 +52,7 @@
 
     while ((len1 != 0) && (len1-- >= len2)) {
 	if (!strncmp(haystack, needle, len2)) {
-	    result = haystack;
+	    result = (char *) haystack;
 	    break;
 	}
 	haystack++;
diff -Naur ncurses-5.6.orig/ncurses/tinfo/trim_sgr0.c ncurses-5.6/ncurses/tinfo/trim_sgr0.c
--- ncurses-5.6.orig/ncurses/tinfo/trim_sgr0.c	2006-12-02 14:37:57.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/trim_sgr0.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2005 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2005-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -37,7 +37,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: trim_sgr0.c,v 1.7 2006/12/02 19:37:57 tom Exp $")
+MODULE_ID("$Id: trim_sgr0.c,v 1.8 2007/04/07 17:14:11 tom Exp $")
 
 #undef CUR
 #define CUR tp->
@@ -247,9 +247,7 @@
 	if (!rewrite_sgr(on, enter_alt_charset_mode)
 	    || !rewrite_sgr(off, exit_alt_charset_mode)
 	    || !rewrite_sgr(end, exit_alt_charset_mode)) {
-	    FreeIfNeeded(on);
 	    FreeIfNeeded(off);
-	    FreeIfNeeded(end);
 	} else if (similar_sgr(off, end)
 		   && !similar_sgr(off, on)) {
 	    TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
@@ -315,8 +313,8 @@
 	     */
 	    free(off);
 	}
-	free(end);
-	free(on);
+	FreeIfNeeded(end);
+	FreeIfNeeded(on);
     } else {
 	/*
 	 * Possibly some applications are confused if sgr0 contains rmacs,
diff -Naur ncurses-5.6.orig/ncurses/tinfo/use_screen.c ncurses-5.6/ncurses/tinfo/use_screen.c
--- ncurses-5.6.orig/ncurses/tinfo/use_screen.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/tinfo/use_screen.c	2008-06-18 06:49:51.000000000 -0400
@@ -0,0 +1,58 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *     Author: Thomas E. Dickey                        2007                 *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: use_screen.c,v 1.6 2008/06/07 19:16:56 tom Exp $")
+
+NCURSES_EXPORT(int)
+use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
+{
+    SCREEN *save_SP;
+    int code = OK;
+
+    T((T_CALLED("use_screen(%p,%p,%p)"), screen, func, data));
+
+    /*
+     * FIXME - add a flag so a given thread can check if _it_ has already
+     * recurred through this point, return an error if so.
+     */
+    _nc_lock_global(curses);
+    save_SP = SP;
+    set_term(screen);
+
+    code = func(screen, data);
+
+    set_term(save_SP);
+    _nc_unlock_global(curses);
+    returnCode(code);
+}
diff -Naur ncurses-5.6.orig/ncurses/tinfo/write_entry.c ncurses-5.6/ncurses/tinfo/write_entry.c
--- ncurses-5.6.orig/ncurses/tinfo/write_entry.c	2006-10-14 16:45:16.000000000 -0400
+++ ncurses-5.6/ncurses/tinfo/write_entry.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -54,7 +54,7 @@
 #define TRACE_OUT(p)		/*nothing */
 #endif
 
-MODULE_ID("$Id: write_entry.c,v 1.68 2006/10/14 20:45:16 tom Exp $")
+MODULE_ID("$Id: write_entry.c,v 1.70 2007/11/17 23:38:28 tom Exp $")
 
 static int total_written;
 
@@ -97,17 +97,16 @@
     static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
     static bool verified[sizeof(dirnames)];
 
-    char dir[2];
+    char dir[sizeof(LEAF_FMT)];
     char *s = 0;
 
     if (code == 0 || (s = strchr(dirnames, code)) == 0)
-	_nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
+	_nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code);
 
     if (verified[s - dirnames])
 	return;
 
-    dir[0] = code;
-    dir[1] = '\0';
+    sprintf(dir, LEAF_FMT, code);
     if (make_db_root(dir) < 0) {
 	_nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
     }
@@ -358,7 +357,7 @@
     if (strlen(first_name) > sizeof(filename) - 3)
 	_nc_warning("terminal name too long.");
 
-    sprintf(filename, "%c/%s", first_name[0], first_name);
+    sprintf(filename, LEAF_FMT "/%s", first_name[0], first_name);
 
     /*
      * Has this primary name been written since the first call to
@@ -399,7 +398,7 @@
 	}
 
 	check_writeable(ptr[0]);
-	sprintf(linkname, "%c/%s", ptr[0], ptr);
+	sprintf(linkname, LEAF_FMT "/%s", ptr[0], ptr);
 
 	if (strcmp(filename, linkname) == 0) {
 	    _nc_warning("self-synonym ignored");
@@ -502,7 +501,8 @@
 	} else {
 	    offsets[i] = nextfree;
 	    nextfree += strlen(Strings[i]) + 1;
-	    TRACE_OUT(("put Strings[%d]=%s(%d)", i, _nc_visbuf(Strings[i]), nextfree));
+	    TRACE_OUT(("put Strings[%d]=%s(%d)", (int) i,
+		       _nc_visbuf(Strings[i]), nextfree));
 	}
     }
     return nextfree;
@@ -740,7 +740,7 @@
 	 */
 	for (i = 0; i < tp->ext_Strings; i++) {
 	    if (VALID_STRING(tp->Strings[i + STRCOUNT])) {
-		TRACE_OUT(("WRITE ext_Strings[%d]=%s", i,
+		TRACE_OUT(("WRITE ext_Strings[%d]=%s", (int) i,
 			   _nc_visbuf(tp->Strings[i + STRCOUNT])));
 		if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
 		    return (ERR);
@@ -751,7 +751,7 @@
 	 * Write the extended names
 	 */
 	for (i = 0; i < extcnt; i++) {
-	    TRACE_OUT(("WRITE ext_Names[%d]=%s", i, tp->ext_Names[i]));
+	    TRACE_OUT(("WRITE ext_Names[%d]=%s", (int) i, tp->ext_Names[i]));
 	    if (!WRITE_STRING(tp->ext_Names[i]))
 		return (ERR);
 	}
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_trace.c ncurses-5.6/ncurses/trace/lib_trace.c
--- ncurses-5.6.orig/ncurses/trace/lib_trace.c	2006-08-19 08:05:25.000000000 -0400
+++ ncurses-5.6/ncurses/trace/lib_trace.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -46,37 +46,69 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_trace.c,v 1.59 2006/08/19 12:05:25 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.67 2008/06/07 20:49:56 tom Exp $")
 
 NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
 
 #ifdef TRACE
+
+#if USE_REENTRANT
+NCURSES_EXPORT(const char *)
+NCURSES_PUBLIC_VAR(_nc_tputs_trace) (void)
+{
+    return SP ? SP->_tputs_trace : _nc_prescreen._tputs_trace;
+}
+NCURSES_EXPORT(long)
+NCURSES_PUBLIC_VAR(_nc_outchars) (void)
+{
+    return SP ? SP->_outchars : _nc_prescreen._outchars;
+}
+NCURSES_EXPORT(void)
+_nc_set_tputs_trace(const char *s)
+{
+    if (SP)
+	SP->_tputs_trace = s;
+    else
+	_nc_prescreen._tputs_trace = s;
+}
+NCURSES_EXPORT(void)
+_nc_count_outchars(long increment)
+{
+    if (SP)
+	SP->_outchars += increment;
+    else
+	_nc_prescreen._outchars += increment;
+}
+#else
 NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
 NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
+#endif
 
-static FILE *tracefp = 0;	/* default to writing to stderr */
+#define TraceFP		_nc_globals.trace_fp
+#define TracePath	_nc_globals.trace_fname
+#define TraceLevel	_nc_globals.trace_level
 
 NCURSES_EXPORT(void)
 trace(const unsigned int tracelevel)
 {
-    static bool been_here = FALSE;
-    static char my_name[PATH_MAX];
+    if ((TraceFP == 0) && tracelevel) {
+	const char *mode = _nc_globals.init_trace ? "ab" : "wb";
 
-    if ((tracefp == 0) && tracelevel) {
-	const char *mode = been_here ? "ab" : "wb";
-
-	if (*my_name == '\0') {
-	    if (getcwd(my_name, sizeof(my_name) - 10) == 0) {
+	if (TracePath[0] == '\0') {
+	    if (getcwd(TracePath, sizeof(TracePath) - 12) == 0) {
 		perror("curses: Can't get working directory");
 		exit(EXIT_FAILURE);
 	    }
-	    strcat(my_name, "/trace");
+	    strcat(TracePath, "/trace");
+	    if (_nc_is_dir_path(TracePath)) {
+		strcat(TracePath, ".log");
+	    }
 	}
 
-	been_here = TRUE;
+	_nc_globals.init_trace = TRUE;
 	_nc_tracing = tracelevel;
-	if (_nc_access(my_name, W_OK) < 0
-	    || (tracefp = fopen(my_name, mode)) == 0) {
+	if (_nc_access(TracePath, W_OK) < 0
+	    || (TraceFP = fopen(TracePath, mode)) == 0) {
 	    perror("curses: Can't open 'trace' file");
 	    exit(EXIT_FAILURE);
 	}
@@ -85,18 +117,18 @@
 	 * end of each line.  This is useful in case the program dies. 
 	 */
 #if HAVE_SETVBUF		/* ANSI */
-	(void) setvbuf(tracefp, (char *) 0, _IOLBF, 0);
+	(void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0);
 #elif HAVE_SETBUF		/* POSIX */
-	(void) setbuffer(tracefp, (char *) 0);
+	(void) setbuffer(TraceFP, (char *) 0);
 #endif
 	_tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)",
 		NCURSES_VERSION,
 		NCURSES_VERSION_PATCH,
 		tracelevel);
     } else if (tracelevel == 0) {
-	if (tracefp != 0) {
-	    fclose(tracefp);
-	    tracefp = 0;
+	if (TraceFP != 0) {
+	    fclose(TraceFP);
+	    TraceFP = 0;
 	}
 	_nc_tracing = tracelevel;
     } else if (_nc_tracing != tracelevel) {
@@ -105,13 +137,12 @@
     }
 }
 
-NCURSES_EXPORT(void)
-_tracef(const char *fmt,...)
+static void
+_nc_va_tracef(const char *fmt, va_list ap)
 {
     static const char Called[] = T_CALLED("");
     static const char Return[] = T_RETURN("");
-    static int level;
-    va_list ap;
+
     bool before = FALSE;
     bool after = FALSE;
     unsigned doit = _nc_tracing;
@@ -120,12 +151,12 @@
     if (strlen(fmt) >= sizeof(Called) - 1) {
 	if (!strncmp(fmt, Called, sizeof(Called) - 1)) {
 	    before = TRUE;
-	    level++;
+	    TraceLevel++;
 	} else if (!strncmp(fmt, Return, sizeof(Return) - 1)) {
 	    after = TRUE;
 	}
 	if (before || after) {
-	    if ((level <= 1)
+	    if ((TraceLevel <= 1)
 		|| (doit & TRACE_ICALLS) != 0)
 		doit &= (TRACE_CALLS | TRACE_CCALLS);
 	    else
@@ -134,25 +165,46 @@
     }
 
     if (doit != 0) {
-	if (tracefp == 0)
-	    tracefp = stderr;
+	if (TraceFP == 0)
+	    TraceFP = stderr;
+#ifdef USE_PTHREADS
+	/*
+	 * TRACE_ICALLS is "really" needed to show normal use with threaded
+	 * applications, since anything can be running during a napms(),
+	 * making it appear in the hierarchical trace as it other functions
+	 * are being called.
+	 *
+	 * Rather than add the complication of a per-thread stack, just
+	 * show the thread-id in each line of the trace.
+	 */
+	fprintf(TraceFP, "%#lx:", (long) pthread_self());
+#endif
 	if (before || after) {
 	    int n;
-	    for (n = 1; n < level; n++)
-		fputs("+ ", tracefp);
+	    for (n = 1; n < TraceLevel; n++)
+		fputs("+ ", TraceFP);
 	}
-	va_start(ap, fmt);
-	vfprintf(tracefp, fmt, ap);
-	fputc('\n', tracefp);
-	va_end(ap);
-	fflush(tracefp);
+	vfprintf(TraceFP, fmt, ap);
+	fputc('\n', TraceFP);
+	fflush(TraceFP);
     }
 
-    if (after && level)
-	level--;
+    if (after && TraceLevel)
+	TraceLevel--;
+
     errno = save_err;
 }
 
+NCURSES_EXPORT(void)
+_tracef(const char *fmt,...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    _nc_va_tracef(fmt, ap);
+    va_end(ap);
+}
+
 /* Trace 'bool' return-values */
 NCURSES_EXPORT(NCURSES_BOOL)
 _nc_retrace_bool(NCURSES_BOOL code)
@@ -224,4 +276,53 @@
     T((T_RETURN("%p"), code));
     return code;
 }
+
+#if USE_REENTRANT
+/*
+ * Check if the given trace-mask is enabled.
+ *
+ * This function may be called from within one of the functions that fills
+ * in parameters for _tracef(), but in that case we do not want to lock the
+ * mutex, since it is already locked.
+ */
+NCURSES_EXPORT(int)
+_nc_use_tracef(unsigned mask)
+{
+    bool result = FALSE;
+
+    _nc_lock_global(tst_tracef);
+    if (!_nc_globals.nested_tracef++) {
+	if ((result = (_nc_tracing & (mask))) != 0
+	    && _nc_try_global(tracef) == 0) {
+	    /* we will call _nc_locked_tracef(), no nesting so far */
+	} else {
+	    /* we will not call _nc_locked_tracef() */
+	    _nc_globals.nested_tracef = 0;
+	}
+    } else {
+	/* we may call _nc_locked_tracef(), but with nested_tracef > 0 */
+	result = (_nc_tracing & (mask));
+    }
+    _nc_unlock_global(tst_tracef);
+    return result;
+}
+
+/*
+ * We call this if _nc_use_tracef() returns true, which means we must unlock
+ * the tracef mutex.
+ */
+NCURSES_EXPORT(void)
+_nc_locked_tracef(const char *fmt,...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    _nc_va_tracef(fmt, ap);
+    va_end(ap);
+
+    if (--(_nc_globals.nested_tracef) == 0)
+	_nc_unlock_global(tracef);
+}
+#endif /* USE_REENTRANT */
+
 #endif /* TRACE */
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_traceatr.c ncurses-5.6/ncurses/trace/lib_traceatr.c
--- ncurses-5.6.orig/ncurses/trace/lib_traceatr.c	2006-12-02 16:18:28.000000000 -0500
+++ ncurses-5.6/ncurses/trace/lib_traceatr.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,33 +39,37 @@
 #include <curses.priv.h>
 #include <term.h>		/* acs_chars */
 
-MODULE_ID("$Id: lib_traceatr.c,v 1.56 2006/12/02 21:18:28 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.60 2008/05/31 16:53:15 tom Exp $")
 
 #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
 
 #ifdef TRACE
 
-static const char l_brace[] = {L_BRACE, 0};
-static const char r_brace[] = {R_BRACE, 0};
+static const char l_brace[] = StringOf(L_BRACE);
+static const char r_brace[] = StringOf(R_BRACE);
 
 #ifndef USE_TERMLIB
+
+#define my_buffer _nc_globals.traceatr_color_buf
+#define my_select _nc_globals.traceatr_color_sel
+#define my_cached _nc_globals.traceatr_color_last
+
 static char *
 color_of(int c)
 {
-    static char buffer[2][80];
-    static int sel;
-    static int last = -1;
-
-    if (c != last) {
-	last = c;
-	sel = !sel;
+    if (c != my_cached) {
+	my_cached = c;
+	my_select = !my_select;
 	if (c == COLOR_DEFAULT)
-	    strcpy(buffer[sel], "default");
+	    strcpy(my_buffer[my_select], "default");
 	else
-	    sprintf(buffer[sel], "color%d", c);
+	    sprintf(my_buffer[my_select], "color%d", c);
     }
-    return buffer[sel];
+    return my_buffer[my_select];
 }
+
+#undef my_buffer
+#undef my_select
 #endif /* !USE_TERMLIB */
 
 NCURSES_EXPORT(char *)
@@ -173,17 +177,19 @@
 const char *
 _nc_altcharset_name(attr_t attr, chtype ch)
 {
+    typedef struct {
+	unsigned int val;
+	const char *name;
+    } ALT_NAMES;
+
     const char *result = 0;
 
     if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
 	char *cp;
 	char *found = 0;
-	static const struct {
-	    unsigned int val;
-	    const char *name;
-	} names[] =
+	/* *INDENT-OFF* */
+	static const ALT_NAMES names[] =
 	{
-	    /* *INDENT-OFF* */
 	    { 'l', "ACS_ULCORNER" },	/* upper left corner */
 	    { 'm', "ACS_LLCORNER" },	/* lower left corner */
 	    { 'k', "ACS_URCORNER" },	/* upper right corner */
@@ -217,9 +223,9 @@
 	    { '|', "ACS_NEQUAL" },	/* not equal */
 	    { '}', "ACS_STERLING" },	/* UK pound sign */
 	    { '\0', (char *) 0 }
-		/* *INDENT-OFF* */
-	},
-	    *sp;
+	};
+	/* *INDENT-OFF* */
+	const ALT_NAMES *sp;
 
 	for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
 	    if (ChCharOf(cp[1]) == ChCharOf(ch)) {
@@ -249,7 +255,7 @@
     if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
 	(void) _nc_trace_bufcat(bufnum, found);
     } else
-	(void) _nc_trace_bufcat(bufnum, _tracechar((int)ChCharOf(ch)));
+	(void) _nc_trace_bufcat(bufnum, _nc_tracechar(SP, (int)ChCharOf(ch)));
 
     if (ChAttrOf(ch) != A_NORMAL) {
 	(void) _nc_trace_bufcat(bufnum, " | ");
@@ -305,14 +311,14 @@
 		if (PUTC_n <= 0) {
 		    if (PUTC_ch != L'\0') {
 			/* it could not be a multibyte sequence */
-			(void) _nc_trace_bufcat(bufnum, _tracechar(UChar(ch->chars[PUTC_i])));
+			(void) _nc_trace_bufcat(bufnum, _nc_tracechar(SP, UChar(ch->chars[PUTC_i])));
 		    }
 		    break;
 		}
 		for (n = 0; n < PUTC_n; n++) {
 		    if (n)
 			(void) _nc_trace_bufcat(bufnum, ", ");
-		    (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(PUTC_buf[n])));
+		    (void) _nc_trace_bufcat(bufnum, _nc_tracechar(SP, UChar(PUTC_buf[n])));
 		}
 	    }
 	    (void) _nc_trace_bufcat(bufnum, " }");
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_tracebits.c ncurses-5.6/ncurses/trace/lib_tracebits.c
--- ncurses-5.6.orig/ncurses/trace/lib_tracebits.c	2006-12-09 20:33:00.000000000 -0500
+++ ncurses-5.6/ncurses/trace/lib_tracebits.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,7 +35,7 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_tracebits.c,v 1.13 2006/12/10 01:33:00 tom Exp $")
+MODULE_ID("$Id: lib_tracebits.c,v 1.15 2007/06/30 16:14:20 tom Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
@@ -53,10 +53,27 @@
 #ifndef TOSTOP
 #define TOSTOP 0
 #endif
+
 #ifndef IEXTEN
 #define IEXTEN 0
 #endif
 
+#ifndef ONLCR
+#define ONLCR 0
+#endif
+
+#ifndef OCRNL
+#define OCRNL 0
+#endif
+
+#ifndef ONOCR
+#define ONOCR 0
+#endif
+
+#ifndef ONLRET
+#define ONLRET 0
+#endif
+
 #ifdef TRACE
 
 typedef struct {
@@ -108,8 +125,12 @@
     {
 	{OPOST, "OPOST"},
 	{OFLAGS_TABS, "XTABS"},
+	{ONLCR, "ONLCR"},
+	{OCRNL, "OCRNL"},
+	{ONOCR, "ONOCR"},
+	{ONLRET, "ONLRET"},
 	{0, NULL}
-#define ALLOUT	(OPOST)
+#define ALLOUT	(OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET)
     }, cflags[] =
     {
 	{CLOCAL, "CLOCAL"},
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_tracechr.c ncurses-5.6/ncurses/trace/lib_tracechr.c
--- ncurses-5.6.orig/ncurses/trace/lib_tracechr.c	2005-04-16 12:55:46.000000000 -0400
+++ ncurses-5.6/ncurses/trace/lib_tracechr.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,34 +39,43 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracechr.c,v 1.12 2005/04/16 16:55:46 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.17 2008/05/31 19:57:47 tom Exp $")
 
 #ifdef TRACE
+
 NCURSES_EXPORT(char *)
-_tracechar(int ch)
+_nc_tracechar(SCREEN *sp, int ch)
 {
-    static char result[40];
     NCURSES_CONST char *name;
+    char *MyBuffer = ((sp != 0)
+		      ? sp->tracechr_buf
+		      : _nc_globals.tracechr_buf);
 
     if (ch > KEY_MIN || ch < 0) {
-	name = keyname(ch);
+	name = _nc_keyname(sp, ch);
 	if (name == 0 || *name == '\0')
 	    name = "NULL";
-	(void) sprintf(result, "'%.30s' = %#03o", name, ch);
+	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
     } else if (!is8bits(ch) || !isprint(UChar(ch))) {
 	/*
 	 * workaround for glibc bug:
 	 * sprintf changes the result from unctrl() to an empty string if it
 	 * does not correspond to a valid multibyte sequence.
 	 */
-	(void) sprintf(result, "%#03o", ch);
+	(void) sprintf(MyBuffer, "%#03o", ch);
     } else {
-	name = unctrl((chtype) ch);
+	name = _nc_unctrl(sp, (chtype) ch);
 	if (name == 0 || *name == 0)
 	    name = "null";	/* shouldn't happen */
-	(void) sprintf(result, "'%.30s' = %#03o", name, ch);
+	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
     }
-    return (result);
+    return (MyBuffer);
+}
+
+NCURSES_EXPORT(char *)
+_tracechar(int ch)
+{
+    return _nc_tracechar(SP, ch);
 }
 #else
 empty_module(_nc_lib_tracechr)
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_tracedmp.c ncurses-5.6/ncurses/trace/lib_tracedmp.c
--- ncurses-5.6.orig/ncurses/trace/lib_tracedmp.c	2006-10-14 16:43:31.000000000 -0400
+++ ncurses-5.6/ncurses/trace/lib_tracedmp.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,15 +39,16 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracedmp.c,v 1.27 2006/10/14 20:43:31 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.29 2007/06/30 23:01:19 tom Exp $")
 
 #ifdef TRACE
+
+#define my_buffer _nc_globals.tracedmp_buf
+#define my_length _nc_globals.tracedmp_used
+
 NCURSES_EXPORT(void)
 _tracedump(const char *name, WINDOW *win)
 {
-    static char *buf = 0;
-    static size_t used = 0;
-
     int i, j, n, width;
 
     /* compute narrowest possible display width */
@@ -66,13 +67,13 @@
     }
     if (width < win->_maxx)
 	++width;
-    if (++width + 1 > (int) used) {
-	used = 2 * (width + 1);
-	buf = typeRealloc(char, used, buf);
+    if (++width + 1 > (int) my_length) {
+	my_length = 2 * (width + 1);
+	my_buffer = typeRealloc(char, my_length, my_buffer);
     }
 
     for (n = 0; n <= win->_maxy; ++n) {
-	char *ep = buf;
+	char *ep = my_buffer;
 	bool haveattrs, havecolors;
 
 	/*
@@ -99,6 +100,30 @@
 		(long) win->_line[n].lastchar,
 		ep);
 
+	/* if there are multi-column characters on the line, print them now */
+	if_WIDEC({
+	    bool multicolumn = FALSE;
+	    for (j = 0; j < width; ++j)
+		if (WidecExt(win->_line[n].text[j]) != 0) {
+		    multicolumn = TRUE;
+		    break;
+		}
+	    if (multicolumn) {
+		ep = my_buffer;
+		for (j = 0; j < width; ++j) {
+		    int test = WidecExt(win->_line[n].text[j]);
+		    if (test) {
+			ep[j] = test + '0';
+		    } else {
+			ep[j] = ' ';
+		    }
+		}
+		ep[j] = '\0';
+		_tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
+			"widec", n, 8, " ", my_buffer);
+	    }
+	});
+
 	/* dump A_COLOR part, will screw up if there are more than 96 */
 	havecolors = FALSE;
 	for (j = 0; j < width; ++j)
@@ -107,7 +132,7 @@
 		break;
 	    }
 	if (havecolors) {
-	    ep = buf;
+	    ep = my_buffer;
 	    for (j = 0; j < width; ++j) {
 		int pair = GetPair(win->_line[n].text[j]);
 		if (pair >= 52)
@@ -123,7 +148,7 @@
 	    }
 	    ep[j] = '\0';
 	    _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
-		    "colors", n, 8, " ", buf);
+		    "colors", n, 8, " ", my_buffer);
 	}
 
 	for (i = 0; i < 4; ++i) {
@@ -137,20 +162,20 @@
 		    break;
 		}
 	    if (haveattrs) {
-		ep = buf;
+		ep = my_buffer;
 		for (j = 0; j < width; ++j)
 		    ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >>
 				((i + 4) * 4)];
 		ep[j] = '\0';
 		_tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) -
-			1, "attrs", i, n, 8, " ", buf);
+			1, "attrs", i, n, 8, " ", my_buffer);
 	    }
 	}
     }
 #if NO_LEAKS
-    free(buf);
-    buf = 0;
-    used = 0;
+    free(my_buffer);
+    my_buffer = 0;
+    my_length = 0;
 #endif
 }
 
diff -Naur ncurses-5.6.orig/ncurses/trace/lib_tracemse.c ncurses-5.6/ncurses/trace/lib_tracemse.c
--- ncurses-5.6.orig/ncurses/trace/lib_tracemse.c	2005-06-11 15:53:50.000000000 -0400
+++ ncurses-5.6/ncurses/trace/lib_tracemse.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,30 +38,23 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracemse.c,v 1.12 2005/06/11 19:53:50 tom Exp $")
+MODULE_ID("$Id: lib_tracemse.c,v 1.14 2008/05/31 17:20:25 tom Exp $")
 
 #ifdef TRACE
 
+#define my_buffer sp->tracemse_buf
+
 NCURSES_EXPORT(char *)
-_tracemouse(MEVENT const *ep)
+_nc_tracemouse(SCREEN *sp, MEVENT const *ep)
 {
-    /*
-     * hmm - format is no longer than 80 columns, there are 5 numbers that
-     * could at most have 10 digits, and the mask contains no more than 32 bits
-     * with each bit representing less than 15 characters.  Usually the whole
-     * string is less than 80 columns, but this buffer size is an absolute
-     * limit.
-     */
-    static char buf[80 + (5 * 10) + (32 * 15)];
-
-    (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
+    (void) sprintf(my_buffer, TRACEMSE_FMT,
 		   ep->id,
 		   ep->x,
 		   ep->y,
 		   ep->z,
 		   (unsigned long) ep->bstate);
 
-#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(buf, s), ", ")
+#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(my_buffer, s), ", ")
 
     SHOW(BUTTON1_RELEASED, "release-1");
     SHOW(BUTTON1_PRESSED, "press-1");
@@ -115,10 +108,16 @@
 
 #undef SHOW
 
-    if (buf[strlen(buf) - 1] == ' ')
-	buf[strlen(buf) - 2] = '\0';
-    (void) strcat(buf, "}");
-    return (buf);
+    if (my_buffer[strlen(my_buffer) - 1] == ' ')
+	my_buffer[strlen(my_buffer) - 2] = '\0';
+    (void) strcat(my_buffer, "}");
+    return (my_buffer);
+}
+
+NCURSES_EXPORT(char *)
+_tracemouse(MEVENT const *ep)
+{
+    return _nc_tracemouse(SP, ep);
 }
 
 #else /* !TRACE */
diff -Naur ncurses-5.6.orig/ncurses/trace/trace_buf.c ncurses-5.6/ncurses/trace/trace_buf.c
--- ncurses-5.6.orig/ncurses/trace/trace_buf.c	2003-03-15 16:21:36.000000000 -0500
+++ ncurses-5.6/ncurses/trace/trace_buf.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,46 +35,42 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: trace_buf.c,v 1.12 2003/03/15 21:21:36 tom Exp $")
+MODULE_ID("$Id: trace_buf.c,v 1.13 2007/04/21 22:50:08 tom Exp $")
 
-typedef struct {
-    char *text;
-    size_t size;
-} LIST;
+#define MyList _nc_globals.tracebuf_ptr
+#define MySize _nc_globals.tracebuf_used
 
 static char *
 _nc_trace_alloc(int bufnum, size_t want)
 {
     char *result = 0;
-    static LIST *list;
-    static size_t have;
 
     if (bufnum >= 0) {
-	if ((size_t) (bufnum + 1) > have) {
+	if ((size_t) (bufnum + 1) > MySize) {
 	    size_t need = (bufnum + 1) * 2;
-	    if ((list = typeRealloc(LIST, need, list)) == 0)
+	    if ((MyList = typeRealloc(TRACEBUF, need, MyList)) == 0)
 		return (0);
-	    while (need > have)
-		list[have++].text = 0;
+	    while (need > MySize)
+		MyList[MySize++].text = 0;
 	}
 
-	if (list[bufnum].text == 0
-	    || want > list[bufnum].size) {
-	    if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text))
-		!= 0)
-		  list[bufnum].size = want;
+	if (MyList[bufnum].text == 0
+	    || want > MyList[bufnum].size) {
+	    MyList[bufnum].text = typeRealloc(char, want, MyList[bufnum].text);
+	    if (MyList[bufnum].text != 0)
+		MyList[bufnum].size = want;
 	}
 
-	result = list[bufnum].text;
+	result = MyList[bufnum].text;
     }
 #if NO_LEAKS
     else {
-	if (have) {
-	    while (have--) {
-		if (list[have].text != 0)
-		    free(list[have].text);
+	if (MySize) {
+	    while (MySize--) {
+		if (MyList[MySize].text != 0)
+		    free(MyList[MySize].text);
 	    }
-	    free(list);
+	    free(MyList);
 	}
     }
 #endif
diff -Naur ncurses-5.6.orig/ncurses/trace/trace_tries.c ncurses-5.6/ncurses/trace/trace_tries.c
--- ncurses-5.6.orig/ncurses/trace/trace_tries.c	2001-10-20 18:42:51.000000000 -0400
+++ ncurses-5.6/ncurses/trace/trace_tries.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,25 +35,27 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: trace_tries.c,v 1.10 2001/10/20 22:42:51 tom Exp $")
+MODULE_ID("$Id: trace_tries.c,v 1.12 2007/04/21 21:55:41 tom Exp $")
 
 #ifdef TRACE
-static unsigned char *buffer;
-static unsigned len;
+#define my_buffer _nc_globals.tracetry_buf
+#define my_length _nc_globals.tracetry_used
 
 static void
-recur_tries(struct tries *tree, unsigned level)
+recur_tries(TRIES * tree, unsigned level)
 {
-    if (level > len)
-	buffer = (unsigned char *) realloc(buffer, len = (level + 1) * 4);
+    if (level > my_length) {
+	my_length = (level + 1) * 4;
+	my_buffer = (unsigned char *) realloc(my_buffer, my_length);
+    }
 
     while (tree != 0) {
-	if ((buffer[level] = tree->ch) == 0)
-	    buffer[level] = 128;
-	buffer[level + 1] = 0;
+	if ((my_buffer[level] = tree->ch) == 0)
+	    my_buffer[level] = 128;
+	my_buffer[level + 1] = 0;
 	if (tree->value != 0) {
 	    _tracef("%5d: %s (%s)", tree->value,
-		    _nc_visbuf((char *) buffer), keyname(tree->value));
+		    _nc_visbuf((char *) my_buffer), keyname(tree->value));
 	}
 	if (tree->child)
 	    recur_tries(tree->child, level + 1);
@@ -62,13 +64,13 @@
 }
 
 NCURSES_EXPORT(void)
-_nc_trace_tries(struct tries *tree)
+_nc_trace_tries(TRIES * tree)
 {
-    buffer = typeMalloc(unsigned char, len = 80);
+    my_buffer = typeMalloc(unsigned char, my_length = 80);
     _tracef("BEGIN tries %p", tree);
     recur_tries(tree, 0);
     _tracef(". . . tries %p", tree);
-    free(buffer);
+    free(my_buffer);
 }
 
 #else
diff -Naur ncurses-5.6.orig/ncurses/trace/varargs.c ncurses-5.6/ncurses/trace/varargs.c
--- ncurses-5.6.orig/ncurses/trace/varargs.c	2003-05-24 17:10:28.000000000 -0400
+++ ncurses-5.6/ncurses/trace/varargs.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2002,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2003,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: varargs.c,v 1.4 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: varargs.c,v 1.6 2007/07/14 15:51:27 tom Exp $")
 
 #ifdef TRACE
 
@@ -49,6 +49,9 @@
 #define VA_PTR(type) pval = (char *)va_arg(ap, type)
 #define VA_STR(type) sval = va_arg(ap, type)
 
+#define MyBuffer _nc_globals.tracearg_buf
+#define MyLength _nc_globals.tracearg_used
+
 /*
  * Returns a string that represents the parameter list of a printf-style call.
  */
@@ -56,8 +59,6 @@
 _nc_varargs(const char *fmt, va_list ap)
 {
     static char dummy[] = "";
-    static char *result_buf;
-    static size_t result_len;
 
     char buffer[BUFSIZ];
     const char *param;
@@ -65,11 +66,11 @@
 
     if (fmt == 0 || *fmt == '\0')
 	return dummy;
-    if (result_len == 0)
-	result_buf = typeMalloc(char, result_len = BUFSIZ);
-    if (result_buf == 0)
+    if (MyLength == 0)
+	MyBuffer = typeMalloc(char, MyLength = BUFSIZ);
+    if (MyBuffer == 0)
 	return dummy;
-    *result_buf = '\0';
+    *MyBuffer = '\0';
 
     while (*fmt != '\0') {
 	if (*fmt == '%') {
@@ -159,13 +160,14 @@
 			case atString:
 			    param = _nc_visbuf2(1, sval);
 			    break;
+			case atUnknown:
 			default:
 			    strcpy(buffer, "?");
 			    break;
 			}
-			result_len += strlen(param) + 2;
-			result_buf = typeRealloc(char, result_len, result_buf);
-			sprintf(result_buf + strlen(result_buf), ", %s", param);
+			MyLength += strlen(param) + 2;
+			MyBuffer = typeRealloc(char, MyLength, MyBuffer);
+			sprintf(MyBuffer + strlen(MyBuffer), ", %s", param);
 		    }
 		}
 		used = atUnknown;
@@ -175,7 +177,7 @@
 	}
     }
 
-    return (result_buf);
+    return (MyBuffer);
 }
 #else
 empty_module(_nc_varargs)
diff -Naur ncurses-5.6.orig/ncurses/trace/visbuf.c ncurses-5.6/ncurses/trace/visbuf.c
--- ncurses-5.6.orig/ncurses/trace/visbuf.c	2006-12-02 16:20:28.000000000 -0500
+++ ncurses-5.6/ncurses/trace/visbuf.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,11 +42,16 @@
 #include <tic.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: visbuf.c,v 1.21 2006/12/02 21:20:28 tom Exp $")
+MODULE_ID("$Id: visbuf.c,v 1.26 2007/06/09 17:21:53 tom Exp $")
 
-static const char d_quote[] = {D_QUOTE, 0};
-static const char l_brace[] = {L_BRACE, 0};
-static const char r_brace[] = {R_BRACE, 0};
+#define NormalLen(len) (unsigned) ((len + 1) * 4)
+#define WideLen(len)   (unsigned) ((len + 1) * 4 * MB_CUR_MAX)
+
+#ifdef TRACE
+static const char d_quote[] = StringOf(D_QUOTE);
+static const char l_brace[] = StringOf(L_BRACE);
+static const char r_brace[] = StringOf(R_BRACE);
+#endif
 
 static char *
 _nc_vischar(char *tp, unsigned c)
@@ -68,6 +73,10 @@
     } else if (c == '\033') {
 	*tp++ = '\\';
 	*tp++ = 'e';
+    } else if (UChar(c) == 0x7f) {
+	*tp++ = '\\';
+	*tp++ = '^';
+	*tp++ = '?';
     } else if (is7bits(c) && iscntrl(UChar(c))) {
 	*tp++ = '\\';
 	*tp++ = '^';
@@ -96,11 +105,11 @@
 	len = strlen(buf);
 
 #ifdef TRACE
-    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
+    tp = vbuf = _nc_trace_buf(bufnum, NormalLen(len));
 #else
     {
-	static char *mybuf[2];
-	mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
+	static char *mybuf[4];
+	mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]);
 	tp = vbuf = mybuf[bufnum];
     }
 #endif
@@ -161,11 +170,11 @@
 	len = wcslen(buf);
 
 #ifdef TRACE
-    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
+    tp = vbuf = _nc_trace_buf(bufnum, WideLen(len));
 #else
     {
 	static char *mybuf[2];
-	mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
+	mybuf[bufnum] = typeRealloc(char, WideLen(len), mybuf[bufnum]);
 	tp = vbuf = mybuf[bufnum];
     }
 #endif
@@ -259,7 +268,8 @@
 	result = _nc_trace_bufcat(bufnum, l_brace);
 	result = _nc_trace_bufcat(bufnum, d_quote);
 	for (j = first; j <= last; ++j) {
-	    if ((found = _nc_altcharset_name(attr, (chtype) CharOf(buf[j]))) != 0) {
+	    found = _nc_altcharset_name(attr, (chtype) CharOf(buf[j]));
+	    if (found != 0) {
 		result = _nc_trace_bufcat(bufnum, found);
 		attr &= ~A_ALTCHARSET;
 	    } else
diff -Naur ncurses-5.6.orig/ncurses/tty/hardscroll.c ncurses-5.6/ncurses/tty/hardscroll.c
--- ncurses-5.6.orig/ncurses/tty/hardscroll.c	2001-01-13 19:17:28.000000000 -0500
+++ ncurses-5.6/ncurses/tty/hardscroll.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -145,7 +145,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: hardscroll.c,v 1.36 2001/01/14 00:17:28 tom Exp $")
+MODULE_ID("$Id: hardscroll.c,v 1.41 2007/09/29 21:48:36 tom Exp $")
 
 #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
 
@@ -158,22 +158,25 @@
 # undef TR
 # define TR(n, a)	if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
 
+extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
+
 #else /* no debug */
 
 /* OLDNUM(n) indicates which line will be shifted to the position n.
    if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
    somewhere. */
 NCURSES_EXPORT_VAR(int *)
-_nc_oldnums = 0;
+_nc_oldnums = 0;		/* obsolete: keep for ABI compat */
 
 # if USE_HASHMAP
-     static int oldnums_allocated = 0;
-#  define oldnums       _nc_oldnums
+#  define oldnums       SP->_oldnum_list
 #  define OLDNUM(n)	oldnums[n]
 # else				/* !USE_HASHMAP */
 #  define OLDNUM(n)	newscr->_line[n].oldindex
 # endif				/* !USE_HASHMAP */
 
+#define OLDNUM_SIZE     SP->_oldnum_size
+
 #endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
 
 NCURSES_EXPORT(void)
@@ -183,17 +186,17 @@
     int i;
     int start, end, shift;
 
-    TR(TRACE_ICALLS, ("_nc_scroll_optimize() begins"));
+    TR(TRACE_ICALLS, (T_CALLED("_nc_scroll_optimize")));
 
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 #if USE_HASHMAP
     /* get enough storage */
-    if (oldnums_allocated < screen_lines) {
+    if (OLDNUM_SIZE < screen_lines) {
 	int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
 	if (!new_oldnums)
 	    return;
 	oldnums = new_oldnums;
-	oldnums_allocated = screen_lines;
+	OLDNUM_SIZE = screen_lines;
     }
     /* calculate the indices */
     _nc_hash_map();
@@ -201,8 +204,10 @@
 #endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
 
 #ifdef TRACE
-    if (_nc_tracing & (TRACE_UPDATE | TRACE_MOVE))
+    if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
 	_nc_linedump();
+	_nc_unlock_global(tracef);
+    }
 #endif /* TRACE */
 
     /* pass 1 - from top to bottom scrolling up */
@@ -253,6 +258,7 @@
 	}
 #endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
     }
+    TR(TRACE_ICALLS, (T_RETURN("")));
 }
 
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
@@ -260,23 +266,17 @@
 _nc_linedump(void)
 /* dump the state of the real and virtual oldnum fields */
 {
-    static size_t have;
-    static char *buf;
-
     int n;
+    char *buf = 0;
     size_t want = (screen_lines + 1) * 4;
 
-    if (have < want)
-	buf = typeMalloc(char, have = want);
+    buf = typeMalloc(char, want);
 
     (void) strcpy(buf, "virt");
     for (n = 0; n < screen_lines; n++)
 	(void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n));
     TR(TRACE_UPDATE | TRACE_MOVE, (buf));
-#if NO_LEAKS
     free(buf);
-    have = 0;
-#endif
 }
 #endif /* defined(TRACE) || defined(SCROLLDEBUG) */
 
diff -Naur ncurses-5.6.orig/ncurses/tty/hashmap.c ncurses-5.6/ncurses/tty/hashmap.c
--- ncurses-5.6.orig/ncurses/tty/hashmap.c	2006-03-11 14:33:49.000000000 -0500
+++ ncurses-5.6/ncurses/tty/hashmap.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -70,7 +70,7 @@
 #include <curses.priv.h>
 #include <term.h>		/* for back_color_erase */
 
-MODULE_ID("$Id: hashmap.c,v 1.49 2006/03/11 19:33:49 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.56 2007/10/13 18:47:25 Miroslav.Lichvar Exp $")
 
 #ifdef HASHDEBUG
 
@@ -81,7 +81,8 @@
 # define screen_lines MAXLINES
 # define TEXTWIDTH	1
 int oldnums[MAXLINES], reallines[MAXLINES];
-static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH];
+static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH];
+static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH];
 # define OLDNUM(n)	oldnums[n]
 # define OLDTEXT(n)	oldtext[n]
 # define NEWTEXT(m)	newtext[m]
@@ -89,7 +90,7 @@
 
 #else /* !HASHDEBUG */
 
-# define OLDNUM(n)	_nc_oldnums[n]
+# define OLDNUM(n)	SP->_oldnum_list[n]
 # define OLDTEXT(n)	curscr->_line[n].text
 # define NEWTEXT(m)	newscr->_line[m].text
 # define TEXTWIDTH	(curscr->_maxx+1)
@@ -130,8 +131,8 @@
     int cost = 0;
     int i;
 
-    for (i = TEXTWIDTH; i > 0; i--)
-	if (!(CharEq(*from++, *to++)))
+    for (i = TEXTWIDTH; i > 0; i--, from++, to++)
+	if (!(CharEq(*from, *to)))
 	    cost++;
 
     return cost;
@@ -147,8 +148,8 @@
     if (back_color_erase)
 	SetPair(blank, GetPair(stdscr->_nc_bkgd));
 
-    for (i = TEXTWIDTH; i > 0; i--)
-	if (!(CharEq(blank, *to++)))
+    for (i = TEXTWIDTH; i > 0; i--, to++)
+	if (!(CharEq(blank, *to)))
 	    cost++;
 
     return cost;
@@ -446,11 +447,14 @@
     char line[BUFSIZ], *st;
     int n;
 
-    SP = typeCalloc(SCREEN, 1);
+    if (setupterm(NULL, fileno(stdout), (int *) 0) == ERR)
+	return EXIT_FAILURE;
+    (void) _nc_alloc_screen();
+
     for (n = 0; n < screen_lines; n++) {
 	reallines[n] = n;
 	oldnums[n] = _NEWINDEX;
-	oldtext[n][0] = newtext[n][0] = '.';
+	CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.';
     }
 
     if (isatty(fileno(stdin)))
@@ -462,7 +466,7 @@
     for (;;) {
 	/* grab a test command */
 	if (fgets(line, sizeof(line), stdin) == (char *) NULL)
-	    exit(EXIT_SUCCESS);
+	    break;
 
 	switch (line[0]) {
 	case '#':		/* comment */
@@ -484,22 +488,22 @@
 
 	case 'n':		/* use following letters as text of new lines */
 	    for (n = 0; n < screen_lines; n++)
-		newtext[n][0] = '.';
+		CharOf(newtext[n][0]) = '.';
 	    for (n = 0; n < screen_lines; n++)
 		if (line[n + 1] == '\n')
 		    break;
 		else
-		    newtext[n][0] = line[n + 1];
+		    CharOf(newtext[n][0]) = line[n + 1];
 	    break;
 
 	case 'o':		/* use following letters as text of old lines */
 	    for (n = 0; n < screen_lines; n++)
-		oldtext[n][0] = '.';
+		CharOf(oldtext[n][0]) = '.';
 	    for (n = 0; n < screen_lines; n++)
 		if (line[n + 1] == '\n')
 		    break;
 		else
-		    oldtext[n][0] = line[n + 1];
+		    CharOf(oldtext[n][0]) = line[n + 1];
 	    break;
 
 	case 'd':		/* dump state of test arrays */
@@ -508,12 +512,12 @@
 #endif
 	    (void) fputs("Old lines: [", stdout);
 	    for (n = 0; n < screen_lines; n++)
-		putchar(oldtext[n][0]);
+		putchar(CharOf(oldtext[n][0]));
 	    putchar(']');
 	    putchar('\n');
 	    (void) fputs("New lines: [", stdout);
 	    for (n = 0; n < screen_lines; n++)
-		putchar(newtext[n][0]);
+		putchar(CharOf(newtext[n][0]));
 	    putchar(']');
 	    putchar('\n');
 	    break;
@@ -527,12 +531,17 @@
 	    _nc_scroll_optimize();
 	    (void) fputs("Done.\n", stderr);
 	    break;
+	default:
 	case '?':
 	    usage();
 	    break;
 	}
     }
+#if NO_LEAKS
+    _nc_free_and_exit(EXIT_SUCCESS);
+#else
     return EXIT_SUCCESS;
+#endif
 }
 
 #endif /* HASHDEBUG */
diff -Naur ncurses-5.6.orig/ncurses/tty/lib_mvcur.c ncurses-5.6/ncurses/tty/lib_mvcur.c
--- ncurses-5.6.orig/ncurses/tty/lib_mvcur.c	2006-11-25 17:31:59.000000000 -0500
+++ ncurses-5.6/ncurses/tty/lib_mvcur.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -155,7 +155,7 @@
 #include <term.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_mvcur.c,v 1.107 2006/11/25 22:31:59 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.111 2008/05/24 14:36:54 Miroslav.Lichvar Exp $")
 
 #define WANT_CHAR(y, x)	SP->_newscr->_line[y].text[x]	/* desired state */
 #define BAUDRATE	cur_term->_baudrate	/* bits per second */
@@ -426,8 +426,11 @@
     mvcur(-1, -1, screen_lines - 1, 0);
 
     /* set cursor to normal mode */
-    if (SP->_cursor != -1)
+    if (SP->_cursor != -1) {
+	int cursor = SP->_cursor;
 	curs_set(1);
+	SP->_cursor = cursor;
+    }
 
     if (exit_ca_mode) {
 	TPUTS_TRACE("exit_ca_mode");
@@ -959,6 +962,7 @@
 
 #include <tic.h>
 #include <dump_entry.h>
+#include <time.h>
 
 NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
 
@@ -1017,7 +1021,7 @@
 int
 main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
 {
-    (void) strcpy(tname, termname());
+    strcpy(tname, getenv("TERM"));
     load_term();
     _nc_setupscreen(lines, columns, stdout, FALSE, 0);
     baudrate();
@@ -1088,7 +1092,7 @@
 	    load_term();
 	} else if (sscanf(buf, "d %s", capname) == 1) {
 	    struct name_table_entry const *np = _nc_find_entry(capname,
-							       _nc_info_hash_table);
+							       _nc_get_hash_table(FALSE));
 
 	    if (np == NULL)
 		(void) printf("No such capability as \"%s\"\n", capname);
@@ -1116,7 +1120,7 @@
 	    }
 	} else if (buf[0] == 'i') {
 	    dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
-	    dump_entry(&cur_term->type, FALSE, TRUE, 0, 0, 0);
+	    dump_entry(&cur_term->type, FALSE, TRUE, 0, 0);
 	    putchar('\n');
 	} else if (buf[0] == 'o') {
 	    if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
diff -Naur ncurses-5.6.orig/ncurses/tty/lib_tstp.c ncurses-5.6/ncurses/tty/lib_tstp.c
--- ncurses-5.6.orig/ncurses/tty/lib_tstp.c	2006-04-01 14:31:34.000000000 -0500
+++ ncurses-5.6/ncurses/tty/lib_tstp.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -46,7 +46,7 @@
 #define _POSIX_SOURCE
 #endif
 
-MODULE_ID("$Id: lib_tstp.c,v 1.32 2006/04/01 19:31:34 tom Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.37 2008/05/03 16:24:56 tom Exp $")
 
 #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
 #define USE_SIGTSTP 1
@@ -234,14 +234,12 @@
 static void
 cleanup(int sig)
 {
-    static int nested;
-
     /*
      * Actually, doing any sort of I/O from within an signal handler is
      * "unsafe".  But we'll _try_ to clean up the screen and terminal
      * settings on the way out.
      */
-    if (!nested++
+    if (!_nc_globals.cleanup_nested++
 	&& (sig == SIGINT
 	    || sig == SIGQUIT)) {
 #if HAVE_SIGACTION || HAVE_SIGVEC
@@ -254,19 +252,17 @@
 	if (signal(sig, SIG_IGN) != SIG_ERR)
 #endif
 	{
-	    SCREEN *scan = _nc_screen_chain;
-	    while (scan) {
-		if (SP != 0
-		    && SP->_ofp != 0
-		    && isatty(fileno(SP->_ofp))) {
-		    SP->_cleanup = TRUE;
-		    SP->_outch = _nc_outch;
+	    SCREEN *scan;
+	    for (each_screen(scan)) {
+		if (scan->_ofp != 0
+		    && isatty(fileno(scan->_ofp))) {
+		    scan->_cleanup = TRUE;
+		    scan->_outch = _nc_outch;
 		}
 		set_term(scan);
 		endwin();
 		if (SP)
 		    SP->_endwin = FALSE;	/* in case we have an atexit! */
-		scan = scan->_next_screen;
 	    }
 	}
     }
@@ -277,7 +273,7 @@
 static void
 sigwinch(int sig GCC_UNUSED)
 {
-    _nc_handle_sigwinch(-1);
+    _nc_globals.have_sigwinch = 1;
 }
 #endif /* USE_SIGWINCH */
 
@@ -351,29 +347,27 @@
 NCURSES_EXPORT(void)
 _nc_signal_handler(bool enable)
 {
-    static bool initialized = FALSE;
-
     T((T_CALLED("_nc_signal_handler(%d)"), enable));
 #if USE_SIGTSTP			/* Xenix 2.x doesn't have SIGTSTP, for example */
     {
 	static bool ignore_tstp = FALSE;
 
 	if (!ignore_tstp) {
-	    static sigaction_t act, oact;
+	    static sigaction_t new_sigaction, old_sigaction;
 
 	    if (!enable) {
-		act.sa_handler = SIG_IGN;
-		sigaction(SIGTSTP, &act, &oact);
-	    } else if (act.sa_handler != SIG_DFL) {
-		sigaction(SIGTSTP, &oact, NULL);
-	    } else if (sigaction(SIGTSTP, NULL, &oact) == 0
-		       && (oact.sa_handler == SIG_DFL)) {
-		sigemptyset(&act.sa_mask);
+		new_sigaction.sa_handler = SIG_IGN;
+		sigaction(SIGTSTP, &new_sigaction, &old_sigaction);
+	    } else if (new_sigaction.sa_handler != SIG_DFL) {
+		sigaction(SIGTSTP, &old_sigaction, NULL);
+	    } else if (sigaction(SIGTSTP, NULL, &old_sigaction) == 0
+		       && (old_sigaction.sa_handler == SIG_DFL)) {
+		sigemptyset(&new_sigaction.sa_mask);
 #ifdef SA_RESTART
-		act.sa_flags |= SA_RESTART;
+		new_sigaction.sa_flags |= SA_RESTART;
 #endif /* SA_RESTART */
-		act.sa_handler = tstp;
-		(void) sigaction(SIGTSTP, &act, NULL);
+		new_sigaction.sa_handler = tstp;
+		(void) sigaction(SIGTSTP, &new_sigaction, NULL);
 	    } else {
 		ignore_tstp = TRUE;
 	    }
@@ -381,14 +375,14 @@
     }
 #endif /* !USE_SIGTSTP */
 
-    if (!initialized) {
+    if (!_nc_globals.init_signals) {
 	if (enable) {
 	    CatchIfDefault(SIGINT, cleanup);
 	    CatchIfDefault(SIGTERM, cleanup);
 #if USE_SIGWINCH
 	    CatchIfDefault(SIGWINCH, sigwinch);
 #endif
-	    initialized = TRUE;
+	    _nc_globals.init_signals = TRUE;
 	}
     }
     returnVoid;
diff -Naur ncurses-5.6.orig/ncurses/tty/lib_twait.c ncurses-5.6/ncurses/tty/lib_twait.c
--- ncurses-5.6.orig/ncurses/tty/lib_twait.c	2006-05-27 17:57:43.000000000 -0400
+++ ncurses-5.6/ncurses/tty/lib_twait.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -61,38 +62,36 @@
 # endif
 #endif
 
-MODULE_ID("$Id: lib_twait.c,v 1.51 2006/05/27 21:57:43 tom Exp $")
+#undef CUR
+
+MODULE_ID("$Id: lib_twait.c,v 1.58 2008/05/24 15:08:01 tom Exp $")
 
 static long
-_nc_gettime(bool first)
+_nc_gettime(TimeType * t0, bool first)
 {
     long res;
 
-#if HAVE_GETTIMEOFDAY
-# define PRECISE_GETTIME 1
-    static struct timeval t0;
-    struct timeval t1;
+#if PRECISE_GETTIME
+    TimeType t1;
     gettimeofday(&t1, (struct timezone *) 0);
     if (first) {
-	t0 = t1;
+	*t0 = t1;
 	res = 0;
     } else {
 	/* .tv_sec and .tv_usec are unsigned, be careful when subtracting */
-	if (t0.tv_usec > t1.tv_usec) {	/* Convert 1s in 1e6 microsecs */
-	    t1.tv_usec += 1000000;
+	if (t0->tv_usec > t1.tv_usec) {
+	    t1.tv_usec += 1000000;	/* Convert 1s in 1e6 microsecs */
 	    t1.tv_sec--;
 	}
-	res = (t1.tv_sec - t0.tv_sec) * 1000
-	    + (t1.tv_usec - t0.tv_usec) / 1000;
+	res = (t1.tv_sec - t0->tv_sec) * 1000
+	    + (t1.tv_usec - t0->tv_usec) / 1000;
     }
 #else
-# define PRECISE_GETTIME 0
-    static time_t t0;
     time_t t1 = time((time_t *) 0);
     if (first) {
-	t0 = t1;
+	*t0 = t1;
     }
-    res = (t1 - t0) * 1000;
+    res = (t1 - *t0) * 1000;
 #endif
     TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res));
     return res;
@@ -140,14 +139,16 @@
  * descriptors.
  */
 NCURSES_EXPORT(int)
-_nc_timed_wait(int mode,
+_nc_timed_wait(SCREEN *sp,
+	       int mode,
 	       int milliseconds,
 	       int *timeleft
 	       EVENTLIST_2nd(_nc_eventlist * evl))
 {
     int fd;
     int count;
-    int result;
+    int result = 0;
+    TimeType t0;
 
 #ifdef NCURSES_WGETCH_EVENTS
     int timeout_is_event = 0;
@@ -160,7 +161,7 @@
     struct pollfd *fds = fd_list;
 #elif defined(__BEOS__)
 #elif HAVE_SELECT
-    static fd_set set;
+    fd_set set;
 #endif
 
     long starttime, returntime;
@@ -180,10 +181,10 @@
     }
 #endif
 
-#if PRECISE_GETTIME
+#if PRECISE_GETTIME && HAVE_NANOSLEEP
   retry:
 #endif
-    starttime = _nc_gettime(TRUE);
+    starttime = _nc_gettime(&t0, TRUE);
 
     count = 0;
 
@@ -201,12 +202,12 @@
 #endif
 
     if (mode & 1) {
-	fds[count].fd = SP->_ifd;
+	fds[count].fd = sp->_ifd;
 	fds[count].events = POLLIN;
 	count++;
     }
     if ((mode & 2)
-	&& (fd = SP->_mouse_fd) >= 0) {
+	&& (fd = sp->_mouse_fd) >= 0) {
 	fds[count].fd = fd;
 	fds[count].events = POLLIN;
 	count++;
@@ -309,11 +310,11 @@
     FD_ZERO(&set);
 
     if (mode & 1) {
-	FD_SET(SP->_ifd, &set);
-	count = SP->_ifd + 1;
+	FD_SET(sp->_ifd, &set);
+	count = sp->_ifd + 1;
     }
     if ((mode & 2)
-	&& (fd = SP->_mouse_fd) >= 0) {
+	&& (fd = sp->_mouse_fd) >= 0) {
 	FD_SET(fd, &set);
 	count = max(fd, count) + 1;
     }
@@ -362,7 +363,7 @@
 
 #endif /* USE_FUNC_POLL, etc */
 
-    returntime = _nc_gettime(FALSE);
+    returntime = _nc_gettime(&t0, FALSE);
 
     if (milliseconds >= 0)
 	milliseconds -= (returntime - starttime);
@@ -426,11 +427,11 @@
 	    result = 1;		/* redundant, but simple */
 #elif HAVE_SELECT
 	    if ((mode & 2)
-		&& (fd = SP->_mouse_fd) >= 0
+		&& (fd = sp->_mouse_fd) >= 0
 		&& FD_ISSET(fd, &set))
 		result |= 2;
 	    if ((mode & 1)
-		&& FD_ISSET(SP->_ifd, &set))
+		&& FD_ISSET(sp->_ifd, &set))
 		result |= 1;
 #endif
 	} else
diff -Naur ncurses-5.6.orig/ncurses/tty/lib_vidattr.c ncurses-5.6/ncurses/tty/lib_vidattr.c
--- ncurses-5.6.orig/ncurses/tty/lib_vidattr.c	2006-01-21 18:39:40.000000000 -0500
+++ ncurses-5.6/ncurses/tty/lib_vidattr.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -65,7 +65,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vidattr.c,v 1.46 2006/01/21 23:39:40 tom Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.49 2007/06/30 21:58:04 tom Exp $")
 
 #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
 
@@ -87,10 +87,11 @@
 		} \
 	}
 
+#define PreviousAttr _nc_prescreen.previous_attr
+
 NCURSES_EXPORT(int)
 vidputs(chtype newmode, int (*outc) (int))
 {
-    static attr_t previous_attr = A_NORMAL;
     attr_t turn_on, turn_off;
     int pair;
     bool reverse = FALSE;
@@ -101,18 +102,19 @@
 #define fix_pair0 FALSE
 #endif
 
+    newmode &= A_ATTRIBUTES;
     T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
 
     /* this allows us to go on whether or not newterm() has been called */
     if (SP)
-	previous_attr = AttrOf(SCREEN_ATTRS(SP));
+	PreviousAttr = AttrOf(SCREEN_ATTRS(SP));
 
-    TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
+    TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr)));
 
     if ((SP != 0)
 	&& (magic_cookie_glitch > 0)) {
 #if USE_XMC_SUPPORT
-	static chtype table[] =
+	static const chtype table[] =
 	{
 	    A_STANDOUT,
 	    A_UNDERLINE,
@@ -183,7 +185,7 @@
 	newmode &= ~mask;
     }
 
-    if (newmode == previous_attr)
+    if (newmode == PreviousAttr)
 	returnCode(OK);
 
     pair = PAIR_NUMBER(newmode);
@@ -192,17 +194,17 @@
 	newmode &= ~A_REVERSE;
     }
 
-    turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
-    turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
+    turn_off = (~newmode & PreviousAttr) & ALL_BUT_COLOR;
+    turn_on = (newmode & ~PreviousAttr) & ALL_BUT_COLOR;
 
-    SetColorsIf(((pair == 0) && !fix_pair0), previous_attr);
+    SetColorsIf(((pair == 0) && !fix_pair0), PreviousAttr);
 
     if (newmode == A_NORMAL) {
-	if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
+	if ((PreviousAttr & A_ALTCHARSET) && exit_alt_charset_mode) {
 	    doPut(exit_alt_charset_mode);
-	    previous_attr &= ~A_ALTCHARSET;
+	    PreviousAttr &= ~A_ALTCHARSET;
 	}
-	if (previous_attr) {
+	if (PreviousAttr) {
 	    if (exit_attribute_mode) {
 		doPut(exit_attribute_mode);
 	    } else {
@@ -213,10 +215,10 @@
 		    TurnOff(A_STANDOUT, exit_standout_mode);
 		}
 	    }
-	    previous_attr &= ALL_BUT_COLOR;
+	    PreviousAttr &= ALL_BUT_COLOR;
 	}
 
-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
+	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
     } else if (set_attributes) {
 	if (turn_on || turn_off) {
 	    TPUTS_TRACE("set_attributes");
@@ -230,9 +232,9 @@
 			(newmode & A_INVIS) != 0,
 			(newmode & A_PROTECT) != 0,
 			(newmode & A_ALTCHARSET) != 0), 1, outc);
-	    previous_attr &= ALL_BUT_COLOR;
+	    PreviousAttr &= ALL_BUT_COLOR;
 	}
-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
+	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
     } else {
 
 	TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
@@ -250,9 +252,9 @@
 	if (turn_off && exit_attribute_mode) {
 	    doPut(exit_attribute_mode);
 	    turn_on |= (newmode & ALL_BUT_COLOR);
-	    previous_attr &= ALL_BUT_COLOR;
+	    PreviousAttr &= ALL_BUT_COLOR;
 	}
-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
+	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
 
 	TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
 	/* *INDENT-OFF* */
@@ -283,7 +285,7 @@
     if (SP)
 	SetAttr(SCREEN_ATTRS(SP), newmode);
     else
-	previous_attr = newmode;
+	PreviousAttr = newmode;
 
     returnCode(OK);
 }
diff -Naur ncurses-5.6.orig/ncurses/tty/tty_update.c ncurses-5.6/ncurses/tty/tty_update.c
--- ncurses-5.6.orig/ncurses/tty/tty_update.c	2006-11-25 17:33:21.000000000 -0500
+++ ncurses-5.6/ncurses/tty/tty_update.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -74,7 +74,7 @@
 #include <ctype.h>
 #include <term.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.238 2006/11/25 22:33:21 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.245 2008/05/03 22:43:04 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -289,7 +289,7 @@
 #endif
     {
 	PUTC(CHDEREF(ch), SP->_ofp);	/* macro's fastest... */
-	TRACE_OUTCHARS(1);
+	COUNT_OUTCHARS(1);
     }
     SP->_curscol += chlen;
     if (char_padding) {
@@ -624,13 +624,18 @@
 
     T((T_CALLED("doupdate()")));
 
+    if (curscr == 0
+	|| newscr == 0)
+	returnCode(ERR);
+
 #ifdef TRACE
-    if (_nc_tracing & TRACE_UPDATE) {
+    if (USE_TRACEF(TRACE_UPDATE)) {
 	if (curscr->_clear)
 	    _tracef("curscr is clear");
 	else
 	    _tracedump("curscr", curscr);
 	_tracedump("newscr", newscr);
+	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
@@ -640,7 +645,7 @@
 	SP->_fifohold--;
 
 #if USE_SIZECHANGE
-    if (SP->_endwin || SP->_sig_winch) {
+    if (SP->_endwin || _nc_handle_sigwinch(SP)) {
 	/*
 	 * This is a transparent extension:  XSI does not address it,
 	 * and applications need not know that ncurses can do it.
@@ -649,7 +654,7 @@
 	 * (this can happen in an xterm, for example), and resize the
 	 * ncurses data structures accordingly.
 	 */
-	_nc_update_screensize();
+	_nc_update_screensize(SP);
     }
 #endif
 
@@ -666,7 +671,7 @@
     }
 #if USE_TRACE_TIMES
     /* zero the metering machinery */
-    _nc_outchars = 0;
+    RESET_OUTCHARS();
     (void) times(&before);
 #endif /* USE_TRACE_TIMES */
 
@@ -826,9 +831,10 @@
 
 #ifdef TRACE
 	/* show altered highlights after magic-cookie check */
-	if (_nc_tracing & TRACE_UPDATE) {
+	if (USE_TRACEF(TRACE_UPDATE)) {
 	    _tracef("After magic-cookie check...");
 	    _tracedump("newscr", newscr);
+	    _nc_unlock_global(tracef);
 	}
 #endif /* TRACE */
     }
@@ -836,7 +842,6 @@
 
     nonempty = 0;
     if (curscr->_clear || newscr->_clear) {	/* force refresh ? */
-	TR(TRACE_UPDATE, ("clearing and updating from scratch"));
 	ClrUpdate();
 	curscr->_clear = FALSE;	/* reset flag */
 	newscr->_clear = FALSE;	/* reset flag */
@@ -967,7 +972,7 @@
     NCURSES_CH_T blank = ClrBlank(stdscr);
     int nonempty = min(screen_lines, newscr->_maxy + 1);
 
-    TR(TRACE_UPDATE, ("ClrUpdate() called"));
+    TR(TRACE_UPDATE, (T_CALLED("ClrUpdate")));
 
     ClearScreen(blank);
 
@@ -977,6 +982,8 @@
 
     for (i = 0; i < nonempty; i++)
 	TransformLine(i);
+
+    TR(TRACE_UPDATE, (T_RETURN("")));
 }
 
 /*
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_cchar.c ncurses-5.6/ncurses/widechar/lib_cchar.c
--- ncurses-5.6.orig/ncurses/widechar/lib_cchar.c	2005-01-29 16:29:16.000000000 -0500
+++ ncurses-5.6/ncurses/widechar/lib_cchar.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,7 +35,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_cchar.c,v 1.11 2005/01/29 21:29:16 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.12 2007/05/12 19:03:06 tom Exp $")
 
 /* 
  * The SuSv2 description leaves some room for interpretation.  We'll assume wch
@@ -54,8 +54,9 @@
     int len;
     int code = OK;
 
-    TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%ld,%d,%p)"),
-		      wcval, _nc_viswbuf(wch), attrs, color_pair, opts));
+    TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"),
+		      wcval, _nc_viswbuf(wch),
+		      (unsigned long) attrs, color_pair, opts));
 
     len = wcslen(wch);
     if (opts != NULL
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_get_wch.c ncurses-5.6/ncurses/widechar/lib_get_wch.c
--- ncurses-5.6.orig/ncurses/widechar/lib_get_wch.c	2006-06-03 13:27:57.000000000 -0400
+++ ncurses-5.6/ncurses/widechar/lib_get_wch.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_get_wch.c,v 1.13 2006/06/03 17:27:57 tom Exp $")
+MODULE_ID("$Id: lib_get_wch.c,v 1.16 2008/06/07 15:14:33 tom Exp $")
 
 #if HAVE_MBTOWC && HAVE_MBLEN
 #define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
@@ -60,6 +60,7 @@
 NCURSES_EXPORT(int)
 wget_wch(WINDOW *win, wint_t *result)
 {
+    SCREEN *sp;
     int code;
     char buffer[(MB_LEN_MAX * 9) + 1];	/* allow some redundant shifts */
     int status;
@@ -76,44 +77,52 @@
      * We can get a stream of single-byte characters and KEY_xxx codes from
      * _nc_wgetch(), while we want to return a wide character or KEY_xxx code.
      */
-    for (;;) {
-	T(("reading %d of %d", count + 1, sizeof(buffer)));
-	code = _nc_wgetch(win, &value, TRUE EVENTLIST_2nd((_nc_eventlist *) 0));
-	if (code == ERR) {
-	    break;
-	} else if (code == KEY_CODE_YES) {
-	    /*
-	     * If we were processing an incomplete multibyte character, return
-	     * an error since we have a KEY_xxx code which interrupts it.  For
-	     * some cases, we could improve this by writing a new version of
-	     * lib_getch.c(!), but it is not clear whether the improvement
-	     * would be worth the effort.
-	     */
-	    if (count != 0) {
-		ungetch((int) value);
+    _nc_lock_global(curses);
+    sp = _nc_screen_of(win);
+    if (sp != 0) {
+	for (;;) {
+	    T(("reading %d of %d", (int) count + 1, (int) sizeof(buffer)));
+	    code = _nc_wgetch(win, &value, TRUE EVENTLIST_2nd((_nc_eventlist
+							       *) 0));
+	    if (code == ERR) {
+		break;
+	    } else if (code == KEY_CODE_YES) {
+		/*
+		 * If we were processing an incomplete multibyte character,
+		 * return an error since we have a KEY_xxx code which
+		 * interrupts it.  For some cases, we could improve this by
+		 * writing a new version of lib_getch.c(!), but it is not clear
+		 * whether the improvement would be worth the effort.
+		 */
+		if (count != 0) {
+		    _nc_ungetch(sp, (int) value);
+		    code = ERR;
+		}
+		break;
+	    } else if (count + 1 >= sizeof(buffer)) {
+		_nc_ungetch(sp, (int) value);
 		code = ERR;
-	    }
-	    break;
-	} else if (count + 1 >= sizeof(buffer)) {
-	    ungetch((int) value);
-	    code = ERR;
-	    break;
-	} else {
-	    buffer[count++] = UChar(value);
-	    reset_mbytes(state);
-	    status = count_mbytes(buffer, count, state);
-	    if (status >= 0) {
+		break;
+	    } else {
+		buffer[count++] = UChar(value);
 		reset_mbytes(state);
-		if (check_mbytes(wch, buffer, count, state) != status) {
-		    code = ERR;	/* the two calls should match */
-		    ungetch((int) value);
+		status = count_mbytes(buffer, count, state);
+		if (status >= 0) {
+		    reset_mbytes(state);
+		    if (check_mbytes(wch, buffer, count, state) != status) {
+			code = ERR;	/* the two calls should match */
+			_nc_ungetch(sp, (int) value);
+		    }
+		    value = wch;
+		    break;
 		}
-		value = wch;
-		break;
 	    }
 	}
+    } else {
+	code = ERR;
     }
     *result = value;
+    _nc_unlock_global(curses);
     T(("result %#lo", value));
     returnCode(code);
 }
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_get_wstr.c ncurses-5.6/ncurses/widechar/lib_get_wstr.c
--- ncurses-5.6.orig/ncurses/widechar/lib_get_wstr.c	2004-10-16 17:55:36.000000000 -0400
+++ ncurses-5.6/ncurses/widechar/lib_get_wstr.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2004,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.9 2008/06/07 14:50:11 tom Exp $")
 
 static int
 wadd_wint(WINDOW *win, wint_t *src)
@@ -86,6 +86,7 @@
 NCURSES_EXPORT(int)
 wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
 {
+    SCREEN *sp = _nc_screen_of(win);
     TTY buf;
     bool oldnl, oldecho, oldraw, oldcbreak;
     wint_t erasec;
@@ -102,10 +103,10 @@
 
     _nc_get_tty_mode(&buf);
 
-    oldnl = SP->_nl;
-    oldecho = SP->_echo;
-    oldraw = SP->_raw;
-    oldcbreak = SP->_cbreak;
+    oldnl = sp->_nl;
+    oldecho = sp->_echo;
+    oldraw = sp->_raw;
+    oldcbreak = sp->_cbreak;
     nl();
     noecho();
     noraw();
@@ -209,10 +210,10 @@
     /* Restore with a single I/O call, to fix minor asymmetry between
      * raw/noraw, etc.
      */
-    SP->_nl = oldnl;
-    SP->_echo = oldecho;
-    SP->_raw = oldraw;
-    SP->_cbreak = oldcbreak;
+    sp->_nl = oldnl;
+    sp->_echo = oldecho;
+    sp->_raw = oldraw;
+    sp->_cbreak = oldcbreak;
 
     (void) _nc_set_tty_mode(&buf);
 
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_in_wchnstr.c ncurses-5.6/ncurses/widechar/lib_in_wchnstr.c
--- ncurses-5.6.orig/ncurses/widechar/lib_in_wchnstr.c	2004-05-15 20:12:30.000000000 -0400
+++ ncurses-5.6/ncurses/widechar/lib_in_wchnstr.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2002-2004-2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- * Author: Thomas Dickey 2002,2004                                          *
+ * Author: Thomas Dickey                                                    *
  ****************************************************************************/
 
 /*
@@ -39,27 +39,35 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.3 2004/05/16 00:12:30 tom Exp $")
+MODULE_ID("$Id: lib_in_wchnstr.c,v 1.7 2007/02/11 01:00:00 tom Exp $")
 
 NCURSES_EXPORT(int)
-win_wchnstr(WINDOW *win, cchar_t * wchstr, int n)
+win_wchnstr(WINDOW *win, cchar_t *wchstr, int n)
 {
     int code = OK;
 
-    TR(TRACE_CALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
+    T((T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
     if (win != 0
 	&& wchstr != 0) {
+	NCURSES_CH_T *src;
 	int row, col;
-	int j;
+	int j, k, limit;
 
 	getyx(win, row, col);
+	limit = getmaxx(win) - col;
+	src = &(win->_line[row].text[col]);
 
 	if (n < 0) {
-	    n = getmaxx(win) + 1 - getcurx(win);
+	    n = limit;
+	} else if (n > limit) {
+	    n = limit;
 	}
-	for (j = 0; j < n; ++j) {
-	    wchstr[j] = win->_line[row].text[col + j];
+	for (j = k = 0; j < n; ++j) {
+	    if (j == 0 || !WidecExt(src[j]) || isWidecBase(src[j])) {
+		wchstr[k++] = src[j];
+	    }
 	}
+	memset(&(wchstr[k]), 0, sizeof(*wchstr));
 	T(("result = %s", _nc_viscbuf(wchstr, n)));
     } else {
 	code = ERR;
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_key_name.c ncurses-5.6/ncurses/widechar/lib_key_name.c
--- ncurses-5.6.orig/ncurses/widechar/lib_key_name.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses/widechar/lib_key_name.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,62 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free 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.                                                           *
+ ****************************************************************************/
+
+/*
+**	lib_key_name.c
+**
+**	The routine key_name().
+**
+*/
+
+#include <curses.priv.h>
+
+MODULE_ID("$Id: lib_key_name.c,v 1.2 2007/06/12 21:01:13 tom Exp $")
+
+NCURSES_EXPORT(NCURSES_CONST char *)
+key_name(wchar_t c)
+{
+    cchar_t my_cchar;
+    wchar_t *my_wchars;
+    size_t len;
+
+    /* FIXME: move to _nc_globals */
+    static char result[MB_LEN_MAX + 1];
+
+    memset(&my_cchar, 0, sizeof(my_cchar));
+    my_cchar.chars[0] = c;
+    my_cchar.chars[1] = L'\0';
+
+    my_wchars = wunctrl(&my_cchar);
+    len = wcstombs(result, my_wchars, sizeof(result) - 1);
+    if (isEILSEQ(len) || (len == 0)) {
+	return "UNKNOWN KEY";
+    }
+
+    result[len] = '\0';
+    return result;
+}
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_unget_wch.c ncurses-5.6/ncurses/widechar/lib_unget_wch.c
--- ncurses-5.6.orig/ncurses/widechar/lib_unget_wch.c	2004-12-04 20:21:31.000000000 -0500
+++ ncurses-5.6/ncurses/widechar/lib_unget_wch.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,26 +39,30 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_unget_wch.c,v 1.7 2004/12/05 01:21:31 tom Exp $")
+MODULE_ID("$Id: lib_unget_wch.c,v 1.10 2008/06/07 14:50:37 tom Exp $")
 
-#ifdef linux
 /*
- * glibc's wcrtomb() function is broken - does not return the proper value
- * when target is null (noted for glibc 2.3.2).  This is a workaround.
+ * Wrapper for wcrtomb() which obtains the length needed for the given
+ * wide-character 'source'.
  */
 NCURSES_EXPORT(size_t)
 _nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
 {
+    int result;
+
     if (target == 0) {
 	wchar_t temp[2];
 	const wchar_t *tempp = temp;
 	temp[0] = source;
 	temp[1] = 0;
-	return wcsrtombs(NULL, &tempp, 0, state);
+	result = wcsrtombs(NULL, &tempp, 0, state);
+    } else {
+	result = wcrtomb(target, source, state);
     }
-    return wcrtomb(target, source, state);
+    if (!isEILSEQ(result) && (result == 0))
+	result = 1;
+    return result;
 }
-#endif
 
 NCURSES_EXPORT(int)
 unget_wch(const wchar_t wch)
@@ -82,7 +86,7 @@
 	    wcrtomb(string, wch, &state);
 
 	    for (n = (int) (length - 1); n >= 0; --n) {
-		if (ungetch(string[n]) != OK) {
+		if (_nc_ungetch(SP, string[n]) != OK) {
 		    result = ERR;
 		    break;
 		}
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_vid_attr.c ncurses-5.6/ncurses/widechar/lib_vid_attr.c
--- ncurses-5.6.orig/ncurses/widechar/lib_vid_attr.c	2006-11-25 19:26:00.000000000 -0500
+++ ncurses-5.6/ncurses/widechar/lib_vid_attr.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vid_attr.c,v 1.4 2006/11/26 00:26:00 tom Exp $")
+MODULE_ID("$Id: lib_vid_attr.c,v 1.5 2007/06/30 22:03:02 tom Exp $")
 
 #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
 
@@ -72,6 +72,7 @@
 #define fix_pair0 FALSE
 #endif
 
+    newmode &= A_ATTRIBUTES;
     T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
 
     /* this allows us to go on whether or not newterm() has been called */
diff -Naur ncurses-5.6.orig/ncurses/widechar/lib_wunctrl.c ncurses-5.6/ncurses/widechar/lib_wunctrl.c
--- ncurses-5.6.orig/ncurses/widechar/lib_wunctrl.c	2005-04-16 14:10:44.000000000 -0400
+++ ncurses-5.6/ncurses/widechar/lib_wunctrl.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,23 +35,21 @@
 
 #include <curses.priv.h>
 
-#if USE_WIDEC_SUPPORT
-
-MODULE_ID("$Id: lib_wunctrl.c,v 1.8 2005/04/16 18:10:44 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.12 2007/06/12 20:22:32 tom Exp $")
 
 NCURSES_EXPORT(wchar_t *)
 wunctrl(cchar_t *wc)
 {
-    static wchar_t str[5], *sp;
+    static wchar_t str[CCHARW_MAX + 1], *sp;
 
     if (Charable(*wc)) {
 	const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
 
-	for (sp = str; *p;)
-	    *sp++ = _nc_to_widechar(*p++);
+	for (sp = str; *p; ++p) {
+	    *sp++ = _nc_to_widechar(*p);
+	}
+	*sp = 0;
 	return str;
     } else
 	return wc->chars;
 }
-
-#endif
diff -Naur ncurses-5.6.orig/ncurses-5.6-20071201-patch.sh ncurses-5.6/ncurses-5.6-20071201-patch.sh
--- ncurses-5.6.orig/ncurses-5.6-20071201-patch.sh	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/ncurses-5.6-20071201-patch.sh	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,60468 @@
+#!/bin/sh
+# Use this script to patch ncurses 5.6 to 5.6 (20071201)
+# Run this script inside the ncurses 5.6 source directory et voila! Updated.
+
+if ( egrep '^NCURSES_MAJOR = 5$' dist.mk >/dev/null 2>&1 \
+  && egrep '^NCURSES_MINOR = 6$' dist.mk >/dev/null 2>&1 \
+  && egrep '^NCURSES_PATCH = 20061217$' dist.mk >/dev/null 2>&1 )
+then
+        echo patching...
+else
+        echo 'This does not look like ncurses 5.6'
+        exit 1
+fi
+
+rm -rf tack
+rm -f Ada95/src/terminal_interface-curses.adb
+rm -f mkinstalldirs
+
+patch -p1 -i $0         # shell command = this script = inputfile for patch
+exit
+
+# patch by Thomas E. Dickey <dickey@invisible-island.net>
+# created  Sat Dec  8 23:18:44 UTC 2007
+# ------------------------------------------------------------------------------
+# Ada95/gen/Makefile.in                                                 |  134 
+# Ada95/gen/gen.c                                                       |  144 
+# Ada95/gen/html.m4                                                     |    6 
+# Ada95/gen/terminal_interface-curses-aux.ads.m4                        |    5 
+# Ada95/gen/terminal_interface-curses-menus.ads.m4                      |    6 
+# Ada95/gen/terminal_interface-curses.ads.m4                            |   30 
+# Ada95/samples/ncurses2-attr_test.adb                                  |   18 
+# Ada95/samples/ncurses2-m.adb                                          |    5 
+# Ada95/samples/rain.adb                                                |    4 
+# Ada95/samples/sample.adb                                              |    4 
+# Ada95/src/Makefile.in                                                 |    8 
+# INSTALL                                                               |   60 
+# MANIFEST                                                              |   48 
+# NEWS                                                                  |  514 +
+# TO-DO                                                                 |   23 
+# aclocal.m4                                                            |  642 +
+# c++/Makefile.in                                                       |   16 
+# c++/README-first                                                      |   35 
+# c++/cursesapp.cc                                                      |    9 
+# c++/cursesmain.cc                                                     |   32 
+# c++/cursesp.h                                                         |    6 
+# c++/cursespad.cc                                                      |   10 
+# c++/cursesw.cc                                                        |  453 -
+# c++/cursesw.h                                                         |   33 
+# c++/demo.cc                                                           |  126 
+# c++/edit_cfg.sh                                                       |   12 
+# c++/etip.h.in                                                         |   44 
+# c++/headers                                                           |    5 
+# c++/internal.h                                                        |    6 
+# c++/modules                                                           |    8 
+# config.guess                                                          |   34 
+# config.sub                                                            |   28 
+# configure                                                             | 4143 +++++-----
+# configure.in                                                          |  265 
+# dist.mk                                                               |    7 
+# doc/hackguide.doc                                                     |    2 
+# doc/html/ada/funcs/A.htm                                              |   15 
+# doc/html/ada/funcs/B.htm                                              |   14 
+# doc/html/ada/funcs/C.htm                                              |   49 
+# doc/html/ada/funcs/D.htm                                              |   41 
+# doc/html/ada/funcs/E.htm                                              |   14 
+# doc/html/ada/funcs/F.htm                                              |   21 
+# doc/html/ada/funcs/G.htm                                              |   65 
+# doc/html/ada/funcs/H.htm                                              |   18 
+# doc/html/ada/funcs/I.htm                                              |   39 
+# doc/html/ada/funcs/K.htm                                              |   11 
+# doc/html/ada/funcs/L.htm                                              |   11 
+# doc/html/ada/funcs/M.htm                                              |   25 
+# doc/html/ada/funcs/N.htm                                              |   30 
+# doc/html/ada/funcs/O.htm                                              |    6 
+# doc/html/ada/funcs/P.htm                                              |   24 
+# doc/html/ada/funcs/Q.htm                                              |    2 
+# doc/html/ada/funcs/R.htm                                              |   34 
+# doc/html/ada/funcs/S.htm                                              |  153 
+# doc/html/ada/funcs/T.htm                                              |   19 
+# doc/html/ada/funcs/U.htm                                              |   19 
+# doc/html/ada/funcs/V.htm                                              |    5 
+# doc/html/ada/funcs/W.htm                                              |   90 
+# doc/html/ada/table.html                                               |  334 
+# doc/html/ada/terminal_interface-curses-aux__ads.htm                   |   99 
+# doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm     |  181 
+# doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm |   23 
+# doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm  |   23 
+# doc/html/ada/terminal_interface-curses-forms__ads.htm                 |  717 -
+# doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm  |   23 
+# doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm  |   23 
+# doc/html/ada/terminal_interface-curses-menus__ads.htm                 |  525 -
+# doc/html/ada/terminal_interface-curses-mouse__adb.htm                 |   12 
+# doc/html/ada/terminal_interface-curses-mouse__ads.htm                 |  213 
+# doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm      |   23 
+# doc/html/ada/terminal_interface-curses-panels__ads.htm                |   69 
+# doc/html/ada/terminal_interface-curses-terminfo__adb.htm              |    4 
+# doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm           |    4 
+# doc/html/ada/terminal_interface-curses-text_io__adb.htm               |   34 
+# doc/html/ada/terminal_interface-curses-trace__ads.htm                 |   65 
+# doc/html/ada/terminal_interface-curses__adb.htm                       | 2936 +++----
+# doc/html/ada/terminal_interface-curses__ads.htm                       | 2019 ++--
+# doc/html/man/captoinfo.1m.html                                        |   14 
+# doc/html/man/clear.1.html                                             |    4 
+# doc/html/man/curs_add_wch.3x.html                                     |   10 
+# doc/html/man/curs_addch.3x.html                                       |    4 
+# doc/html/man/curs_border.3x.html                                      |    8 
+# doc/html/man/curs_extend.3x.html                                      |    8 
+# doc/html/man/curs_getcchar.3x.html                                    |    6 
+# doc/html/man/curs_insstr.3x.html                                      |    4 
+# doc/html/man/curs_mouse.3x.html                                       |  129 
+# doc/html/man/curs_printw.3x.html                                      |    8 
+# doc/html/man/curs_scanw.3x.html                                       |    6 
+# doc/html/man/curs_scr_dump.3x.html                                    |    4 
+# doc/html/man/curs_termcap.3x.html                                     |    4 
+# doc/html/man/curs_terminfo.3x.html                                    |    8 
+# doc/html/man/curs_trace.3x.html                                       |    6 
+# doc/html/man/curs_util.3x.html                                        |   10 
+# doc/html/man/default_colors.3x.html                                   |    4 
+# doc/html/man/form.3x.html                                             |    2 
+# doc/html/man/form_field_new.3x.html                                   |    8 
+# doc/html/man/form_field_opts.3x.html                                  |   12 
+# doc/html/man/form_field_validation.3x.html                            |   22 
+# doc/html/man/form_hook.3x.html                                        |   20 
+# doc/html/man/form_opts.3x.html                                        |   12 
+# doc/html/man/index.html                                               |    3 
+# doc/html/man/infocmp.1m.html                                          |    4 
+# doc/html/man/infotocap.1m.html                                        |    6 
+# doc/html/man/legacy_coding.3x.html                                    |   17 
+# doc/html/man/menu.3x.html                                             |    2 
+# doc/html/man/menu_hook.3x.html                                        |   20 
+# doc/html/man/menu_opts.3x.html                                        |   12 
+# doc/html/man/mitem_opts.3x.html                                       |   12 
+# doc/html/man/ncurses.3x.html                                          |   10 
+# doc/html/man/panel.3x.html                                            |    2 
+# doc/html/man/term.5.html                                              |   12 
+# doc/html/man/term.7.html                                              |   12 
+# doc/html/man/terminfo.5.html                                          |   26 
+# doc/html/man/tic.1m.html                                              |    4 
+# doc/html/man/toe.1m.html                                              |    6 
+# doc/html/man/tput.1.html                                              |    8 
+# doc/html/man/tset.1.html                                              |    6 
+# doc/html/ncurses-intro.html                                           |   38 
+# doc/ncurses-intro.doc                                                 |   33 
+# form/Makefile.in                                                      |   12 
+# form/fld_def.c                                                        |   13 
+# form/fld_dup.c                                                        |    7 
+# form/fld_ftlink.c                                                     |    7 
+# form/fld_link.c                                                       |    7 
+# form/fld_newftyp.c                                                    |    7 
+# form/frm_def.c                                                        |   10 
+# form/frm_driver.c                                                     |  131 
+# form/fty_alnum.c                                                      |   18 
+# form/fty_alpha.c                                                      |   18 
+# form/fty_enum.c                                                       |   14 
+# form/fty_int.c                                                        |   14 
+# form/fty_num.c                                                        |   14 
+# form/fty_regex.c                                                      |   19 
+# form/headers                                                          |    3 
+# form/modules                                                          |    8 
+# include/MKterm.h.awk.in                                               |   51 
+# include/curses.h.in                                                   |  237 
+# include/curses.tail                                                   |    3 
+# include/curses.wide                                                   |    9 
+# include/headers                                                       |   11 
+# include/nc_alloc.h                                                    |   10 
+# include/ncurses_defs                                                  |   12 
+# include/ncurses_dll.h                                                 |   11 
+# include/tic.h                                                         |   29 
+# install-sh                                                            |  139 
+# man/Makefile.in                                                       |    8 
+# man/captoinfo.1m                                                      |   28 
+# man/clear.1                                                           |   12 
+# man/curs_add_wch.3x                                                   |    6 
+# man/curs_addch.3x                                                     |    8 
+# man/curs_attr.3x                                                      |    7 
+# man/curs_border.3x                                                    |    8 
+# man/curs_deleteln.3x                                                  |    6 
+# man/curs_extend.3x                                                    |    6 
+# man/curs_getcchar.3x                                                  |    8 
+# man/curs_getyx.3x                                                     |   27 
+# man/curs_insstr.3x                                                    |    4 
+# man/curs_mouse.3x                                                     |   42 
+# man/curs_outopts.3x                                                   |    6 
+# man/curs_printw.3x                                                    |    8 
+# man/curs_scanw.3x                                                     |    6 
+# man/curs_scr_dump.3x                                                  |    4 
+# man/curs_slk.3x                                                       |    6 
+# man/curs_termattrs.3x                                                 |    6 
+# man/curs_termcap.3x                                                   |    8 
+# man/curs_terminfo.3x                                                  |   26 
+# man/curs_trace.3x                                                     |    6 
+# man/curs_util.3x                                                      |   47 
+# man/default_colors.3x                                                 |    7 
+# man/form_driver.3x                                                    |   57 
+# man/form_field_new.3x                                                 |    8 
+# man/form_field_opts.3x                                                |   12 
+# man/form_field_validation.3x                                          |    4 
+# man/form_hook.3x                                                      |   20 
+# man/form_opts.3x                                                      |   12 
+# man/infocmp.1m                                                        |   30 
+# man/infotocap.1m                                                      |   18 
+# man/legacy_coding.3x                                                  |    4 
+# man/man_db.renames                                                    |   23 
+# man/menu_driver.3x                                                    |   61 
+# man/menu_hook.3x                                                      |   20 
+# man/menu_opts.3x                                                      |   12 
+# man/mitem_opts.3x                                                     |   12 
+# man/ncurses.3x                                                        |  269 
+# man/panel.3x                                                          |   37 
+# man/term.5                                                            |    6 
+# man/term.7                                                            |   16 
+# man/terminfo.head                                                     |   14 
+# man/terminfo.tail                                                     |   22 
+# man/tic.1m                                                            |    6 
+# man/toe.1m                                                            |    6 
+# man/tput.1                                                            |   76 
+# man/tset.1                                                            |    4 
+# menu/Makefile.in                                                      |   12 
+# menu/headers                                                          |    3 
+# menu/menu.h                                                           |   12 
+# menu/modules                                                          |    8 
+# misc/Makefile.in                                                      |   15 
+# misc/ncurses-config.in                                                |    9 
+# misc/shlib                                                            |    3 
+# misc/terminfo.src                                                     |  430 -
+# mk-1st.awk                                                            |  183 
+# ncurses-5.6-20071201/Ada95/gen/adacurses-config.in                    |   35 
+# ncurses-5.6-20071201/Ada95/gen/terminal_interface-curses.adb.m4       | 2501 ++++++
+# ncurses-5.6-20071201/man/curs_legacy.3x                               |   93 
+# ncurses-5.6-20071201/man/curs_opaque.3x                               |  133 
+# ncurses-5.6-20071201/mk-hdr.awk                                       |  107 
+# ncurses-5.6-20071201/mkdirs.sh                                        |   51 
+# ncurses-5.6-20071201/ncurses/base/use_window.c                        |   80 
+# ncurses-5.6-20071201/ncurses/tinfo/MKcaptab.sh                        |  149 
+# ncurses-5.6-20071201/ncurses/tinfo/MKcodes.awk                        |  161 
+# ncurses-5.6-20071201/ncurses/tinfo/entries.c                          |  144 
+# ncurses-5.6-20071201/ncurses/tinfo/use_screen.c                       |   60 
+# ncurses-5.6-20071201/ncurses/widechar/lib_key_name.c                  |   62 
+# ncurses-5.6-20071201/test/dots_mvcur.c                                |  171 
+# ncurses-5.6-20071201/test/inch_wide.c                                 |  279 
+# ncurses-5.6-20071201/test/inchs.c                                     |  272 
+# ncurses-5.6-20071201/test/key_names.c                                 |   56 
+# ncurses-5.6-20071201/test/savescreen.sh                               |   55 
+# ncurses-5.6-20071201/test/test_arrays.c                               |   79 
+# ncurses-5.6-20071201/test/test_get_wstr.c                             |  361 
+# ncurses-5.6-20071201/test/test_getstr.c                               |  351 
+# ncurses-5.6-20071201/test/test_instr.c                                |  260 
+# ncurses-5.6-20071201/test/test_inwstr.c                               |  269 
+# ncurses-5.6-20071201/test/test_opaque.c                               |  421 +
+# ncurses/Makefile.in                                                   |   51 
+# ncurses/base/MKkeyname.awk                                            |   83 
+# ncurses/base/MKlib_gen.sh                                             |   12 
+# ncurses/base/MKunctrl.awk                                             |   92 
+# ncurses/base/define_key.c                                             |   13 
+# ncurses/base/key_defined.c                                            |   22 
+# ncurses/base/keyok.c                                                  |   14 
+# ncurses/base/lib_addstr.c                                             |   15 
+# ncurses/base/lib_color.c                                              |   48 
+# ncurses/base/lib_delwin.c                                             |   27 
+# ncurses/base/lib_freeall.c                                            |   41 
+# ncurses/base/lib_getch.c                                              |   39 
+# ncurses/base/lib_initscr.c                                            |    9 
+# ncurses/base/lib_instr.c                                              |   10 
+# ncurses/base/lib_mouse.c                                              |   24 
+# ncurses/base/lib_newterm.c                                            |   34 
+# ncurses/base/lib_newwin.c                                             |   31 
+# ncurses/base/lib_overlay.c                                            |   11 
+# ncurses/base/lib_redrawln.c                                           |   10 
+# ncurses/base/lib_refresh.c                                            |  144 
+# ncurses/base/lib_restart.c                                            |   18 
+# ncurses/base/lib_screen.c                                             |   19 
+# ncurses/base/lib_set_term.c                                           |  147 
+# ncurses/base/lib_slkinit.c                                            |   15 
+# ncurses/base/lib_slkset.c                                             |   13 
+# ncurses/base/lib_ungetch.c                                            |    8 
+# ncurses/base/lib_window.c                                             |    6 
+# ncurses/base/memmove.c                                                |    6 
+# ncurses/base/resizeterm.c                                             |  106 
+# ncurses/base/safe_sprintf.c                                           |   56 
+# ncurses/base/tries.c                                                  |   22 
+# ncurses/base/wresize.c                                                |   14 
+# ncurses/curses.priv.h                                                 |  369 
+# ncurses/llib-lncurses                                                 |  549 -
+# ncurses/llib-lncursesw                                                |  573 -
+# ncurses/modules                                                       |   31 
+# ncurses/tinfo/MKcaptab.awk                                            |  134 
+# ncurses/tinfo/MKnames.awk                                             |  226 
+# ncurses/tinfo/access.c                                                |   10 
+# ncurses/tinfo/add_tries.c                                             |   39 
+# ncurses/tinfo/comp_error.c                                            |   34 
+# ncurses/tinfo/comp_hash.c                                             |  111 
+# ncurses/tinfo/comp_parse.c                                            |   96 
+# ncurses/tinfo/db_iterator.c                                           |   52 
+# ncurses/tinfo/home_terminfo.c                                         |   21 
+# ncurses/tinfo/init_keytry.c                                           |   16 
+# ncurses/tinfo/lib_acs.c                                               |   28 
+# ncurses/tinfo/lib_baudrate.c                                          |   27 
+# ncurses/tinfo/lib_data.c                                              |  148 
+# ncurses/tinfo/lib_options.c                                           |    4 
+# ncurses/tinfo/lib_raw.c                                               |    8 
+# ncurses/tinfo/lib_setup.c                                             |  110 
+# ncurses/tinfo/lib_termcap.c                                           |   62 
+# ncurses/tinfo/lib_tparm.c                                             |  153 
+# ncurses/tinfo/lib_tputs.c                                             |   17 
+# ncurses/tinfo/lib_ttyflags.c                                          |   80 
+# ncurses/tinfo/make_keys.c                                             |    6 
+# ncurses/tinfo/name_match.c                                            |   24 
+# ncurses/tinfo/parse_entry.c                                           |   20 
+# ncurses/tinfo/read_entry.c                                            |    6 
+# ncurses/tinfo/setbuf.c                                                |    6 
+# ncurses/tinfo/strings.c                                               |    6 
+# ncurses/tinfo/trim_sgr0.c                                             |   10 
+# ncurses/tinfo/write_entry.c                                           |   22 
+# ncurses/trace/lib_trace.c                                             |  161 
+# ncurses/trace/lib_traceatr.c                                          |   50 
+# ncurses/trace/lib_tracebits.c                                         |   27 
+# ncurses/trace/lib_tracechr.c                                          |   15 
+# ncurses/trace/lib_tracedmp.c                                          |   57 
+# ncurses/trace/lib_tracemse.c                                          |   27 
+# ncurses/trace/trace_buf.c                                             |   42 
+# ncurses/trace/trace_tries.c                                           |   30 
+# ncurses/trace/varargs.c                                               |   26 
+# ncurses/trace/visbuf.c                                                |   32 
+# ncurses/tty/hardscroll.c                                              |   34 
+# ncurses/tty/hashmap.c                                                 |   43 
+# ncurses/tty/lib_mvcur.c                                               |   11 
+# ncurses/tty/lib_tstp.c                                                |   38 
+# ncurses/tty/lib_twait.c                                               |   48 
+# ncurses/tty/lib_vidattr.c                                             |   42 
+# ncurses/tty/tty_update.c                                              |   25 
+# ncurses/widechar/lib_cchar.c                                          |    9 
+# ncurses/widechar/lib_get_wch.c                                        |    6 
+# ncurses/widechar/lib_in_wchnstr.c                                     |   26 
+# ncurses/widechar/lib_unget_wch.c                                      |   20 
+# ncurses/widechar/lib_vid_attr.c                                       |    5 
+# ncurses/widechar/lib_wunctrl.c                                        |   16 
+# panel/Makefile.in                                                     |   12 
+# panel/headers                                                         |    3 
+# panel/modules                                                         |    6 
+# progs/Makefile.in                                                     |   35 
+# progs/clear.c                                                         |    5 
+# progs/dump_entry.c                                                    |   21 
+# progs/infocmp.c                                                       |  161 
+# progs/modules                                                         |    8 
+# progs/progs.priv.h                                                    |   13 
+# progs/tic.c                                                           |   38 
+# progs/toe.c                                                           |   11 
+# progs/tput.c                                                          |    8 
+# progs/tset.c                                                          |   24 
+# test/Makefile.in                                                      |   14 
+# test/README                                                           |  363 
+# test/aclocal.m4                                                       |   92 
+# test/bs.c                                                             |    6 
+# test/cardfile.c                                                       |   18 
+# test/chgat.c                                                          |   27 
+# test/configure                                                        | 1224 +-
+# test/configure.in                                                     |   42 
+# test/demo_defkey.c                                                    |    7 
+# test/demo_forms.c                                                     |   14 
+# test/demo_menus.c                                                     |    6 
+# test/demo_panels.c                                                    |  777 +
+# test/demo_termcap.c                                                   |    5 
+# test/ditto.c                                                          |   42 
+# test/dots.c                                                           |    5 
+# test/echochar.c                                                       |   12 
+# test/gdc.c                                                            |    6 
+# test/hashtest.c                                                       |    6 
+# test/ins_wide.c                                                       |   14 
+# test/inserts.c                                                        |   14 
+# test/mk-test.awk                                                      |   12 
+# test/modules                                                          |   24 
+# test/movewindow.c                                                     |   16 
+# test/ncurses.c                                                        |  391 
+# test/programs                                                         |   16 
+# test/railroad.c                                                       |    5 
+# test/redraw.c                                                         |    6 
+# test/savescreen.c                                                     |  292 
+# test/test.priv.h                                                      |   14 
+# test/view.c                                                           |   10 
+# test/worm.c                                                           |  278 
+# 356 files changed, 22567 insertions(+), 10675 deletions(-)
+# ------------------------------------------------------------------------------
+# Please remove the following files before applying this patch.
+# (You can feed this patch to 'sh' to do so.)
+
+rm -f Ada95/src/terminal_interface-curses.adb
+rm -f mkinstalldirs
+rm -f tack/COPYING
+rm -f tack/HISTORY
+rm -f tack/Makefile.in
+rm -f tack/README
+rm -f tack/ansi.c
+rm -f tack/charset.c
+rm -f tack/color.c
+rm -f tack/control.c
+rm -f tack/crum.c
+rm -f tack/edit.c
+rm -f tack/fun.c
+rm -f tack/init.c
+rm -f tack/menu.c
+rm -f tack/modes.c
+rm -f tack/modules
+rm -f tack/output.c
+rm -f tack/pad.c
+rm -f tack/scan.c
+rm -f tack/sync.c
+rm -f tack/sysdep.c
+rm -f tack/tack.1
+rm -f tack/tack.c
+rm -f tack/tack.h
+exit
+
+Index: Ada95/gen/Makefile.in
+Prereq:  1.51 
+--- ncurses-5.6/Ada95/gen/Makefile.in	2006-12-17 16:53:33.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/Makefile.in	2007-09-15 17:55:33.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -28,7 +28,7 @@
+ #
+ #  Author:  Juergen Pfeifer, 1996
+ #
+-#  $Id: Makefile.in,v 1.51 2006/12/17 16:53:33 tom Exp $
++#  $Id: Makefile.in,v 1.60 2007/09/15 17:55:33 tom Exp $
+ #
+ .SUFFIXES:
+ 
+@@ -42,10 +42,13 @@
+ srcdir		= @srcdir@
+ prefix		= @prefix@
+ exec_prefix	= @exec_prefix@
++bindir		= @bindir@
++
+ ADA_INCLUDE	= $(DESTDIR)@ADA_INCLUDE@
+ ADA_OBJECTS	= $(DESTDIR)@ADA_OBJECTS@
+ 
+ INSTALL		= @INSTALL@
++INSTALL_PROG	= @INSTALL_PROGRAM@
+ INSTALL_DATA	= @INSTALL_DATA@
+ 
+ AWK		= @AWK@
+@@ -78,6 +81,9 @@
+ M4		= m4
+ M4FLAGS		=
+ 
++ADACURSES_CONFIG = adacurses-config
++
++WRAPPER		= sh $(top_srcdir)/misc/shlib
+ GENERATE	= ./gen$x '@DFT_ARG_SUFFIX@'
+ DEL_ADAMODE	= sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
+ 
+@@ -92,17 +98,18 @@
+ 
+ GEN_FILES0      = Base_Defs
+ 
+-GEN_FILES1      = Key_Definitions              		\
+-		  Old_Keys                     		\
+-		  Character_Attribute_Set_Rep  		\
++GEN_FILES1      = ACS_Map                      		\
+ 		  AC_Rep                       		\
++		  Base_Defs			        \
++		  Character_Attribute_Set_Rep  		\
+ 		  Color_Defs                   		\
+-		  ACS_Map                      		\
++		  Key_Definitions              		\
+ 		  Linker_Options               		\
+-		  Base_Defs			        \
+-		  Window_Offsets                        \
++		  Old_Keys                     		\
++		  Public_Variables                      \
++		  Trace_Defs				\
+ 		  Version_Info				\
+-		  Trace_Defs
++		  Window_Offsets
+ 
+ GEN_FILES2      = Menu_Opt_Rep        		    	\
+ 		  Menu_Base_Defs               		\
+@@ -123,6 +130,7 @@
+ 		  Eti_Defs
+ 
+ GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads         			\
++		  $(ADA_SRCDIR)/$(ABASE).adb         			\
+ 	          $(ADA_SRCDIR)/$(ABASE)-aux.ads   			\
+ 	          $(ADA_SRCDIR)/$(ABASE)-trace.ads   			\
+ 	          $(ADA_SRCDIR)/$(ABASE)-menus.ads   			\
+@@ -137,6 +145,7 @@
+ 	          $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
+ 
+ GEN_SRC		= $(srcdir)/$(ABASE).ads.m4				\
++		  $(srcdir)/$(ABASE).adb.m4				\
+ 	          $(srcdir)/$(ABASE)-aux.ads.m4 	  		\
+ 	          $(srcdir)/$(ABASE)-trace.ads.m4 	  		\
+ 	          $(srcdir)/$(ABASE)-menus.ads.m4 	  		\
+@@ -159,7 +168,7 @@
+ 
+ $(ADA_INCLUDE) \
+ $(ADA_OBJECTS) :
+-	$(top_srcdir)/mkinstalldirs $@
++	sh $(top_srcdir)/mkdirs.sh $@
+ 
+ install \
+ install.libs :: $(ADA_INCLUDE)
+@@ -177,6 +186,10 @@
+ 	@$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
+ 	@-chmod u+x $(ADA_SRCDIR)/*.ali
+ 
++install \
++install.libs :: $(DESTDIR)$(bindir) adacurses-config
++	$(INSTALL_PROG) adacurses-config $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
++
+ uninstall \
+ uninstall.libs ::
+ 	@echo removing package $(ALIB) from $(ADA_INCLUDE)
+@@ -187,93 +200,106 @@
+ 	@echo removing package $(ALIB) from $(ADA_OBJECTS)
+ 	-@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
+ 
++uninstall \
++uninstall.libs ::
++	-rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
++
+ gen$x:	gen.o
+ 	@ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
+ 
+ gen.o:	$(srcdir)/gen.c
+ 	$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
+-
++################################################################################
+ Character_Attribute_Set_Rep: gen$x
+-	$(GENERATE) B A >$@
++	$(WRAPPER) "$(GENERATE) B A" >$@
+ 
+ Base_Defs: gen$x
+-	$(GENERATE) B B >$@
++	$(WRAPPER) "$(GENERATE) B B" >$@
+ 
+ Color_Defs: gen$x
+-	$(GENERATE) B C >$@
++	$(WRAPPER) "$(GENERATE) B C" >$@
++
++Window_Offsets: gen$x
++	$(WRAPPER) "$(GENERATE) B D" >$@
+ 
+ Key_Definitions: gen$x
+-	$(GENERATE) B K >$@
++	$(WRAPPER) "$(GENERATE) B K" >$@
+ 
+-Old_Keys: gen$x
+-	$(GENERATE) B O >$@
++Linker_Options: gen$x
++	$(WRAPPER) "$(GENERATE) B L" >$@
+ 
+ ACS_Map: gen$x
+-	$(GENERATE) B M >$@
++	$(WRAPPER) "$(GENERATE) B M" >$@
+ 
+-AC_Rep: gen$x
+-	$(GENERATE) B R >$@
++Old_Keys: gen$x
++	$(WRAPPER) "$(GENERATE) B O" >$@
+ 
+-Linker_Options: gen$x
+-	$(GENERATE) B L >$@
++Public_Variables: gen$x
++	$(WRAPPER) "$(GENERATE) B P" >$@
+ 
+-Version_Info: gen$x
+-	$(GENERATE) B V >$@
++AC_Rep: gen$x
++	$(WRAPPER) "$(GENERATE) B R" >$@
+ 
+-Window_Offsets: gen$x
+-	$(GENERATE) B D >$@
++Version_Info: gen$x
++	$(WRAPPER) "$(GENERATE) B V" >$@
+ 
+ Trace_Defs: gen$x
+-	$(GENERATE) B T >$@
+-
++	$(WRAPPER) "$(GENERATE) B T" >$@
++################################################################################
+ Menu_Opt_Rep: gen$x
+-	$(GENERATE) M R >$@
++	$(WRAPPER) "$(GENERATE) M R" >$@
+ 
+ Menu_Base_Defs: gen$x
+-	$(GENERATE) M B >$@
++	$(WRAPPER) "$(GENERATE) M B" >$@
+ 
+ Menu_Linker_Options: gen$x
+-	$(GENERATE) M L >$@
++	$(WRAPPER) "$(GENERATE) M L" >$@
+ 
+ Item_Rep: gen$x
+-	$(GENERATE) M I >$@
+-
++	$(WRAPPER) "$(GENERATE) M I" >$@
++################################################################################
+ Form_Opt_Rep: gen$x
+-	$(GENERATE) F R >$@
++	$(WRAPPER) "$(GENERATE) F R" >$@
+ 
+ Form_Base_Defs: gen$x
+-	$(GENERATE) F B >$@
++	$(WRAPPER) "$(GENERATE) F B" >$@
+ 
+ Form_Linker_Options: gen$x
+-	$(GENERATE) F L >$@
++	$(WRAPPER) "$(GENERATE) F L" >$@
+ 
+ Field_Rep: gen$x
+-	$(GENERATE) F I >$@
+-
++	$(WRAPPER) "$(GENERATE) F I" >$@
++################################################################################
+ Mouse_Base_Defs: gen$x
+-	$(GENERATE) P B >$@
++	$(WRAPPER) "$(GENERATE) P B" >$@
+ 
+ Mouse_Event_Rep: gen$x
+-	$(GENERATE) P M >$@
++	$(WRAPPER) "$(GENERATE) P M" >$@
+ 
+ Mouse_Events: gen$x
+-	$(GENERATE) B E >$@
++	$(WRAPPER) "$(GENERATE) B E" >$@
+ 
+ Panel_Linker_Options: gen$x
+-	$(GENERATE) P L >$@
++	$(WRAPPER) "$(GENERATE) P L" >$@
+ 
+ Chtype_Def: gen$x
+-	$(GENERATE) E C >$@
++	$(WRAPPER) "$(GENERATE) E C" >$@
+ 
+ Eti_Defs: gen$x
+-	$(GENERATE) E E >$@
+-
++	$(WRAPPER) "$(GENERATE) E E" >$@
++################################################################################
+ $(ADA_SRCDIR)/$(ABASE).ads: 	$(srcdir)/$(ABASE).ads.m4 \
+ 				$(GEN_FILES1) $(srcdir)/normal.m4
+ 	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ 	$(srcdir)/$(ABASE).ads.m4 |\
+ 	$(DEL_ADAMODE) >$@
+ 
++$(ADA_SRCDIR)/$(ABASE).adb: 	$(srcdir)/$(ABASE).adb.m4 \
++				$(GEN_FILES1) $(srcdir)/normal.m4
++	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
++	$(srcdir)/$(ABASE).adb.m4 |\
++	$(DEL_ADAMODE) >$@
++
+ $(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
+ 				$(GEN_FILES5) $(srcdir)/normal.m4
+ 	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+@@ -357,8 +383,8 @@
+ tags:
+ 	ctags *.[ch]
+ 
+-TAGS:
+-	etags *.[ch]
++@MAKE_UPPER_TAGS@TAGS:
++@MAKE_UPPER_TAGS@	etags *.[ch]
+ 
+ mostlyclean ::
+ 	-rm -f a.out core gen$x *.o
+@@ -372,7 +398,8 @@
+ 	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
+ 
+ distclean :: clean
+-	rm -f Makefile
++	-rm -f adacurses-config
++	-rm -f Makefile
+ 
+ realclean :: distclean
+ 
+@@ -408,9 +435,14 @@
+ 	@mkdir -p $(HTML_DIR)
+ 	cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
+ 	ln -sf ../src/*.ali .
+-	for f in $(GEN_SRC); do \
++	@echo "Filtering generated files"
++	@for f in $(GEN_SRC); do \
++	   h=`basename $$f` ;\
+ 	   g=`basename $$f .ads.m4` ;\
+-	   $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
++	   if test "$$g" != "$$h" ; then \
++	      $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
++	      echo "... $$g.ads" ;\
++	   fi \
+ 	done
+ 	@-rm -f $(HTML_DIR)/$(ALIB)*.htm*
+ 	$(GNATHTML) -d -f $(ALIB)*.ads
+@@ -423,7 +455,7 @@
+ 	   sed -e 's/3X/3x/g' |\
+ 	   sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
+ 	   sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
+-           mv $$a.tmp $$f ;\
++	   mv $$a.tmp $$f ;\
+ 	done
+ 	@rm -f *.ad[sb] *.ali *.tmp
+ 	@for f in funcs.htm main.htm ; do \
+Index: Ada95/gen/adacurses-config.in
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/adacurses-config.in	2007-04-07 21:06:50.000000000 +0000
+@@ -0,0 +1,35 @@
++#! /bin/sh
++# $Id: adacurses-config.in,v 1.2 2007/04/07 21:06:50 tom Exp $
++#
++# This script will return the option to add to `gnatmake' for using
++# AdaCurses.
++#
++
++prefix="@prefix@"
++exec_prefix="@exec_prefix@"
++libdir="@libdir@"
++
++VERSION="@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@"
++
++CFLAGS="-I$libdir/adacurses -L$libdir/adacurses"
++LIBS="-L$prefix/lib -lAdaCurses"
++
++case "x$1" in
++    x--version)
++        echo AdaCurses $VERSION
++        ;;
++    x--cflags)
++        echo $CFLAGS
++        ;;
++    x--libs)
++        echo $LIBS
++        ;;
++    x)
++    	# if no parameter is given, give what gnatmake needs
++        echo $CFLAGS -largs $LIBS
++        ;;
++    *)
++        echo 'Usage: adacurses-config [--version | --cflags | --libs]' >&2
++        exit 1
++        ;;
++esac
+Index: Ada95/gen/gen.c
+Prereq:  1.40 
+--- ncurses-5.6/Ada95/gen/gen.c	2005-01-22 17:03:48.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/gen.c	2007-05-05 17:24:36.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998,2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ /*
+     Version Control
+-    $Id: gen.c,v 1.40 2005/01/22 17:03:48 tom Exp $
++    $Id: gen.c,v 1.48 2007/05/05 17:24:36 tom Exp $
+   --------------------------------------------------------------------------*/
+ /*
+   This program generates various record structures and constants from the
+@@ -41,6 +41,8 @@
+   to produce the real source.
+   */
+ 
++#include <ncurses_cfg.h>
++
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <string.h>
+@@ -771,6 +773,23 @@
+ static void
+ gen_acs(void)
+ {
++  printf("   type C_ACS_Map is array (Character'Val (0) .. Character'Val (127))\n");
++  printf("        of Attributed_Character;\n");
++#if USE_REENTRANT || BROKEN_LINKER
++  printf("   type C_ACS_Ptr is access C_ACS_Map;\n");
++  printf("   function ACS_Map return C_ACS_Ptr;\n");
++  printf("   pragma Import (C, ACS_Map, \"_nc_acs_map\");\n");
++#else
++  printf("   ACS_Map : C_ACS_Map;\n");
++  printf("   pragma Import (C, ACS_Map, \"acs_map\");\n");
++#endif
++  printf("   --\n");
++  printf("   --\n");
++  printf("   --  Constants for several characters from the Alternate Character Set\n");
++  printf("   --  You must use these constants as indices into the ACS_Map array\n");
++  printf("   --  to get the corresponding attributed character at runtime.\n");
++  printf("   --\n");
++
+ #ifdef ACS_ULCORNER
+   acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
+ #endif
+@@ -877,8 +896,7 @@
+    printf("   %-25s : constant Event_Mask := 8#%011lo#;\n", \
+           #name, name)
+ 
+-static
+-void
++static void
+ gen_mouse_events(void)
+ {
+   mmask_t all1 = 0;
+@@ -1004,6 +1022,56 @@
+   GEN_EVENT(BUTTON4_EVENTS, all4);
+ }
+ 
++static void
++wrap_one_var(const char *c_var,
++	     const char *c_type,
++	     const char *ada_func,
++	     const char *ada_type)
++{
++#if USE_REENTRANT
++  /* must wrap variables */
++  printf("\n");
++  printf("   function %s return %s\n", ada_func, ada_type);
++  printf("   is\n");
++  printf("      function Result return %s;\n", c_type);
++  printf("      pragma Import (C, Result, \"_nc_%s\");\n", c_var);
++  printf("   begin\n");
++  if (strcmp(c_type, ada_type))
++    printf("      return %s (Result);\n", ada_type);
++  else
++    printf("      return Result;\n");
++  printf("   end %s;\n", ada_func);
++#else
++  /* global variables are really global */
++  printf("\n");
++  printf("   function %s return %s\n", ada_func, ada_type);
++  printf("   is\n");
++  printf("      Result : %s;\n", c_type);
++  printf("      pragma Import (C, Result, \"%s\");\n", c_var);
++  printf("   begin\n");
++  if (strcmp(c_type, ada_type))
++    printf("      return %s (Result);\n", ada_type);
++  else
++    printf("      return Result;\n");
++  printf("   end %s;\n", ada_func);
++#endif
++}
++
++#define GEN_PUBLIC_VAR(c_var, c_type, ada_func, ada_type) \
++	wrap_one_var(#c_var, #c_type, #ada_func, #ada_type)
++
++static void
++gen_public_vars(void)
++{
++  GEN_PUBLIC_VAR(stdscr, Window, Standard_Window, Window);
++  GEN_PUBLIC_VAR(curscr, Window, Current_Window, Window);
++  GEN_PUBLIC_VAR(LINES, C_Int, Lines, Line_Count);
++  GEN_PUBLIC_VAR(COLS, C_Int, Columns, Column_Count);
++  GEN_PUBLIC_VAR(TABSIZE, C_Int, Tab_Size, Natural);
++  GEN_PUBLIC_VAR(COLORS, C_Int, Number_Of_Colors, Natural);
++  GEN_PUBLIC_VAR(COLOR_PAIRS, C_Int, Number_Of_Color_Pairs, Natural);
++}
++
+ /*
+  * Output some comment lines indicating that the file is generated.
+  * The name parameter is the name of the facility to be used in
+@@ -1178,70 +1246,21 @@
+   return strlen(buf);
+ }
+ 
+-#define GEN_OFFSET(member,itype)                                    \
+-  if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) {                \
+-    o = offsetof(WINDOW, member);                                   \
+-    if ((o%sizeof(itype) == 0)) {                                   \
+-       printf("   Offset%-*s : constant Natural := %2ld; --  %s\n", \
+-              12, #member, (long)(o/sizeof(itype)),#itype);         \
+-    }                                                               \
+-  }
+-
+ static void
+ gen_offsets(void)
+ {
+-  long o;
+   const char *s_bool = "";
+ 
+-  GEN_OFFSET(_maxy, short);
+-  GEN_OFFSET(_maxx, short);
+-  GEN_OFFSET(_begy, short);
+-  GEN_OFFSET(_begx, short);
+-  GEN_OFFSET(_cury, short);
+-  GEN_OFFSET(_curx, short);
+-  GEN_OFFSET(_yoffset, short);
+-  GEN_OFFSET(_pary, int);
+-  GEN_OFFSET(_parx, int);
+   if (sizeof(bool) == sizeof(char))
+     {
+-      GEN_OFFSET(_notimeout, char);
+-      GEN_OFFSET(_clear, char);
+-      GEN_OFFSET(_leaveok, char);
+-      GEN_OFFSET(_scroll, char);
+-      GEN_OFFSET(_idlok, char);
+-      GEN_OFFSET(_idcok, char);
+-      GEN_OFFSET(_immed, char);
+-      GEN_OFFSET(_sync, char);
+-      GEN_OFFSET(_use_keypad, char);
+-
+       s_bool = "char";
+     }
+   else if (sizeof(bool) == sizeof(short))
+     {
+-      GEN_OFFSET(_notimeout, short);
+-      GEN_OFFSET(_clear, short);
+-      GEN_OFFSET(_leaveok, short);
+-      GEN_OFFSET(_scroll, short);
+-      GEN_OFFSET(_idlok, short);
+-      GEN_OFFSET(_idcok, short);
+-      GEN_OFFSET(_immed, short);
+-      GEN_OFFSET(_sync, short);
+-      GEN_OFFSET(_use_keypad, short);
+-
+       s_bool = "short";
+     }
+   else if (sizeof(bool) == sizeof(int))
+     {
+-      GEN_OFFSET(_notimeout, int);
+-      GEN_OFFSET(_clear, int);
+-      GEN_OFFSET(_leaveok, int);
+-      GEN_OFFSET(_scroll, int);
+-      GEN_OFFSET(_idlok, int);
+-      GEN_OFFSET(_idcok, int);
+-      GEN_OFFSET(_immed, int);
+-      GEN_OFFSET(_sync, int);
+-      GEN_OFFSET(_use_keypad, int);
+-
+       s_bool = "int";
+     }
+   printf("   Sizeof%-*s : constant Natural := %2ld; --  %s\n",
+@@ -1291,9 +1310,6 @@
+ 	case 'A':		/* chtype translation into Ada95 record type */
+ 	  gen_attr_set("Character_Attribute_Set");
+ 	  break;
+-	case 'K':		/* translation of keycodes */
+-	  gen_keydefs(0);
+-	  break;
+ 	case 'B':		/* write some initial comment lines */
+ 	  basedefs();
+ 	  break;
+@@ -1306,24 +1322,30 @@
+ 	case 'E':		/* generate Mouse Event codes */
+ 	  gen_mouse_events();
+ 	  break;
+-	case 'M':		/* generate constants for the ACS characters */
+-	  gen_acs();
++	case 'K':		/* translation of keycodes */
++	  gen_keydefs(0);
+ 	  break;
+ 	case 'L':		/* generate the Linker_Options pragma */
+ 	  gen_linkopts();
+ 	  break;
++	case 'M':		/* generate constants for the ACS characters */
++	  gen_acs();
++	  break;
+ 	case 'O':		/* generate definitions of the old key code names */
+ 	  gen_keydefs(1);
+ 	  break;
++	case 'P':		/* generate definitions of the public variables */
++	  gen_public_vars();
++	  break;
+ 	case 'R':		/* generate representation clause for Attributed character */
+ 	  gen_chtype_rep("Attributed_Character");
+ 	  break;
+-	case 'V':		/* generate version info */
+-	  gen_version_info();
+-	  break;
+ 	case 'T':		/* generate the Trace info */
+ 	  gen_trace("Trace_Attribute_Set");
+ 	  break;
++	case 'V':		/* generate version info */
++	  gen_version_info();
++	  break;
+ 	default:
+ 	  break;
+ 	}
+Index: Ada95/gen/html.m4
+Prereq:  1.2 
+--- ncurses-5.6/Ada95/gen/html.m4	2006-04-22 23:16:44.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/html.m4	2007-09-01 23:59:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 2000,2006 Free Software Foundation, Inc.                   *
++dnl Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              *
+ dnl                                                                          *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a  *
+ dnl copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ dnl authorization.                                                           *
+ dnl***************************************************************************
+ dnl
+-dnl $Id: html.m4,v 1.2 2006/04/22 23:16:44 tom Exp $
++dnl $Id: html.m4,v 1.3 2007/09/01 23:59:59 tom Exp $
+ define(`ANCHORIDX',`0')dnl
+ define(`MANPAGE',`define(`MANPG',$1)dnl
+ |=====================================================================
+@@ -35,6 +35,6 @@
+ define(`ANCHOR',`define(`ANCHORIDX',incr(ANCHORIDX))dnl
+ `#'1A NAME="AFU`_'ANCHORIDX"`#'2dnl
+ define(`CFUNAME',`$1')define(`AFUNAME',`$2')dnl
+-|')
++|')dnl
+ define(`AKA',``AKA': <A HREF="../man/MANPG.html">CFUNAME</A>')dnl
+ define(`ALIAS',``AKA': $1')dnl
+Index: Ada95/gen/terminal_interface-curses-aux.ads.m4
+--- ncurses-5.6/Ada95/gen/terminal_interface-curses-aux.ads.m4	2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/terminal_interface-curses-aux.ads.m4	2007-09-01 23:49:12.000000000 +0000
+@@ -1,6 +1,7 @@
+ --  -*- ada -*-
+ define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
+-include(M4MACRO)------------------------------------------------------------------------------
++include(M4MACRO)dnl
++------------------------------------------------------------------------------
+ --                                                                          --
+ --                           GNAT ncurses Binding                           --
+ --                                                                          --
+@@ -37,7 +38,7 @@
+ ------------------------------------------------------------------------------
+ --  Author:  Juergen Pfeifer, 1996
+ --  Version Control:
+---  $Revision: 1.15 $
++--  $Revision: 1.16 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ include(`Base_Defs')
+Index: Ada95/gen/terminal_interface-curses-menus.ads.m4
+--- ncurses-5.6/Ada95/gen/terminal_interface-curses-menus.ads.m4	2006-06-25 14:30:22.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/terminal_interface-curses-menus.ads.m4	2007-05-05 20:20:52.000000000 +0000
+@@ -38,8 +38,8 @@
+ ------------------------------------------------------------------------------
+ --  Author:  Juergen Pfeifer, 1996
+ --  Version Control:
+---  $Revision: 1.26 $
+---  $Date: 2006/06/25 14:30:22 $
++--  $Revision: 1.27 $
++--  $Date: 2007/05/05 20:20:52 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ include(`Menu_Base_Defs')
+@@ -360,7 +360,7 @@
+    --  Implemented as function
+    pragma Inline (Mark);
+ 
+-   --  MANPAGE(`menu_attribs.3x')
++   --  MANPAGE(`menu_attributes.3x')
+ 
+    --  ANCHOR(`set_menu_fore()',`Set_Foreground')
+    procedure Set_Foreground
+Index: Ada95/gen/terminal_interface-curses.adb.m4
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/terminal_interface-curses.adb.m4	2007-05-05 20:09:10.000000000 +0000
+@@ -0,0 +1,2501 @@
++--  -*- ada -*-
++define(`HTMLNAME',`terminal_interface-curses__adb.htm')dnl
++include(M4MACRO)------------------------------------------------------------------------------
++--                                                                          --
++--                           GNAT ncurses Binding                           --
++--                                                                          --
++--                        Terminal_Interface.Curses                         --
++--                                                                          --
++--                                 B O D Y                                  --
++--                                                                          --
++------------------------------------------------------------------------------
++-- Copyright (c) 1998-2006,2007 Free 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.4 $
++--  $Date: 2007/05/05 20:09:10 $
++--  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 Ada.Characters.Handling;       use Ada.Characters.Handling;
++with Ada.Strings.Fixed;
++
++package body Terminal_Interface.Curses is
++
++   use Aux;
++   use type System.Bit_Order;
++
++   package ASF renames Ada.Strings.Fixed;
++
++   type chtype_array is array (size_t range <>)
++      of aliased Attributed_Character;
++   pragma Convention (C, chtype_array);
++
++------------------------------------------------------------------------------
++   function Key_Name (Key : in Real_Key_Code) return String
++   is
++      function Keyname (K : C_Int) return chars_ptr;
++      pragma Import (C, Keyname, "keyname");
++
++      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
++            declare
++               S : String (1 .. 1);
++            begin
++               S (1) := Ch;
++               return S;
++            end;
++         else
++            return "";
++         end if;
++      else
++         return Fill_String (Keyname (C_Int (Key)));
++      end if;
++   end Key_Name;
++
++   procedure Key_Name (Key  : in  Real_Key_Code;
++                       Name : out String)
++   is
++   begin
++      ASF.Move (Key_Name (Key), Name);
++   end Key_Name;
++
++------------------------------------------------------------------------------
++   procedure Init_Screen
++   is
++      function Initscr return Window;
++      pragma Import (C, Initscr, "initscr");
++
++      W : Window;
++   begin
++      W := Initscr;
++      if W = Null_Window then
++         raise Curses_Exception;
++      end if;
++   end Init_Screen;
++
++   procedure End_Windows
++   is
++      function Endwin return C_Int;
++      pragma Import (C, Endwin, "endwin");
++   begin
++      if Endwin = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end End_Windows;
++
++   function Is_End_Window return Boolean
++   is
++      function Isendwin return Curses_Bool;
++      pragma Import (C, Isendwin, "isendwin");
++   begin
++      if Isendwin = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Is_End_Window;
++------------------------------------------------------------------------------
++   procedure Move_Cursor (Win    : in Window := Standard_Window;
++                          Line   : in Line_Position;
++                          Column : in Column_Position)
++   is
++      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;
++      end if;
++   end Move_Cursor;
++------------------------------------------------------------------------------
++   procedure Add (Win : in Window := Standard_Window;
++                  Ch  : in Attributed_Character)
++   is
++      function Waddch (W  : Window;
++                       Ch : C_Chtype) return C_Int;
++      pragma Import (C, Waddch, "waddch");
++   begin
++      if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Add;
++
++   procedure Add (Win : in Window := Standard_Window;
++                  Ch  : in Character)
++   is
++   begin
++      Add (Win,
++           Attributed_Character'(Ch    => Ch,
++                                 Color => Color_Pair'First,
++                                 Attr  => Normal_Video));
++   end Add;
++
++   procedure Add
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Ch     : in Attributed_Character)
++   is
++      function mvwaddch (W  : Window;
++                         Y  : C_Int;
++                         X  : C_Int;
++                         Ch : C_Chtype) return C_Int;
++      pragma Import (C, mvwaddch, "mvwaddch");
++   begin
++      if mvwaddch (Win, C_Int (Line),
++                   C_Int (Column),
++                   AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Add;
++
++   procedure Add
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Ch     : in Character)
++   is
++   begin
++      Add (Win,
++           Line,
++           Column,
++           Attributed_Character'(Ch    => Ch,
++                                 Color => Color_Pair'First,
++                                 Attr  => Normal_Video));
++   end Add;
++
++   procedure Add_With_Immediate_Echo
++     (Win : in Window := Standard_Window;
++      Ch  : in Attributed_Character)
++   is
++      function Wechochar (W  : Window;
++                          Ch : C_Chtype) return C_Int;
++      pragma Import (C, Wechochar, "wechochar");
++   begin
++      if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Add_With_Immediate_Echo;
++
++   procedure Add_With_Immediate_Echo
++     (Win : in Window := Standard_Window;
++      Ch  : in 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
++   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;
++      pragma Import (C, Newwin, "newwin");
++
++      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;
++      end if;
++      return W;
++   end Create;
++
++   procedure Delete (Win : in out Window)
++   is
++      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;
++      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;
++      pragma Import (C, Derwin, "derwin");
++
++      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;
++      end if;
++      return W;
++   end Derived_Window;
++
++   function Duplicate (Win : Window) return Window
++   is
++      function Dupwin (Win : Window) return Window;
++      pragma Import (C, Dupwin, "dupwin");
++
++      W : constant Window := Dupwin (Win);
++   begin
++      if W = Null_Window then
++         raise Curses_Exception;
++      end if;
++      return W;
++   end Duplicate;
++
++   procedure Move_Window (Win    : in Window;
++                          Line   : in Line_Position;
++                          Column : in Column_Position)
++   is
++      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;
++      end if;
++   end Move_Window;
++
++   procedure Move_Derived_Window (Win    : in Window;
++                                  Line   : in Line_Position;
++                                  Column : in Column_Position)
++   is
++      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;
++      end if;
++   end Move_Derived_Window;
++
++   procedure Set_Synch_Mode (Win  : in Window  := Standard_Window;
++                             Mode : in Boolean := False)
++   is
++      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;
++      end if;
++   end Set_Synch_Mode;
++------------------------------------------------------------------------------
++   procedure Add (Win : in Window := Standard_Window;
++                  Str : in String;
++                  Len : in Integer := -1)
++   is
++      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;
++   begin
++      To_C (Str, Txt, Length);
++      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Add;
++
++   procedure Add
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Str    : in String;
++      Len    : in Integer := -1)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Add (Win, Str, Len);
++   end Add;
++------------------------------------------------------------------------------
++   procedure Add
++     (Win : in Window := Standard_Window;
++      Str : in Attributed_String;
++      Len : in Integer := -1)
++   is
++      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);
++   begin
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Add;
++
++   procedure Add
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Str    : in Attributed_String;
++      Len    : in Integer := -1)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Add (Win, Str, Len);
++   end Add;
++------------------------------------------------------------------------------
++   procedure Border
++     (Win                       : in Window := Standard_Window;
++      Left_Side_Symbol          : in Attributed_Character := Default_Character;
++      Right_Side_Symbol         : in Attributed_Character := Default_Character;
++      Top_Side_Symbol           : in Attributed_Character := Default_Character;
++      Bottom_Side_Symbol        : in Attributed_Character := Default_Character;
++      Upper_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
++      Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
++      Lower_Left_Corner_Symbol  : in Attributed_Character := Default_Character;
++      Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character)
++   is
++      function Wborder (W   : Window;
++                        LS  : C_Chtype;
++                        RS  : C_Chtype;
++                        TS  : C_Chtype;
++                        BS  : C_Chtype;
++                        ULC : C_Chtype;
++                        URC : C_Chtype;
++                        LLC : C_Chtype;
++                        LRC : C_Chtype) return C_Int;
++      pragma Import (C, Wborder, "wborder");
++   begin
++      if Wborder (Win,
++                  AttrChar_To_Chtype (Left_Side_Symbol),
++                  AttrChar_To_Chtype (Right_Side_Symbol),
++                  AttrChar_To_Chtype (Top_Side_Symbol),
++                  AttrChar_To_Chtype (Bottom_Side_Symbol),
++                  AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
++                  AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
++                  AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
++                  AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
++                  ) = Curses_Err
++      then
++         raise Curses_Exception;
++      end if;
++   end Border;
++
++   procedure Box
++     (Win               : in Window := Standard_Window;
++      Vertical_Symbol   : in Attributed_Character := Default_Character;
++      Horizontal_Symbol : in Attributed_Character := Default_Character)
++   is
++   begin
++      Border (Win,
++              Vertical_Symbol, Vertical_Symbol,
++              Horizontal_Symbol, Horizontal_Symbol);
++   end Box;
++
++   procedure Horizontal_Line
++     (Win         : in Window := Standard_Window;
++      Line_Size   : in Natural;
++      Line_Symbol : in Attributed_Character := Default_Character)
++   is
++      function Whline (W   : Window;
++                       Ch  : C_Chtype;
++                       Len : C_Int) return C_Int;
++      pragma Import (C, Whline, "whline");
++   begin
++      if Whline (Win,
++                 AttrChar_To_Chtype (Line_Symbol),
++                 C_Int (Line_Size)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Horizontal_Line;
++
++   procedure Vertical_Line
++     (Win         : in Window := Standard_Window;
++      Line_Size   : in Natural;
++      Line_Symbol : in Attributed_Character := Default_Character)
++   is
++      function Wvline (W   : Window;
++                       Ch  : C_Chtype;
++                       Len : C_Int) return C_Int;
++      pragma Import (C, Wvline, "wvline");
++   begin
++      if Wvline (Win,
++                 AttrChar_To_Chtype (Line_Symbol),
++                 C_Int (Line_Size)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Vertical_Line;
++
++------------------------------------------------------------------------------
++   function Get_Keystroke (Win : Window := Standard_Window)
++     return Real_Key_Code
++   is
++      function Wgetch (W : Window) return C_Int;
++      pragma Import (C, Wgetch, "wgetch");
++
++      C : constant C_Int := Wgetch (Win);
++   begin
++      if C = Curses_Err then
++         return Key_None;
++      else
++         return Real_Key_Code (C);
++      end if;
++   end Get_Keystroke;
++
++   procedure Undo_Keystroke (Key : in Real_Key_Code)
++   is
++      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;
++      end if;
++   end Undo_Keystroke;
++
++   function Has_Key (Key : Special_Key_Code) return Boolean
++   is
++      function Haskey (Key : C_Int) return C_Int;
++      pragma Import (C, Haskey, "has_key");
++   begin
++      if Haskey (C_Int (Key)) = Curses_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Has_Key;
++
++   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));
++   begin
++      if (Key >= Key_F0) and then (Key <= L) then
++         return True;
++      else
++         return False;
++      end if;
++   end Is_Function_Key;
++
++   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);
++      else
++         raise Constraint_Error;
++      end if;
++   end Function_Key;
++
++   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)
++   is
++      function wstandout (Win : Window) return C_Int;
++      pragma Import (C, wstandout, "wstandout");
++      function wstandend (Win : Window) return C_Int;
++      pragma Import (C, wstandend, "wstandend");
++
++      Err : C_Int;
++   begin
++      if On then
++         Err := wstandout (Win);
++      else
++         Err := wstandend (Win);
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Standout;
++
++   procedure Switch_Character_Attribute
++     (Win  : in Window := Standard_Window;
++      Attr : in Character_Attribute_Set := Normal_Video;
++      On   : in Boolean := True)
++   is
++      function Wattron (Win    : Window;
++                        C_Attr : C_AttrType) return C_Int;
++      pragma Import (C, Wattron, "wattr_on");
++      function Wattroff (Win    : Window;
++                         C_Attr : C_AttrType) 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, AttrChar_To_AttrType (AC));
++      else
++         Err := Wattroff (Win, AttrChar_To_AttrType (AC));
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Switch_Character_Attribute;
++
++   procedure Set_Character_Attributes
++     (Win   : in Window := Standard_Window;
++      Attr  : in Character_Attribute_Set := Normal_Video;
++      Color : in Color_Pair := Color_Pair'First)
++   is
++      function Wattrset (Win    : Window;
++                         C_Attr : C_AttrType) return C_Int;
++      pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
++   begin
++      if Wattrset (Win,
++                   AttrChar_To_AttrType (Attributed_Character'
++                                         (Ch    => Character'First,
++                                          Color => Color,
++                                          Attr  => Attr))) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Character_Attributes;
++
++   function Get_Character_Attribute (Win : Window := Standard_Window)
++                                     return Character_Attribute_Set
++   is
++      function Wattrget (Win : Window;
++                         Atr : access C_AttrType;
++                         Col : access C_Short;
++                         Opt : System.Address) return C_Int;
++      pragma Import (C, Wattrget, "wattr_get");
++
++      Attr : aliased C_AttrType;
++      Col  : aliased C_Short;
++      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
++                                         System.Null_Address);
++      Ch   : Attributed_Character;
++   begin
++      if Res = Curses_Ok then
++         Ch := AttrType_To_AttrChar (Attr);
++         return Ch.Attr;
++      else
++         raise Curses_Exception;
++      end if;
++   end Get_Character_Attribute;
++
++   function Get_Character_Attribute (Win : Window := Standard_Window)
++                                     return Color_Pair
++   is
++      function Wattrget (Win : Window;
++                         Atr : access C_AttrType;
++                         Col : access C_Short;
++                         Opt : System.Address) return C_Int;
++      pragma Import (C, Wattrget, "wattr_get");
++
++      Attr : aliased C_AttrType;
++      Col  : aliased C_Short;
++      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
++                                         System.Null_Address);
++      Ch   : Attributed_Character;
++   begin
++      if Res = Curses_Ok then
++         Ch := AttrType_To_AttrChar (Attr);
++         return Ch.Color;
++      else
++         raise Curses_Exception;
++      end if;
++   end Get_Character_Attribute;
++
++   procedure Set_Color (Win  : in Window := Standard_Window;
++                        Pair : in Color_Pair)
++   is
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Set_Color;
++
++   procedure Change_Attributes
++     (Win   : in Window := Standard_Window;
++      Count : in Integer := -1;
++      Attr  : in Character_Attribute_Set := Normal_Video;
++      Color : in Color_Pair := Color_Pair'First)
++   is
++      function Wchgat (Win   : Window;
++                       Cnt   : C_Int;
++                       Attr  : C_AttrType;
++                       Color : C_Short;
++                       Opts  : System.Address := System.Null_Address)
++                       return C_Int;
++      pragma Import (C, Wchgat, "wchgat");
++
++      Ch : constant Attributed_Character :=
++        (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
++   begin
++      if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
++                 C_Short (Color)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Change_Attributes;
++
++   procedure Change_Attributes
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position := Line_Position'First;
++      Column : in Column_Position := Column_Position'First;
++      Count  : in Integer := -1;
++      Attr   : in Character_Attribute_Set := Normal_Video;
++      Color  : in Color_Pair := Color_Pair'First)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Change_Attributes (Win, Count, Attr, Color);
++   end Change_Attributes;
++------------------------------------------------------------------------------
++   procedure Beep
++   is
++      function Beeper return C_Int;
++      pragma Import (C, Beeper, "beep");
++   begin
++      if Beeper = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Beep;
++
++   procedure Flash_Screen
++   is
++      function Flash return C_Int;
++      pragma Import (C, Flash, "flash");
++   begin
++      if Flash = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Flash_Screen;
++------------------------------------------------------------------------------
++   procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True)
++   is
++      function Cbreak return C_Int;
++      pragma Import (C, Cbreak, "cbreak");
++      function NoCbreak return C_Int;
++      pragma Import (C, NoCbreak, "nocbreak");
++
++      Err : C_Int;
++   begin
++      if SwitchOn then
++         Err := Cbreak;
++      else
++         Err := NoCbreak;
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Cbreak_Mode;
++
++   procedure Set_Raw_Mode (SwitchOn : in Boolean := True)
++   is
++      function Raw return C_Int;
++      pragma Import (C, Raw, "raw");
++      function NoRaw return C_Int;
++      pragma Import (C, NoRaw, "noraw");
++
++      Err : C_Int;
++   begin
++      if SwitchOn then
++         Err := Raw;
++      else
++         Err := NoRaw;
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Raw_Mode;
++
++   procedure Set_Echo_Mode (SwitchOn : in Boolean := True)
++   is
++      function Echo return C_Int;
++      pragma Import (C, Echo, "echo");
++      function NoEcho return C_Int;
++      pragma Import (C, NoEcho, "noecho");
++
++      Err : C_Int;
++   begin
++      if SwitchOn then
++         Err := Echo;
++      else
++         Err := NoEcho;
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Echo_Mode;
++
++   procedure Set_Meta_Mode (Win      : in Window := Standard_Window;
++                            SwitchOn : in Boolean := True)
++   is
++      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;
++      end if;
++   end Set_Meta_Mode;
++
++   procedure Set_KeyPad_Mode (Win      : in Window := Standard_Window;
++                              SwitchOn : in Boolean := True)
++   is
++      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;
++      end if;
++   end Set_KeyPad_Mode;
++
++   function Get_KeyPad_Mode (Win : in Window := Standard_Window)
++                             return Boolean
++   is
++      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;
++
++   procedure Half_Delay (Amount : in Half_Delay_Amount)
++   is
++      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;
++      end if;
++   end Half_Delay;
++
++   procedure Set_Flush_On_Interrupt_Mode
++     (Win  : in Window := Standard_Window;
++      Mode : in Boolean := True)
++   is
++      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;
++      end if;
++   end Set_Flush_On_Interrupt_Mode;
++
++   procedure Set_Queue_Interrupt_Mode
++     (Win   : in Window := Standard_Window;
++      Flush : in Boolean := True)
++   is
++      procedure Qiflush;
++      pragma Import (C, Qiflush, "qiflush");
++      procedure No_Qiflush;
++      pragma Import (C, No_Qiflush, "noqiflush");
++   begin
++      if Win = Null_Window then
++         raise Curses_Exception;
++      end if;
++      if Flush then
++         Qiflush;
++      else
++         No_Qiflush;
++      end if;
++   end Set_Queue_Interrupt_Mode;
++
++   procedure Set_NoDelay_Mode
++     (Win  : in Window := Standard_Window;
++      Mode : in Boolean := False)
++   is
++      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;
++      end if;
++   end Set_NoDelay_Mode;
++
++   procedure Set_Timeout_Mode (Win    : in Window := Standard_Window;
++                               Mode   : in Timeout_Mode;
++                               Amount : in Natural)
++   is
++      procedure Wtimeout (Win : Window; Amount : C_Int);
++      pragma Import (C, Wtimeout, "wtimeout");
++
++      Time : C_Int;
++   begin
++      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);
++      end case;
++      Wtimeout (Win, Time);
++   end Set_Timeout_Mode;
++
++   procedure Set_Escape_Timer_Mode
++     (Win       : in Window := Standard_Window;
++      Timer_Off : in Boolean := False)
++   is
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Set_Escape_Timer_Mode;
++
++------------------------------------------------------------------------------
++   procedure Set_NL_Mode (SwitchOn : in Boolean := True)
++   is
++      function NL return C_Int;
++      pragma Import (C, NL, "nl");
++      function NoNL return C_Int;
++      pragma Import (C, NoNL, "nonl");
++
++      Err : C_Int;
++   begin
++      if SwitchOn then
++         Err := NL;
++      else
++         Err := NoNL;
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_NL_Mode;
++
++   procedure Clear_On_Next_Update
++     (Win      : in Window := Standard_Window;
++      Do_Clear : in Boolean := True)
++   is
++      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;
++      end if;
++   end Clear_On_Next_Update;
++
++   procedure Use_Insert_Delete_Line
++     (Win    : in Window := Standard_Window;
++      Do_Idl : in Boolean := True)
++   is
++      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;
++      end if;
++   end Use_Insert_Delete_Line;
++
++   procedure Use_Insert_Delete_Character
++     (Win    : in Window := Standard_Window;
++      Do_Idc : in Boolean := True)
++   is
++      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;
++
++   procedure Leave_Cursor_After_Update
++     (Win      : in Window := Standard_Window;
++      Do_Leave : in Boolean := True)
++   is
++      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;
++      end if;
++   end Leave_Cursor_After_Update;
++
++   procedure Immediate_Update_Mode
++     (Win  : in Window := Standard_Window;
++      Mode : in Boolean := False)
++   is
++      procedure Immedok (Win : Window; Mode : Curses_Bool);
++      pragma Import (C, Immedok, "immedok");
++   begin
++      Immedok (Win, Curses_Bool (Boolean'Pos (Mode)));
++   end Immediate_Update_Mode;
++
++   procedure Allow_Scrolling
++     (Win  : in Window  := Standard_Window;
++      Mode : in Boolean := False)
++   is
++      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;
++      end if;
++   end Allow_Scrolling;
++
++   function Scrolling_Allowed (Win : Window := Standard_Window)
++                               return Boolean
++   is
++      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;
++
++   procedure Set_Scroll_Region
++     (Win         : in Window := Standard_Window;
++      Top_Line    : in Line_Position;
++      Bottom_Line : in Line_Position)
++   is
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Set_Scroll_Region;
++------------------------------------------------------------------------------
++   procedure Update_Screen
++   is
++      function Do_Update return C_Int;
++      pragma Import (C, Do_Update, "doupdate");
++   begin
++      if Do_Update = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Update_Screen;
++
++   procedure Refresh (Win : in Window := Standard_Window)
++   is
++      function Wrefresh (W : Window) return C_Int;
++      pragma Import (C, Wrefresh, "wrefresh");
++   begin
++      if Wrefresh (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Refresh;
++
++   procedure Refresh_Without_Update
++     (Win : in Window := Standard_Window)
++   is
++      function Wnoutrefresh (W : Window) return C_Int;
++      pragma Import (C, Wnoutrefresh, "wnoutrefresh");
++   begin
++      if Wnoutrefresh (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Refresh_Without_Update;
++
++   procedure Redraw (Win : in Window := Standard_Window)
++   is
++      function Redrawwin (Win : Window) return C_Int;
++      pragma Import (C, Redrawwin, "redrawwin");
++   begin
++      if Redrawwin (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Redraw;
++
++   procedure Redraw
++     (Win        : in Window := Standard_Window;
++      Begin_Line : in Line_Position;
++      Line_Count : in Positive)
++   is
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Redraw;
++
++------------------------------------------------------------------------------
++   procedure Erase (Win : in Window := Standard_Window)
++   is
++      function Werase (W : Window) return C_Int;
++      pragma Import (C, Werase, "werase");
++   begin
++      if Werase (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Erase;
++
++   procedure Clear (Win : in Window := Standard_Window)
++   is
++      function Wclear (W : Window) return C_Int;
++      pragma Import (C, Wclear, "wclear");
++   begin
++      if Wclear (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Clear;
++
++   procedure Clear_To_End_Of_Screen (Win : in Window := Standard_Window)
++   is
++      function Wclearbot (W : Window) return C_Int;
++      pragma Import (C, Wclearbot, "wclrtobot");
++   begin
++      if Wclearbot (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Clear_To_End_Of_Screen;
++
++   procedure Clear_To_End_Of_Line (Win : in Window := Standard_Window)
++   is
++      function Wcleareol (W : Window) return C_Int;
++      pragma Import (C, Wcleareol, "wclrtoeol");
++   begin
++      if Wcleareol (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Clear_To_End_Of_Line;
++------------------------------------------------------------------------------
++   procedure Set_Background
++     (Win : in Window := Standard_Window;
++      Ch  : in Attributed_Character)
++   is
++      procedure WBackground (W : in Window; Ch : in C_Chtype);
++      pragma Import (C, WBackground, "wbkgdset");
++   begin
++      WBackground (Win, AttrChar_To_Chtype (Ch));
++   end Set_Background;
++
++   procedure Change_Background
++     (Win : in Window := Standard_Window;
++      Ch  : in Attributed_Character)
++   is
++      function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
++      pragma Import (C, WChangeBkgd, "wbkgd");
++   begin
++      if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Change_Background;
++
++   function Get_Background (Win : Window := Standard_Window)
++     return Attributed_Character
++   is
++      function Wgetbkgd (Win : Window) return C_Chtype;
++      pragma Import (C, Wgetbkgd, "getbkgd");
++   begin
++      return Chtype_To_AttrChar (Wgetbkgd (Win));
++   end Get_Background;
++------------------------------------------------------------------------------
++   procedure Change_Lines_Status (Win   : in Window := Standard_Window;
++                                  Start : in Line_Position;
++                                  Count : in Positive;
++                                  State : in 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 then
++         raise Curses_Exception;
++      end if;
++   end Change_Lines_Status;
++
++   procedure Touch (Win : in Window := Standard_Window)
++   is
++      Y : Line_Position;
++      X : Column_Position;
++   begin
++      Get_Size (Win, Y, X);
++      Change_Lines_Status (Win, 0, Positive (Y), True);
++   end Touch;
++
++   procedure Untouch (Win : in Window := Standard_Window)
++   is
++      Y : Line_Position;
++      X : Column_Position;
++   begin
++      Get_Size (Win, Y, X);
++      Change_Lines_Status (Win, 0, Positive (Y), False);
++   end Untouch;
++
++   procedure Touch (Win   : in Window := Standard_Window;
++                    Start : in Line_Position;
++                    Count : in Positive)
++   is
++   begin
++      Change_Lines_Status (Win, Start, Count, True);
++   end Touch;
++
++   function Is_Touched
++     (Win  : Window := Standard_Window;
++      Line : Line_Position) return Boolean
++   is
++      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
++         return False;
++      else
++         return True;
++      end if;
++   end Is_Touched;
++
++   function Is_Touched
++     (Win : Window := Standard_Window) return Boolean
++   is
++      function WWinTouched (W : Window) return Curses_Bool;
++      pragma Import (C, WWinTouched, "is_wintouched");
++   begin
++      if WWinTouched (Win) = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Is_Touched;
++------------------------------------------------------------------------------
++   procedure Copy
++     (Source_Window            : in Window;
++      Destination_Window       : in Window;
++      Source_Top_Row           : in Line_Position;
++      Source_Left_Column       : in Column_Position;
++      Destination_Top_Row      : in Line_Position;
++      Destination_Left_Column  : in Column_Position;
++      Destination_Bottom_Row   : in Line_Position;
++      Destination_Right_Column : in Column_Position;
++      Non_Destructive_Mode     : in 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 then
++         raise Curses_Exception;
++      end if;
++   end Copy;
++
++   procedure Overwrite
++     (Source_Window      : in Window;
++      Destination_Window : in Window)
++   is
++      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;
++      end if;
++   end Overwrite;
++
++   procedure Overlay
++     (Source_Window      : in Window;
++      Destination_Window : in Window)
++   is
++      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;
++      end if;
++   end Overlay;
++
++------------------------------------------------------------------------------
++   procedure Insert_Delete_Lines
++     (Win   : in Window := Standard_Window;
++      Lines : in Integer       := 1) -- default is to insert one line above
++   is
++      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;
++      end if;
++   end Insert_Delete_Lines;
++
++   procedure Delete_Line (Win : in Window := Standard_Window)
++   is
++   begin
++      Insert_Delete_Lines (Win, -1);
++   end Delete_Line;
++
++   procedure Insert_Line (Win : in Window := Standard_Window)
++   is
++   begin
++      Insert_Delete_Lines (Win, 1);
++   end Insert_Line;
++------------------------------------------------------------------------------
++
++   procedure Get_Size
++     (Win               : in Window := Standard_Window;
++      Number_Of_Lines   : out Line_Count;
++      Number_Of_Columns : out Column_Count)
++   is
++      function GetMaxY (W : Window) return C_Int;
++      pragma Import (C, GetMaxY, "getmaxy");
++
++      function GetMaxX (W : Window) return C_Int;
++      pragma Import (C, GetMaxX, "getmaxx");
++
++      Y : constant C_Int := GetMaxY (Win)
++                          + C_Int (Offset_XY);
++      X : constant C_Int := GetMaxX (Win)
++                          + C_Int (Offset_XY);
++   begin
++      Number_Of_Lines   := Line_Count (Y);
++      Number_Of_Columns := Column_Count (X);
++   end Get_Size;
++
++   procedure Get_Window_Position
++     (Win             : in Window := Standard_Window;
++      Top_Left_Line   : out Line_Position;
++      Top_Left_Column : out Column_Position)
++   is
++      function GetBegY (W : Window) return C_Int;
++      pragma Import (C, GetBegY, "getbegy");
++
++      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));
++   begin
++      Top_Left_Line   := Line_Position (Y);
++      Top_Left_Column := Column_Position (X);
++   end Get_Window_Position;
++
++   procedure Get_Cursor_Position
++     (Win    : in  Window := Standard_Window;
++      Line   : out Line_Position;
++      Column : out Column_Position)
++   is
++      function GetCurY (W : Window) return C_Int;
++      pragma Import (C, GetCurY, "getcury");
++
++      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));
++   begin
++      Line   := Line_Position (Y);
++      Column := Column_Position (X);
++   end Get_Cursor_Position;
++
++   procedure Get_Origin_Relative_To_Parent
++     (Win                : in  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;
++      pragma Import (C, GetParY, "getpary");
++
++      function GetParX (W : Window) return C_Int;
++      pragma Import (C, GetParX, "getparx");
++
++      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;
++      else
++         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
++   is
++      function Newpad (Lines : C_Int; Columns : C_Int) return Window;
++      pragma Import (C, Newpad, "newpad");
++
++      W : Window;
++   begin
++      W := Newpad (C_Int (Lines), C_Int (Columns));
++      if W = Null_Window then
++         raise Curses_Exception;
++      end if;
++      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
++   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;
++      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                      : in Window;
++      Source_Top_Row           : in Line_Position;
++      Source_Left_Column       : in Column_Position;
++      Destination_Top_Row      : in Line_Position;
++      Destination_Left_Column  : in Column_Position;
++      Destination_Bottom_Row   : in Line_Position;
++      Destination_Right_Column : in 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 then
++         raise Curses_Exception;
++      end if;
++   end Refresh;
++
++   procedure Refresh_Without_Update
++     (Pad                      : in Window;
++      Source_Top_Row           : in Line_Position;
++      Source_Left_Column       : in Column_Position;
++      Destination_Top_Row      : in Line_Position;
++      Destination_Left_Column  : in Column_Position;
++      Destination_Bottom_Row   : in Line_Position;
++      Destination_Right_Column : in 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 then
++         raise Curses_Exception;
++      end if;
++   end Refresh_Without_Update;
++
++   procedure Add_Character_To_Pad_And_Echo_It
++     (Pad : in Window;
++      Ch  : in Attributed_Character)
++   is
++      function Pechochar (Pad : Window; Ch : C_Chtype)
++                          return C_Int;
++      pragma Import (C, Pechochar, "pechochar");
++   begin
++      if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Add_Character_To_Pad_And_Echo_It;
++
++   procedure Add_Character_To_Pad_And_Echo_It
++     (Pad : in Window;
++      Ch  : in 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    : in Window := Standard_Window;
++                     Amount : in Integer := 1)
++   is
++      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;
++      end if;
++   end Scroll;
++
++------------------------------------------------------------------------------
++   procedure Delete_Character (Win : in Window := Standard_Window)
++   is
++      function Wdelch (Win : Window) return C_Int;
++      pragma Import (C, Wdelch, "wdelch");
++   begin
++      if Wdelch (Win) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Delete_Character;
++
++   procedure Delete_Character
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position)
++   is
++      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;
++      end if;
++   end Delete_Character;
++------------------------------------------------------------------------------
++   function Peek (Win : Window := Standard_Window)
++     return Attributed_Character
++   is
++      function Winch (Win : Window) return C_Chtype;
++      pragma Import (C, Winch, "winch");
++   begin
++      return Chtype_To_AttrChar (Winch (Win));
++   end Peek;
++
++   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 C_Chtype;
++      pragma Import (C, Mvwinch, "mvwinch");
++   begin
++      return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
++   end Peek;
++------------------------------------------------------------------------------
++   procedure Insert (Win : in Window := Standard_Window;
++                     Ch  : in Attributed_Character)
++   is
++      function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
++      pragma Import (C, Winsch, "winsch");
++   begin
++      if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Insert;
++
++   procedure Insert
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Ch     : in Attributed_Character)
++   is
++      function Mvwinsch (Win : Window;
++                         Lin : C_Int;
++                         Col : C_Int;
++                         Ch  : C_Chtype) return C_Int;
++      pragma Import (C, Mvwinsch, "mvwinsch");
++   begin
++      if Mvwinsch (Win,
++                   C_Int (Line),
++                   C_Int (Column),
++                   AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Insert;
++------------------------------------------------------------------------------
++   procedure Insert (Win : in Window := Standard_Window;
++                     Str : in String;
++                     Len : in Integer := -1)
++   is
++      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;
++   begin
++      To_C (Str, Txt, Length);
++      if Winsnstr (Win, Txt, Len) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Insert;
++
++   procedure Insert
++     (Win    : in Window := Standard_Window;
++      Line   : in Line_Position;
++      Column : in Column_Position;
++      Str    : in String;
++      Len    : in Integer := -1)
++   is
++      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;
++   begin
++      To_C (Str, Txt, Length);
++      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
++        = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Insert;
++------------------------------------------------------------------------------
++   procedure Peek (Win : in  Window := Standard_Window;
++                   Str : out String;
++                   Len : in  Integer := -1)
++   is
++      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;
++   begin
++      if N < 0 then
++         N := Str'Length;
++      end if;
++      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;
++      end if;
++      To_Ada (Txt, Str, Cnt, True);
++      if Cnt < Str'Length then
++         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
++      end if;
++   end Peek;
++
++   procedure Peek
++     (Win    : in  Window := Standard_Window;
++      Line   : in  Line_Position;
++      Column : in  Column_Position;
++      Str    : out String;
++      Len    : in  Integer := -1)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Peek (Win, Str, Len);
++   end Peek;
++------------------------------------------------------------------------------
++   procedure Peek
++     (Win : in  Window := Standard_Window;
++      Str : out Attributed_String;
++      Len : in  Integer := -1)
++   is
++      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;
++   begin
++      if N < 0 then
++         N := Str'Length;
++      end if;
++      if N > Str'Length then
++         raise Constraint_Error;
++      end if;
++      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;
++      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    : in  Window := Standard_Window;
++      Line   : in  Line_Position;
++      Column : in  Column_Position;
++      Str    : out Attributed_String;
++      Len    : in Integer := -1)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Peek (Win, Str, Len);
++   end Peek;
++------------------------------------------------------------------------------
++   procedure Get (Win : in  Window := Standard_Window;
++                  Str : out String;
++                  Len : in  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;
++   begin
++      if N < 0 then
++         N := Str'Length;
++      end if;
++      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;
++      end if;
++      To_Ada (Txt, Str, Cnt, True);
++      if Cnt < Str'Length then
++         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
++      end if;
++   end Get;
++
++   procedure Get
++     (Win    : in  Window := Standard_Window;
++      Line   : in  Line_Position;
++      Column : in  Column_Position;
++      Str    : out String;
++      Len    : in  Integer := -1)
++   is
++   begin
++      Move_Cursor (Win, Line, Column);
++      Get (Win, Str, Len);
++   end Get;
++------------------------------------------------------------------------------
++   procedure Init_Soft_Label_Keys
++     (Format : in Soft_Label_Key_Format := Three_Two_Three)
++   is
++      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;
++      end if;
++   end Init_Soft_Label_Keys;
++
++   procedure Set_Soft_Label_Key (Label : in Label_Number;
++                                 Text  : in String;
++                                 Fmt   : in Label_Justification := Left)
++   is
++      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;
++   begin
++      To_C (Text, Txt, Len);
++      if Slk_Set (C_Int (Label), Txt,
++                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Soft_Label_Key;
++
++   procedure Refresh_Soft_Label_Keys
++   is
++      function Slk_Refresh return C_Int;
++      pragma Import (C, Slk_Refresh, "slk_refresh");
++   begin
++      if Slk_Refresh = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Refresh_Soft_Label_Keys;
++
++   procedure Refresh_Soft_Label_Keys_Without_Update
++   is
++      function Slk_Noutrefresh return C_Int;
++      pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
++   begin
++      if Slk_Noutrefresh = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Refresh_Soft_Label_Keys_Without_Update;
++
++   procedure Get_Soft_Label_Key (Label : in Label_Number;
++                                 Text  : out String)
++   is
++      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;
++
++   function Get_Soft_Label_Key (Label : in Label_Number) return String
++   is
++      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;
++
++   procedure Clear_Soft_Label_Keys
++   is
++      function Slk_Clear return C_Int;
++      pragma Import (C, Slk_Clear, "slk_clear");
++   begin
++      if Slk_Clear = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Clear_Soft_Label_Keys;
++
++   procedure Restore_Soft_Label_Keys
++   is
++      function Slk_Restore return C_Int;
++      pragma Import (C, Slk_Restore, "slk_restore");
++   begin
++      if Slk_Restore = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Restore_Soft_Label_Keys;
++
++   procedure Touch_Soft_Label_Keys
++   is
++      function Slk_Touch return C_Int;
++      pragma Import (C, Slk_Touch, "slk_touch");
++   begin
++      if Slk_Touch = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Touch_Soft_Label_Keys;
++
++   procedure Switch_Soft_Label_Key_Attributes
++     (Attr : in Character_Attribute_Set;
++      On   : in Boolean := True)
++   is
++      function Slk_Attron (Ch : C_Chtype) return C_Int;
++      pragma Import (C, Slk_Attron, "slk_attron");
++      function Slk_Attroff (Ch : C_Chtype) 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);
++   begin
++      if On then
++         Err := Slk_Attron  (AttrChar_To_Chtype (Ch));
++      else
++         Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
++      end if;
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Switch_Soft_Label_Key_Attributes;
++
++   procedure Set_Soft_Label_Key_Attributes
++     (Attr  : in Character_Attribute_Set := Normal_Video;
++      Color : in Color_Pair := Color_Pair'First)
++   is
++      function Slk_Attrset (Ch : C_Chtype) return C_Int;
++      pragma Import (C, Slk_Attrset, "slk_attrset");
++
++      Ch : constant Attributed_Character := (Ch    => Character'First,
++                                             Attr  => Attr,
++                                             Color => Color);
++   begin
++      if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Set_Soft_Label_Key_Attributes;
++
++   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
++   is
++      function Slk_Attr return C_Chtype;
++      pragma Import (C, Slk_Attr, "slk_attr");
++
++      Attr : constant C_Chtype := Slk_Attr;
++   begin
++      return Chtype_To_AttrChar (Attr).Attr;
++   end Get_Soft_Label_Key_Attributes;
++
++   function Get_Soft_Label_Key_Attributes return Color_Pair
++   is
++      function Slk_Attr return C_Chtype;
++      pragma Import (C, Slk_Attr, "slk_attr");
++
++      Attr : constant C_Chtype := Slk_Attr;
++   begin
++      return Chtype_To_AttrChar (Attr).Color;
++   end Get_Soft_Label_Key_Attributes;
++
++   procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair)
++   is
++      function Slk_Color (Color : in 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;
++      end if;
++   end Set_Soft_Label_Key_Color;
++
++------------------------------------------------------------------------------
++   procedure Enable_Key (Key    : in Special_Key_Code;
++                         Enable : in Boolean := True)
++   is
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Enable_Key;
++------------------------------------------------------------------------------
++   procedure Define_Key (Definition : in String;
++                         Key        : in Special_Key_Code)
++   is
++      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;
++   begin
++      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  : in Attributed_Character;
++                         Str : out String)
++   is
++      function Unctrl (Ch : C_Chtype) return chars_ptr;
++      pragma Import (C, Unctrl, "unctrl");
++   begin
++      Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
++   end Un_Control;
++
++   function Un_Control (Ch : in Attributed_Character) return String
++   is
++      function Unctrl (Ch : C_Chtype) return chars_ptr;
++      pragma Import (C, Unctrl, "unctrl");
++   begin
++      return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
++   end Un_Control;
++
++   procedure Delay_Output (Msecs : in Natural)
++   is
++      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;
++      end if;
++   end Delay_Output;
++
++   procedure Flush_Input
++   is
++      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;
++      end if;
++   end Flush_Input;
++------------------------------------------------------------------------------
++   function Baudrate return Natural
++   is
++      function Baud return C_Int;
++      pragma Import (C, Baud, "baudrate");
++   begin
++      return Natural (Baud);
++   end Baudrate;
++
++   function Erase_Character return Character
++   is
++      function Erasechar return C_Int;
++      pragma Import (C, Erasechar, "erasechar");
++   begin
++      return Character'Val (Erasechar);
++   end Erase_Character;
++
++   function Kill_Character return Character
++   is
++      function Killchar return C_Int;
++      pragma Import (C, Killchar, "killchar");
++   begin
++      return Character'Val (Killchar);
++   end Kill_Character;
++
++   function Has_Insert_Character return Boolean
++   is
++      function Has_Ic return Curses_Bool;
++      pragma Import (C, Has_Ic, "has_ic");
++   begin
++      if Has_Ic = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Has_Insert_Character;
++
++   function Has_Insert_Line return Boolean
++   is
++      function Has_Il return Curses_Bool;
++      pragma Import (C, Has_Il, "has_il");
++   begin
++      if Has_Il = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Has_Insert_Line;
++
++   function Supported_Attributes return Character_Attribute_Set
++   is
++      function Termattrs return C_Chtype;
++      pragma Import (C, Termattrs, "termattrs");
++
++      Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
++   begin
++      return Ch.Attr;
++   end Supported_Attributes;
++
++   procedure Long_Name (Name : out String)
++   is
++      function Longname return chars_ptr;
++      pragma Import (C, Longname, "longname");
++   begin
++      Fill_String (Longname, Name);
++   end Long_Name;
++
++   function Long_Name return String
++   is
++      function Longname return chars_ptr;
++      pragma Import (C, Longname, "longname");
++   begin
++      return Fill_String (Longname);
++   end Long_Name;
++
++   procedure Terminal_Name (Name : out String)
++   is
++      function Termname return chars_ptr;
++      pragma Import (C, Termname, "termname");
++   begin
++      Fill_String (Termname, Name);
++   end Terminal_Name;
++
++   function Terminal_Name return String
++   is
++      function Termname return chars_ptr;
++      pragma Import (C, Termname, "termname");
++   begin
++      return Fill_String (Termname);
++   end Terminal_Name;
++------------------------------------------------------------------------------
++   procedure Init_Pair (Pair : in Redefinable_Color_Pair;
++                        Fore : in Color_Number;
++                        Back : in Color_Number)
++   is
++      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
++         raise Constraint_Error;
++      end if;
++      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 then
++         raise Curses_Exception;
++      end if;
++   end Init_Pair;
++
++   procedure Pair_Content (Pair : in 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;
++      pragma Import (C, Paircontent, "pair_content");
++
++      F, B : aliased C_Short;
++   begin
++      if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
++         raise Curses_Exception;
++      else
++         Fore := Color_Number (F);
++         Back := Color_Number (B);
++      end if;
++   end Pair_Content;
++
++   function Has_Colors return Boolean
++   is
++      function Hascolors return Curses_Bool;
++      pragma Import (C, Hascolors, "has_colors");
++   begin
++      if Hascolors = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Has_Colors;
++
++   procedure Init_Color (Color : in Color_Number;
++                         Red   : in RGB_Value;
++                         Green : in RGB_Value;
++                         Blue  : in RGB_Value)
++   is
++      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 then
++            raise Curses_Exception;
++      end if;
++   end Init_Color;
++
++   function Can_Change_Color return Boolean
++   is
++      function Canchangecolor return Curses_Bool;
++      pragma Import (C, Canchangecolor, "can_change_color");
++   begin
++      if Canchangecolor = Curses_Bool_False then
++         return False;
++      else
++         return True;
++      end if;
++   end Can_Change_Color;
++
++   procedure Color_Content (Color : in  Color_Number;
++                            Red   : out RGB_Value;
++                            Green : out RGB_Value;
++                            Blue  : out RGB_Value)
++   is
++      type C_Short_Access is access all C_Short;
++
++      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;
++   begin
++      if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
++        Curses_Err then
++         raise Curses_Exception;
++      else
++         Red   := RGB_Value (R);
++         Green := RGB_Value (G);
++         Blue  := RGB_Value (B);
++      end if;
++   end Color_Content;
++
++------------------------------------------------------------------------------
++   procedure Save_Curses_Mode (Mode : in Curses_Mode)
++   is
++      function Def_Prog_Mode return C_Int;
++      pragma Import (C, Def_Prog_Mode, "def_prog_mode");
++      function Def_Shell_Mode return C_Int;
++      pragma Import (C, Def_Shell_Mode, "def_shell_mode");
++
++      Err : C_Int;
++   begin
++      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;
++      end if;
++   end Save_Curses_Mode;
++
++   procedure Reset_Curses_Mode (Mode : in Curses_Mode)
++   is
++      function Reset_Prog_Mode return C_Int;
++      pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
++      function Reset_Shell_Mode return C_Int;
++      pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
++
++      Err : C_Int;
++   begin
++      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;
++      end if;
++   end Reset_Curses_Mode;
++
++   procedure Save_Terminal_State
++   is
++      function Savetty return C_Int;
++      pragma Import (C, Savetty, "savetty");
++   begin
++      if Savetty = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Save_Terminal_State;
++
++   procedure Reset_Terminal_State
++   is
++      function Resetty return C_Int;
++      pragma Import (C, Resetty, "resetty");
++   begin
++      if Resetty = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Reset_Terminal_State;
++
++   procedure Rip_Off_Lines (Lines : in Integer;
++                            Proc  : in Stdscr_Init_Proc)
++   is
++      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;
++      end if;
++   end Rip_Off_Lines;
++
++   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
++   is
++      function Curs_Set (Curs : C_Int) return C_Int;
++      pragma Import (C, Curs_Set, "curs_set");
++
++      Res : C_Int;
++   begin
++      Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
++      if Res /= Curses_Err then
++         Visibility := Cursor_Visibility'Val (Res);
++      end if;
++   end Set_Cursor_Visibility;
++
++   procedure Nap_Milli_Seconds (Ms : in Natural)
++   is
++      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;
++      end if;
++   end Nap_Milli_Seconds;
++------------------------------------------------------------------------------
++include(`Public_Variables')
++------------------------------------------------------------------------------
++   procedure Transform_Coordinates
++     (W      : in Window := Standard_Window;
++      Line   : in out Line_Position;
++      Column : in out Column_Position;
++      Dir    : in 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;
++   begin
++      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;
++      else
++         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;
++      pragma Import (C, C_Use_Default_Colors, "use_default_colors");
++      Err : constant C_Int := C_Use_Default_Colors;
++   begin
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Use_Default_Colors;
++
++   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;
++      pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
++
++      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
++                                                       C_Int (Back));
++   begin
++      if Err = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Assume_Default_Colors;
++------------------------------------------------------------------------------
++   function Curses_Version return String
++   is
++      function curses_versionC return chars_ptr;
++      pragma Import (C, curses_versionC, "curses_version");
++      Result : constant chars_ptr := curses_versionC;
++   begin
++      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;
++      pragma Import (C, use_extended_namesC, "use_extended_names");
++
++      Res : constant C_Int :=
++         use_extended_namesC (Curses_Bool (Boolean'Pos (Enable)));
++   begin
++      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 : in String)
++   is
++      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;
++   begin
++      To_C (Filename, Txt, Length);
++      if Curses_Err = scr_dump (Txt) then
++         raise Curses_Exception;
++      end if;
++   end Screen_Dump_To_File;
++
++   procedure Screen_Restore_From_File (Filename : in String)
++   is
++      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;
++   begin
++      To_C (Filename, Txt, Length);
++      if Curses_Err = scr_restore (Txt)  then
++         raise Curses_Exception;
++      end if;
++   end Screen_Restore_From_File;
++
++   procedure Screen_Init_From_File (Filename : in String)
++   is
++      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;
++   begin
++      To_C (Filename, Txt, Length);
++      if Curses_Err = scr_init (Txt) then
++         raise Curses_Exception;
++      end if;
++   end Screen_Init_From_File;
++
++   procedure Screen_Set_File (Filename : in String)
++   is
++      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;
++      pragma Import (C, wresize);
++   begin
++      if wresize (Win,
++                  C_Int (Number_Of_Lines),
++                  C_Int (Number_Of_Columns)) = Curses_Err then
++         raise Curses_Exception;
++      end if;
++   end Resize;
++------------------------------------------------------------------------------
++
++end Terminal_Interface.Curses;
+Index: Ada95/gen/terminal_interface-curses.ads.m4
+--- ncurses-5.6/Ada95/gen/terminal_interface-curses.ads.m4	2006-06-25 14:30:22.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/gen/terminal_interface-curses.ads.m4	2007-05-05 20:33:52.000000000 +0000
+@@ -9,7 +9,7 @@
+ --                                 S P E C                                  --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --
++-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --
+ --                                                                          --
+ -- Permission is hereby granted, free of charge, to any person obtaining a  --
+ -- copy of this software and associated documentation files (the            --
+@@ -37,8 +37,8 @@
+ ------------------------------------------------------------------------------
+ --  Author:  Juergen Pfeifer, 1996
+ --  Version Control:
+---  $Revision: 1.37 $
+---  $Date: 2006/06/25 14:30:22 $
++--  $Revision: 1.41 $
++--  $Date: 2007/05/05 20:33:52 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ include(`Base_Defs')
+@@ -188,25 +188,21 @@
+    function Number_Of_Color_Pairs return Natural;
+    pragma Inline (Number_Of_Color_Pairs);
+ 
+-   ACS_Map : array (Character'Val (0) .. Character'Val (127)) of
+-     Attributed_Character;
+-   pragma Import (C, ACS_Map, "acs_map");
+-   --
+-   --
+-   --  Constants for several characters from the Alternate Character Set
+-   --  You must use this constants as indices into the ACS_Map array
+-   --  to get the corresponding attributed character at runtime.
+-   --
+ include(`ACS_Map')dnl
+ 
+    --  MANPAGE(`curs_initscr.3x')
+-   --  | Not implemented: newterm, set_term, delscreen, curscr
++   --  | Not implemented: newterm, set_term, delscreen
+ 
+    --  ANCHOR(`stdscr',`Standard_Window')
+    function Standard_Window return Window;
+    --  AKA
+    pragma Inline (Standard_Window);
+ 
++   --  ANCHOR(`curscr',`Current_Window')
++   function Current_Window return Window;
++   --  AKA
++   pragma Inline (Current_Window);
++
+    --  ANCHOR(`initscr()',`Init_Screen')
+    procedure Init_Screen;
+ 
+@@ -1478,7 +1474,7 @@
+    --  Window or if you pass the Null_Window as argument.
+    --  We don't inline this procedure
+ 
+-   --  MANPAGE(`dft_fgbg.3x')
++   --  MANPAGE(`default_colors.3x')
+ 
+    --  ANCHOR(`use_default_colors()',`Use_Default_Colors')
+    procedure Use_Default_Colors;
+@@ -1502,6 +1498,12 @@
+    function Use_Extended_Names (Enable : Boolean) return Boolean;
+    --  AKA
+ 
++   --  MANPAGE(`curs_trace.3x')
++
++   --  ANCHOR(`_nc_freeall()',`Curses_Free_All')
++   procedure Curses_Free_All;
++   --  AKA
++
+    --  MANPAGE(`curs_scr_dump.3x')
+ 
+    --  ANCHOR(`scr_dump()',`Screen_Dump_To_File')
+Index: Ada95/samples/ncurses2-attr_test.adb
+--- ncurses-5.6/Ada95/samples/ncurses2-attr_test.adb	2006-06-25 14:24:40.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/samples/ncurses2-attr_test.adb	2007-05-05 21:28:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ --                                 B O D Y                                  --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2004,2006 Free Software Foundation, Inc.              --
++-- Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              --
+ --                                                                          --
+ -- Permission is hereby granted, free of charge, to any person obtaining a  --
+ -- copy of this software and associated documentation files (the            --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ --  Version Control
+---  $Revision: 1.6 $
+---  $Date: 2006/06/25 14:24:40 $
++--  $Revision: 1.8 $
++--  $Date: 2007/05/05 21:28:18 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -56,7 +56,7 @@
+                         attr : Character_Attribute_Set;
+                         name : String;
+                         once : Boolean) return Line_Position;
+-   procedure attr_getc (skip : out Integer;
++   procedure attr_getc (skip : in out Integer;
+                         fg, bg : in out Color_Number;
+                         result : out Boolean);
+ 
+@@ -233,20 +233,18 @@
+       return row + 2;
+    end show_attr;
+ 
+-   procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number;
+-                                            result : out Boolean) is
++   procedure attr_getc (skip : in out Integer;
++                        fg, bg : in out Color_Number;
++                        result : out Boolean) is
+       ch : constant Key_Code := Getchar;
+       nc : constant Color_Number := Color_Number (Number_Of_Colors);
+-      curscr : Window;
+-      pragma Import (C, curscr, "curscr");
+-      --  curscr is not implemented in the Ada binding
+    begin
+       result := True;
+       if Ada.Characters.Handling.Is_Digit (Character'Val (ch)) then
+          skip := ctoi (Code_To_Char (ch));
+       elsif ch = CTRL ('L') then
+          Touch;
+-         Touch (curscr);
++         Touch (Current_Window);
+          Refresh;
+       elsif Has_Colors then
+          case ch is
+Index: Ada95/samples/ncurses2-m.adb
+--- ncurses-5.6/Ada95/samples/ncurses2-m.adb	2006-06-25 14:24:40.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/samples/ncurses2-m.adb	2007-05-05 18:02:40.000000000 +0000
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ --  Version Control
+---  $Revision: 1.6 $
+---  $Date: 2006/06/25 14:24:40 $
++--  $Revision: 1.7 $
++--  $Date: 2007/05/05 18:02:40 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ --  TODO use Default_Character where appropriate
+@@ -442,6 +442,7 @@
+ 
+          exit when command = 'q';
+       end loop;
++      Curses_Free_All;
+       return 0; -- TODO ExitProgram(EXIT_SUCCESS);
+    end main;
+ 
+Index: Ada95/samples/rain.adb
+--- ncurses-5.6/Ada95/samples/rain.adb	2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/samples/rain.adb	2007-05-05 18:54:03.000000000 +0000
+@@ -36,7 +36,8 @@
+ --  Author:  Laurent Pautet <pautet@gnat.com>
+ --  Modified by:  Juergen Pfeifer, 1997
+ --  Version Control
+---  $Revision: 1.6 $
++--  $Revision: 1.7 $
++--  $Date: 2007/05/05 18:54:03 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ --                                                                          --
+@@ -158,5 +159,6 @@
+    Visibility := Normal;
+    Set_Cursor_Visibility (Visibility);
+    End_Windows;
++   Curses_Free_All;
+ 
+ end Rain;
+Index: Ada95/samples/sample.adb
+--- ncurses-5.6/Ada95/samples/sample.adb	2003-10-25 15:39:18.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/samples/sample.adb	2007-05-05 18:46:21.000000000 +0000
+@@ -35,7 +35,8 @@
+ ------------------------------------------------------------------------------
+ --  Author:  Juergen Pfeifer, 1996
+ --  Version Control
+---  $Revision: 1.14 $
++--  $Revision: 1.15 $
++--  $Date: 2007/05/05 18:46:21 $
+ --  Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Text_IO;
+@@ -204,6 +205,7 @@
+       --  We have some fixed key throughout this sample
+       Main_Menu;
+       End_Windows;
++      Curses_Free_All;
+ 
+    exception
+       when Event : others =>
+Index: Ada95/src/Makefile.in
+Prereq:  1.30 
+--- ncurses-5.6/Ada95/src/Makefile.in	2004-08-21 21:29:50.000000000 +0000
++++ ncurses-5.6-20071201/Ada95/src/Makefile.in	2007-09-15 18:22:24.000000000 +0000
+@@ -28,7 +28,7 @@
+ #
+ #  Author:  Juergen Pfeifer, 1996
+ #
+-#  $Id: Makefile.in,v 1.30 2004/08/21 21:29:50 tom Exp $
++#  $Id: Makefile.in,v 1.31 2007/09/15 18:22:24 tom Exp $
+ #
+ .SUFFIXES:
+ 
+@@ -197,7 +197,7 @@
+ 
+ realclean :: distclean
+ 
+-BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(srcdir)/$(ABASE).adb
++BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(ABASE).adb
+ 
+ $(ALIB).o: $(srcdir)/$(ALIB).ads
+ 	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ALIB).ads
+@@ -207,8 +207,8 @@
+ 	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-aux.adb
+ 
+ 
+-$(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
+-	$(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
++$(ABASE).o: $(ABASE).adb $(BASEDEPS)
++	$(ADA) $(ADAFLAGS) -c -o $@ $(ABASE).adb
+ 
+ 
+ $(ABASE)-terminfo.o: \
+Index: INSTALL
+Prereq:  1.114 
+--- ncurses-5.6/INSTALL	2006-12-17 19:58:19.000000000 +0000
++++ ncurses-5.6-20071201/INSTALL	2007-12-01 19:37:47.000000000 +0000
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: INSTALL,v 1.114 2006/12/17 19:58:19 tom Exp $
++-- $Id: INSTALL,v 1.122 2007/12/01 19:37:47 tom Exp $
+ ---------------------------------------------------------------------
+              How to install Ncurses/Terminfo on your system
+ ---------------------------------------------------------------------
+@@ -304,6 +304,11 @@
+ 	return deceptive results, so you may have to override the configure
+ 	script.  Or you may be building tic for a smaller machine.
+ 
++    --disable-big-strings
++	Disable compile-time optimization of predefined tables which puts
++	all of their strings into a very long string, to reduce relocation
++	overhead.
++
+     --disable-database
+ 	Use only built-in data.  The ncurses libraries normally read terminfo
+ 	and termcap data from disk.  You can configure ncurses to have a
+@@ -334,6 +339,16 @@
+ 	For testing, compile-in code that frees memory that normally would not
+ 	be freed, to simplify analysis of memory-leaks.
+ 
++	Any implementation of curses must not free the memory associated with
++	a screen, since (even after calling endwin()), it must be available
++	for use in the next call to refresh().  There are also chunks of
++	memory held for performance reasons.  That makes it hard to analyze
++	curses applications for memory leaks.  To work around this, build
++	a debugging version of the ncurses library which frees those chunks
++	which it can, and provides the _nc_free_and_exit() function to free
++	the remainder on exit.  The ncurses utility and test programs use this
++	feature, e.g., via the ExitProgram() macro.
++
+     --disable-lp64
+ 	The header files will ignore use of the _LP64 symbol to make chtype
+ 	and mmask_t types 32 bits (they may be long on 64-bit hosts, for
+@@ -358,6 +373,13 @@
+ 	rather than the include directory.  This makes it simpler to avoid
+ 	compile-time conflicts with other versions of curses.h
+ 
++    --disable-relink
++	If --enable-rpath is given, the generated makefiles normally will
++	rebuild the libraries during install.  Use this option to simply
++	copy whatever the linked produced.
++
++	This option is ignored if --enable-rpath is not given.
++
+     --disable-root-environ
+ 	Compile with environment restriction, so certain environment variables
+ 	are not available when running as root, or via a setuid/setgid
+@@ -476,12 +498,22 @@
+ 	may not be accurate, or that your stty settings have disabled the use
+ 	of tabs.
+ 
++    --enable-mixed-case
++	Controls whether the filesystem on which the terminfo database resides
++	supports mixed-case filenames (normal for UNIX, but not on other
++	systems).  If you do not specify this option, the configure script
++	checks the current filesystem.
++
+     --enable-no-padding
+ 	Compile-in support for the $NCURSES_NO_PADDING environment variable,
+ 	which allows you to suppress the effect of non-mandatory padding in
+ 	terminfo entries.  This is the default, unless you have disabled the
+ 	extended functions.
+ 
++    --enable-reentrant
++	Compile experimental configuration which improves reentrant use of the
++	library by reducing global and static variables.
++
+     --enable-rpath
+ 	Use rpath option when generating shared libraries, and (with some
+ 	restrictions) when linking the corresponding programs.  This originally
+@@ -495,6 +527,9 @@
+ 	environment variable, they do not work with setuid applications since
+ 	the LD_LIBRARY_PATH variable would be unset in that situation.
+ 
++	This option does not apply to --with-libtool, since libtool makes
++	extra assumptions about rpath.
++
+     --enable-safe-sprintf
+ 	Compile with experimental safe-sprintf code.  You may consider using
+ 	this if you are building ncurses for a system that has neither
+@@ -659,10 +694,16 @@
+ 
+ 	See also --without-dlsym
+ 
+-    --with-hashed-db
++    --with-hashed-db[=XXX]
+ 	Use a hashed database for storing terminfo data rather than storing
+ 	each compiled entry in a separate binary file within a directory
+ 	tree.
++	
++	In particular, this uses the Berkeley database 1.8.5 interface, as
++	provided by that and its successors db 2, 3, and 4.  The actual
++	interface is slightly different in the successor versions of the
++	Berkeley database.  The database should have been configured using
++	"--enable-compat185".
+ 
+ 	If you use this option for configuring ncurses, tic will only be able
+ 	to write entries in the hashed database.  infocmp can still read
+@@ -674,6 +715,12 @@
+ 	You cannot have a directory containing both hashed-database and
+ 	filesystem-based terminfo entries.
+ 
++	Use the parameter value to give the install-prefix used for the
++	datbase, e.g.,
++		--with-hashed-db=/usr/local/BigBase
++	to find the corresponding include- and lib-directories under the
++	given directory.
++
+ 	See also the --enable-getcap option.
+ 
+     --with-install-prefix=XXX
+@@ -833,6 +880,15 @@
+ 	Specify a search-list of termcap files which will be compiled into the
+ 	ncurses library (default:  /etc/termcap:/usr/share/misc/termcap)
+ 
++    --with-ticlib[=XXX]
++	When building the ncurses library, build a separate library for
++	the modules that are used only by the utility programs.  Normally
++	those would be bundled with the termlib or ncurses libraries.
++
++	If an option value is given, that overrides the name of the tic
++	library.  As in termlib, there is no ABI difference between the
++	"wide" libticw.so and libtic.so
++
+     --with-trace
+ 	Configure the trace() function as part of the all models of the ncurses
+ 	library.  Normally it is part of the debug (libncurses_g) library only.
+Index: MANIFEST
+--- ncurses-5.6/MANIFEST	2006-11-26 02:21:05.000000000 +0000
++++ ncurses-5.6-20071201/MANIFEST	2007-09-08 21:31:21.000000000 +0000
+@@ -4,6 +4,7 @@
+ ./Ada95/README
+ ./Ada95/TODO
+ ./Ada95/gen/Makefile.in
++./Ada95/gen/adacurses-config.in
+ ./Ada95/gen/gen.c
+ ./Ada95/gen/html.m4
+ ./Ada95/gen/normal.m4
+@@ -20,6 +21,7 @@
+ ./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
+ ./Ada95/gen/terminal_interface-curses-panels.ads.m4
+ ./Ada95/gen/terminal_interface-curses-trace.ads.m4
++./Ada95/gen/terminal_interface-curses.adb.m4
+ ./Ada95/gen/terminal_interface-curses.ads.m4
+ ./Ada95/samples/Makefile.in
+ ./Ada95/samples/README
+@@ -163,7 +165,6 @@
+ ./Ada95/src/terminal_interface-curses-text_io.adb
+ ./Ada95/src/terminal_interface-curses-text_io.ads
+ ./Ada95/src/terminal_interface-curses-trace.adb_p
+-./Ada95/src/terminal_interface-curses.adb
+ ./Ada95/src/terminal_interface.ads
+ ./INSTALL
+ ./MANIFEST
+@@ -553,8 +554,10 @@
+ ./man/curs_instr.3x
+ ./man/curs_inwstr.3x
+ ./man/curs_kernel.3x
++./man/curs_legacy.3x
+ ./man/curs_mouse.3x
+ ./man/curs_move.3x
++./man/curs_opaque.3x
+ ./man/curs_outopts.3x
+ ./man/curs_overlay.3x
+ ./man/curs_pad.3x
+@@ -709,7 +712,8 @@
+ ./mk-0th.awk
+ ./mk-1st.awk
+ ./mk-2nd.awk
+-./mkinstalldirs
++./mk-hdr.awk
++./mkdirs.sh
+ ./ncurses/Makefile.in
+ ./ncurses/README
+ ./ncurses/README.IZ
+@@ -799,6 +803,7 @@
+ ./ncurses/base/safe_sprintf.c
+ ./ncurses/base/sigaction.c
+ ./ncurses/base/tries.c
++./ncurses/base/use_window.c
+ ./ncurses/base/version.c
+ ./ncurses/base/vsscanf.c
+ ./ncurses/base/wresize.c
+@@ -808,6 +813,8 @@
+ ./ncurses/llib-lncursesw
+ ./ncurses/modules
+ ./ncurses/tinfo/MKcaptab.awk
++./ncurses/tinfo/MKcaptab.sh
++./ncurses/tinfo/MKcodes.awk
+ ./ncurses/tinfo/MKfallback.sh
+ ./ncurses/tinfo/MKkeys_list.sh
+ ./ncurses/tinfo/MKnames.awk
+@@ -824,6 +831,7 @@
+ ./ncurses/tinfo/comp_scan.c
+ ./ncurses/tinfo/db_iterator.c
+ ./ncurses/tinfo/doalloc.c
++./ncurses/tinfo/entries.c
+ ./ncurses/tinfo/free_ttype.c
+ ./ncurses/tinfo/getenv_num.c
+ ./ncurses/tinfo/hashed_db.c
+@@ -856,6 +864,7 @@
+ ./ncurses/tinfo/setbuf.c
+ ./ncurses/tinfo/strings.c
+ ./ncurses/tinfo/trim_sgr0.c
++./ncurses/tinfo/use_screen.c
+ ./ncurses/tinfo/write_entry.c
+ ./ncurses/trace/README
+ ./ncurses/trace/lib_trace.c
+@@ -891,6 +900,7 @@
+ ./ncurses/widechar/lib_in_wchnstr.c
+ ./ncurses/widechar/lib_ins_wch.c
+ ./ncurses/widechar/lib_inwstr.c
++./ncurses/widechar/lib_key_name.c
+ ./ncurses/widechar/lib_pecho_wchar.c
+ ./ncurses/widechar/lib_slk_wset.c
+ ./ncurses/widechar/lib_unget_wch.c
+@@ -934,29 +944,6 @@
+ ./progs/toe.c
+ ./progs/tput.c
+ ./progs/tset.c
+-./tack/COPYING
+-./tack/HISTORY
+-./tack/Makefile.in
+-./tack/README
+-./tack/ansi.c
+-./tack/charset.c
+-./tack/color.c
+-./tack/control.c
+-./tack/crum.c
+-./tack/edit.c
+-./tack/fun.c
+-./tack/init.c
+-./tack/menu.c
+-./tack/modes.c
+-./tack/modules
+-./tack/output.c
+-./tack/pad.c
+-./tack/scan.c
+-./tack/sync.c
+-./tack/sysdep.c
+-./tack/tack.1
+-./tack/tack.c
+-./tack/tack.h
+ ./tar-copy.sh
+ ./test/Makefile.in
+ ./test/README
+@@ -981,6 +968,7 @@
+ ./test/demo_termcap.c
+ ./test/ditto.c
+ ./test/dots.c
++./test/dots_mvcur.c
+ ./test/echochar.c
+ ./test/edit_field.c
+ ./test/edit_field.h
+@@ -992,8 +980,11 @@
+ ./test/gdc.c
+ ./test/hanoi.c
+ ./test/hashtest.c
++./test/inch_wide.c
++./test/inchs.c
+ ./test/ins_wide.c
+ ./test/inserts.c
++./test/key_names.c
+ ./test/keynames.c
+ ./test/knight.c
+ ./test/linux-color.dat
+@@ -1010,8 +1001,15 @@
+ ./test/rain.c
+ ./test/redraw.c
+ ./test/savescreen.c
++./test/savescreen.sh
+ ./test/tclock.c
+ ./test/test.priv.h
++./test/test_arrays.c
++./test/test_get_wstr.c
++./test/test_getstr.c
++./test/test_instr.c
++./test/test_inwstr.c
++./test/test_opaque.c
+ ./test/testaddch.c
+ ./test/testcurs.c
+ ./test/testscanw.c
+Index: NEWS
+Prereq:  1.1056 
+--- ncurses-5.6/NEWS	2006-12-17 20:36:26.000000000 +0000
++++ ncurses-5.6-20071201/NEWS	2007-12-01 19:38:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
++-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
+ --                                                                           --
+ -- Permission is hereby granted, free of charge, to any person obtaining a   --
+ -- copy of this software and associated documentation files (the             --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: NEWS,v 1.1056 2006/12/17 20:36:26 tom Exp $
++-- $Id: NEWS,v 1.1186 2007/12/01 19:38:49 tom Exp $
+ -------------------------------------------------------------------------------
+ 
+ This is a log of changes that ncurses has gone through since Zeyd started
+@@ -45,9 +45,504 @@
+ Changes through 1.9.9e did not credit all contributions;
+ it is not possible to add this information.
+ 
++20071201
++	+ add note about configure options needed for Berkeley database to the
++	  INSTALL file.
++	+ improve checks for version of Berkeley database libraries.
++	+ amend fix for rpath to not modify LDFLAGS if the platform has no
++	  applicable transformation (report by Christian Ebert, cf: 20071124).
++
++20071124
++	+ modify configure option --with-hashed-db to accept a parameter which
++	  is the install-prefix of a given Berkeley Database (prompted by
++	  pierre4d2 comments).
++	+ rewrite wrapper for wcrtomb(), making it work on Solaris.  This is
++	  used in the form library to determine the length of the buffer needed
++	  by field_buffer (report by Alfred Fung).
++	+ remove unneeded window-parameter from C++ binding for wresize (report
++	  by Chris Lee).
++
++20071117
++	+ modify the support for filesystems which do not support mixed-case to
++	  generate 2-character (hexadecimal) codes for the lower-level of the
++	  filesystem terminfo database (request by Michail Vidiassov).
++	+ add configure option --enable-mixed-case, to allow overriding the
++	  configure script's check if the filesystem supports mixed-case
++	  filenames.
++	+ add wresize() to C++ binding (request by Chris Lee).
++	+ define NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS in curses.h to make
++	  it simpler to tell if the extended functions and/or colors are
++	  declared.
++
++20071103
++	+ update memory-leak checks for changes to names.c and codes.c
++	+ correct acsc strings in h19, z100 (patch by Benjamin C W Sittler).
++
++20071020
++	+ continue implementing support for threading demo by adding mutex
++	  for use_window().
++	+ add mrxvt terminfo entry, add/fix xterm building blocks for modified
++	  cursor keys -TD
++	+ compile with FreeBSD "contemporary" TTY interface (patch by
++	  Rong-En Fan).
++
++20071013
++	+ modify makefile rules to allow clear, tput and tset to be built
++	  without libtic.  The other programs (infocmp, tic and toe) rely on
++	  that library.
++	+ add/modify null-pointer checks in several functions for SP and/or
++	  the WINDOW* parameter (report by Thorben Krueger).
++	+ fixes for field_buffer() in formw library (see Redhat Bugzilla
++	  #310071, patches by Miroslav Lichvar).
++	+ improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
++	  Lichvar).
++	+ update/improve mlterm and rxvt terminfo entries, e.g., for
++	  the modified cursor- and keypad-keys -TD
++
++20071006
++	+ add code to curses.priv.h ifdef'd with NCURSES_CHAR_EQ, which
++	  changes the CharEq() macro to an inline function to allow comparing
++	  cchar_t struct's without comparing gaps in a possibly unpacked
++	  memory layout (report by Miroslav Lichvar).
++
++20070929
++	+ add new functions to lib_trace.c to setup mutex's for the _tracef()
++	  calls within the ncurses library.
++	+ for the reentrant model, move _nc_tputs_trace and _nc_outchars into
++	  the SCREEN.
++	+ start modifying test/worm.c to provide threading demo (incomplete).
++	+ separated ifdef's for some BSD-related symbols in tset.c, to make
++	  it compile on LynxOS (report by Greg Gemmer).
++20070915
++	+ modify Ada95/gen/Makefile to use shlib script, to simplify building
++	  shared-library configuration on platforms lacking rpath support.
++	+ build-fix for Ada95/src/Makefile to reflect changed dependency for
++	  the terminal-interface-curses-aux.adb file which is now generated.
++	+ restructuring test/worm.c, for use_window() example.
++
++20070908
++	+ add use_window() and use_screen() functions, to develop into support
++	  for threaded library (incomplete).
++	+ fix typos in man/curs_opaque.3x which kept the install script from
++	  creating symbolic links to two aliases created in 20070818 (report by
++	  Rong-En Fan).
++
++20070901
++	+ remove a spurious newline from output of html.m4, which caused links
++	  for Ada95 html to be incorrect for the files generated using m4.
++	+ start investigating mutex's for SCREEN manipulation (incomplete).
++	+ minor cleanup of codes.c/names.c for --enable-const
++	+ expand/revise "Routine and Argument Names" section of ncurses manpage
++	  to address report by David Givens in newsgroup discussion.
++	+ fix interaction between --without-progs/--with-termcap configure
++	  options (report by Michail Vidiassov).
++	+ fix typo in "--disable-relink" option (report by Michail Vidiassov).
++
++20070825
++	+ fix a sign-extension bug in infocmp's repair_acsc() function
++	  (cf: 971004).
++	+ fix old configure script bug which prevented "--disable-warnings"
++	  option from working (patch by Mike Frysinger).
++
++20070818
++	+ add 9term terminal description (request by Juhapekka Tolvanen) -TD
++	+ modify comp_hash.c's string output to avoid misinterpreting a null
++	  "\0" followed by a digit.
++	+ modify MKnames.awk and MKcodes.awk to support big-strings.
++	  This only applies to the cases (broken linker, reentrant) where
++	  the corresponding arrays are accessed via wrapper functions.
++	+ split MKnames.awk into two scripts, eliminating the shell redirection
++	  which complicated the make process and also the bogus timestamp file
++	  which was introduced to fix "make -j".
++	+ add test/test_opaque.c, test/test_arrays.c
++	+ add wgetscrreg() and wgetparent() for applications that may need it
++	  when NCURSES_OPAQUE is defined (prompted by Bryan Christ).
++
++20070812
++	+ amend treatment of infocmp "-r" option to retain the 1023-byte limit
++	  unless "-T" is given (cf: 981017).
++	+ modify comp_captab.c generation to use big-strings.
++	+ make _nc_capalias_table and _nc_infoalias_table private accessed via
++	  _nc_get_alias_table() since the tables are used only within the tic
++	  library.
++	+ modify configure script to skip Intel compiler in CF_C_INLINE.
++	+ make _nc_info_hash_table and _nc_cap_hash_table private accessed via
++	  _nc_get_hash_table() since the tables are used only within the tic
++	  library.
++
++20070728
++	+ make _nc_capalias_table and _nc_infoalias_table private, accessed via
++	  _nc_get_alias_table() since they are used only by parse_entry.c
++	+ make _nc_key_names private since it is used only by lib_keyname.c
++	+ add --disable-big-strings configure option to control whether
++	  unctrl.c is generated using the big-string optimization - which may
++	  use strings longer than supported by a given compiler.
++	+ reduce relocation tables for tic, infocmp by changing type of
++	  internal hash tables to short, and make those private symbols.
++	+ eliminate large fixed arrays from progs/infocmp.c
++
++20070721
++	+ change winnstr() to stop at the end of the line (cf: 970315).
++	+ add test/test_get_wstr.c
++	+ add test/test_getstr.c
++	+ add test/test_inwstr.c
++	+ add test/test_instr.c
++
++20070716
++	+ restore a call to obtain screen-size in _nc_setupterm(), which
++	  is used in tput and other non-screen applications via setupterm()
++	  (Debian #433357, reported by Florent Bayle, Christian Ohm,
++	  cf: 20070310).
++
++20070714
++	+ add test/savescreen.c test-program
++	+ add check to trace-file open, if the given name is a directory, add
++	  ".log" to the name and try again.
++	+ add konsole-256color entry -TD
++	+ add extra gcc warning options from xterm.
++	+ minor fixes for ncurses/hashmap test-program.
++	+ modify configure script to quiet c++ build with libtool when the
++	  --disable-echo option is used.
++	+ modify configure script to disable ada95 if libtool is selected,
++	  writing a warning message (addresses FreeBSD ports/114493).
++	+ update config.guess, config.sub
++
++20070707
++	+ add continuous-move "M" to demo_panels to help test refresh changes.
++	+ improve fix for refresh of window on top of multi-column characters,
++	  taking into account some split characters on left/right window
++	  boundaries.
++
++20070630
++	+ add "widec" row to _tracedump() output to help diagnose remaining
++	  problems with multi-column characters.
++	+ partial fix for refresh of window on top of multi-column characters
++	  which are partly overwritten (report by Sadrul H Chowdhury).
++	+ ignore A_CHARTEXT bits in vidattr() and vid_attr(), in case
++	  multi-column extension bits are passed there.
++	+ add setlocale() call to demo_panels.c, needed for wide-characters.
++	+ add some output flags to _nc_trace_ttymode to help diagnose a bug
++	  report by Larry Virden, i.e., ONLCR, OCRNL, ONOCR and ONLRET,
++
++20070623
++	+ add test/demo_panels.c
++	+ implement opaque version of setsyx() and getsyx().
++
++20070612
++	+ corrected xterm+pcf2 terminfo modifiers for F1-F4, to match xterm
++	  #226 -TD
++	+ split-out key_name() from MKkeyname.awk since it now depends upon
++	  wunctrl() which is not in libtinfo (report by Rong-En Fan).
++
++20070609
++	+ add test/key_name.c
++	+ add stdscr cases to test/inchs.c and test_inch_wide.c
++	+ update test/configure
++	+ correct formatting of DEL (0x7f) in _nc_vischar().
++	+ null-terminate result of wunctrl().
++	+ add null-pointer check in key_name() (report by Andreas Krennmair,
++	  cf: 20020901).
++
++20070602
++	+ adapt mouse-handling code from menu library in form-library
++	  (discussion with Clive Nicolson).
++	+ add a modification of test/dots.c, i.e., test/dots_mvcur.c to
++	  illustrate how to use mvcur().
++	+ modify wide-character flavor of SetAttr() to preserve the
++	  WidecExt() value stored in the .attr field, e.g., in case it
++	  is overwritten by chgat (report by Aleksi Torhamo).
++	+ correct buffer-size for _nc_viswbuf2n() (report by Aleksi Torhamo).
++	+ build-fixes for Solaris 2.6 and 2.7 (patch by Peter O'Gorman).
++
++20070526
++	+ modify keyname() to use "^X" form only if meta() has been called, or
++	  if keyname() is called without initializing curses, e.g., via
++	  initscr() or newterm() (prompted by LinuxBase #1604).
++	+ document some portability issues in man/curs_util.3x
++	+ add a shadow copy of TTY buffer to _nc_prescreen to fix applications
++	  broken by moving that data into SCREEN (cf: 20061230).
++
++20070512
++	+ add 'O' (wide-character panel test) in ncurses.c to demonstrate a
++	  problem reported by Sadrul H Chowdhury with repainting parts of
++	  a fullwidth cell.
++	+ modify slk_init() so that if there are preceding calls to
++	  ripoffline(), those affect the available lines for soft-keys (adapted
++	  from patch by Clive Nicolson).
++	+ document some portability issues in man/curs_getyx.3x
++
++20070505
++	+ fix a bug in Ada95/samples/ncurses which caused a variable to
++	  become uninitialized in the "b" test.
++	+ fix Ada95/gen/Makefile.in adahtml rule to account for recent
++	  movement of files, fix a few incorrect manpage references in the
++	  generated html.
++	+ add Ada95 binding to _nc_freeall() as Curses_Free_All to help with
++	  memory-checking.
++	+ correct some functions in Ada95 binding which were using return value
++	  from C where none was returned:  idcok(), immedok() and wtimeout().
++	+ amend recent changes for Ada95 binding to make it build with
++	  Cygwin's linker, e.g., with configure options
++		--enable-broken-linker --with-ticlib
++
++20070428
++	+ add a configure check for gcc's options for inlining, use that to
++	  quiet a warning message where gcc's default behavior changed from
++	  3.x to 4.x.
++	+ improve warning message when checking if GPM is linked to curses
++	  library by not warning if its use of "wgetch" is via a weak symbol.
++	+ add loader options when building with static libraries to ensure that
++	  an installed shared library for ncurses does not conflict.  This is
++	  reported as problem with Tru64, but could affect other platforms
++	  (report Martin Mokrejs, analysis by Tim Mooney).
++	+ fix build on cygwin after recent ticlib/termlib changes, i.e.,
++	  + adjust TINFO_SUFFIX value to work with cygwin's dll naming
++	  + revert a change from 20070303 which commented out dependency of
++	    SHLIB_LIST in form/menu/panel/c++ libraries.
++	+ fix initialization of ripoff stack pointer (cf: 20070421).
++
++20070421
++	+ move most static variables into structures _nc_globals and
++	  _nc_prescreen, to simplify storage.
++	+ add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
++	  type for data manipulated by signal handlers (prompted by comments
++	  in mailing.openbsd.bugs newsgroup).
++	+ modify CF_WITH_LIBTOOL to allow one to pass options such as -static
++	  to the libtool create- and link-operations.
++
++20070414
++	+ fix whitespace in curs_opaque.3x which caused a spurious ';' in
++	  the installed aliases (report by Peter Santoro).
++	+ fix configure script to not try to generate adacurses-config when
++	  Ada95 tree is not built.
++
++20070407
++	+ add man/curs_legacy.3x, man/curs_opaque.3x
++	+ fix acs_map binding for Ada95 when --enable-reentrant is used.
++	+ add adacurses-config to the Ada95 install, based on version from
++	  FreeBSD port, in turn by Juergen Pfeifer in 2000 (prompted by
++	  comment on comp.lang.ada newsgroup).
++	+ fix includes in c++ binding to build with Intel compiler
++	  (cf: 20061209).
++	+ update install rule in Ada95 to use mkdirs.sh
++	> other fixes prompted by inspection for Coverity report:
++	+ modify ifdef's for c++ binding to use try/catch/throw statements
++	+ add a null-pointer check in tack/ansi.c request_cfss()
++	+ fix a memory leak in ncurses/base/wresize.c
++	+ corrected check for valid memu/meml capabilities in
++	  progs/dump_entry.c when handling V_HPUX case.
++	> fixes based on Coverity report:
++	+ remove dead code in test/bs.c
++	+ remove dead code in test/demo_defkey.c
++	+ remove an unused assignment in progs/infocmp.c
++	+ fix a limit check in tack/ansi.c tools_charset()
++	+ fix tack/ansi.c tools_status() to perform the VT320/VT420
++	  tests in request_cfss().  The function had exited too soon.
++	+ fix a memory leak in tic.c's make_namelist()
++	+ fix a couple of places in tack/output.c which did not check for EOF.
++	+ fix a loop-condition in test/bs.c
++	+ add index checks in lib_color.c for color palettes
++	+ add index checks in progs/dump_entry.c for version_filter() handling
++	  of V_BSD case.
++	+ fix a possible null-pointer dereference in copywin()
++	+ fix a possible null-pointer dereference in waddchnstr()
++	+ add a null-pointer check in _nc_expand_try()
++	+ add a null-pointer check in tic.c's make_namelist()
++	+ add a null-pointer check in _nc_expand_try()
++	+ add null-pointer checks in test/cardfile.c
++	+ fix a double-free in ncurses/tinfo/trim_sgr0.c
++	+ fix a double-free in ncurses/base/wresize.c
++	+ add try/catch block to c++/cursesmain.cc
++
++20070331
++	+ modify Ada95 binding to build with --enable-reentrant by wrapping
++	  global variables (bug: acs_map does not yet work).
++	+ modify Ada95 binding to use the new access-functions, allowing it
++	  to build/run when NCURSES_OPAQUE is set.
++	+ add access-functions and macros to return properties of the WINDOW
++	  structure, e.g., when NCURSES_OPAQUE is set.
++	+ improved install-sh's quoting.
++	+ use mkdirs.sh rather than mkinstalldirs, e.g., to use fixes from
++	  other programs.
++
++20070324
++	+ eliminate part of the direct use of WINDOW data from Ada95 interface.
++	+ fix substitutions for termlib filename to make configure option
++	  --enable-reentrant work with --with-termlib.
++	+ change a constructor for NCursesWindow to allow compiling with
++	  NCURSES_OPAQUE set, since we cannot pass a reference to
++	  an opaque pointer.
++
++20070317
++	+ ignore --with-chtype=unsigned since unsigned is always added to
++	  the type in curses.h; do the same for --with-mmask-t.
++	+ change warning regarding --enable-ext-colors and wide-character
++	  in the configure script to an error.
++	+ tweak error message in CF_WITH_LIBTOOL to distinguish other programs
++	  such as Darwin's libtool program (report by Michail Vidiassov)
++	+ modify edit_man.sh to allow for multiple substitutions per line.
++	+ set locale in misc/ncurses-config.in since it uses a range
++	+ change permissions libncurses++.a install (report by Michail
++	  Vidiassov).
++	+ corrected length of temporary buffer in wide-character version
++	  of set_field_buffer() (related to report by Bryan Christ).
++
++20070311
++	+ fix mk-1st.awk script install_shlib() function, broken in 20070224
++	  changes for cygwin (report by  Michail Vidiassov).
++
++20070310
++	+ increase size of array in _nc_visbuf2n() to make "tic -v" work
++	  properly in its similar_sgr() function (report/analysis by Peter
++	  Santoro).
++	+ add --enable-reentrant configure option for ongoing changes to
++	  implement a reentrant version of ncurses:
++	  + libraries are suffixed with "t"
++	  + wrap several global variables (curscr, newscr, stdscr, ttytype,
++	    COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES and TABSIZE) as
++	    functions returning values stored in SCREEN or cur_term.
++	  + move some initialization (LINES, COLS) from lib_setup.c,
++	    i.e., setupterm() to _nc_setupscreen(), i.e., newterm().
++
++20070303
++	+ regenerated html documentation.
++	+ add NCURSES_OPAQUE symbol to curses.h, will use to make structs
++	  opaque in selected configurations.
++	+ move the chunk in lib_acs.c which resets acs capabilities when
++	  running on a terminal whose locale interferes with those into
++	  _nc_setupscreen(), so the libtinfo/libtinfow files can be made
++	  identical (requested by Miroslav Lichvar).
++	+ do not use configure variable SHLIB_LIBS for building libraries
++	  outside the ncurses directory, since that symbol is customized
++	  only for that directory, and using it introduces an unneeded
++	  dependency on libdl (requested by Miroslav Lichvar).
++	+ modify mk-1st.awk so the generated makefile rules for linking or
++	  installing shared libraries do not first remove the library, in
++	  case it is in use, e.g., libncurses.so by /bin/sh (report by Jeff
++	  Chua).
++	+ revised section "Using NCURSES under XTERM" in ncurses-intro.html
++	  (prompted by newsgroup comment by Nick Guenther).
++
++20070224
++	+ change internal return codes of _nc_wgetch() to check for cases
++	  where KEY_CODE_YES should be returned, e.g., if a KEY_RESIZE was
++	  ungetch'd, and read by wget_wch().
++	+ fix static-library build broken in 20070217 changes to remove "-ldl"
++	  (report by Miroslav Lichvar).
++	+ change makefile/scripts for cygwin to allow building termlib.
++	+ use Form_Hook in manpages to match form.h
++	+ use Menu_Hook in manpages, as well as a few places in menu.h
++	+ correct form- and menu-manpages to use specific Field_Options,
++	  Menu_Options and Item_Options types.
++	+ correct prototype for _tracechar() in manpage (cf: 20011229).
++	+ correct prototype for wunctrl() in manpage.
++
++20070217
++	+ fixes for $(TICS_LIST) in ncurses/Makefile (report by Miroslav
++	  Lichvar).
++	+ modify relinking of shared libraries to apply only when rpath is
++	  enabled, and add --disable-relink option which can be used to
++	  disable the feature altogether (reports by Michail Vidiassov,
++	  Adam J Richter).
++	+ fix --with-termlib option for wide-character configuration, stripping
++	  the "w" suffix in one place (report by Miroslav Lichvar).
++	+ remove "-ldl" from some library lists to reduce dependencies in
++	  programs (report by Miroslav Lichvar).
++	+ correct description of --enable-signed-char in configure --help
++	  (report by Michail Vidiassov).
++	+ add pattern for GNU/kFreeBSD configuration to CF_XOPEN_SOURCE,
++	  which matches an earlier change to CF_SHARED_OPTS, from xterm #224
++	  fixes.
++	+ remove "${DESTDIR}" from -install_name option used for linking
++	  shared libraries on Darwin (report by Michail Vidiassov).
++
++20070210
++	+ add test/inchs.c, test_inch_wide.c, to test win_wchnstr().
++	+ remove libdl from library list for termlib (report by Miroslav
++	  Lichvar).
++	+ fix configure.in to allow --without-progs --with-termlib (patch by
++	  Miroslav Lichvar).
++	+ modify win_wchnstr() to ensure that only a base cell is returned
++	  for each multi-column character (prompted by report by Wei Kong
++	  regarding change in mvwin_wch() cf: 20041023).
++
++20070203
++	+ modify fix_wchnstr() in form library to strip attributes (and color)
++	  from the cchar_t array (field cells) read from a field's window.
++	  Otherwise, when copying the field cells back to the window, the
++	  associated color overrides the field's background color (report by
++	  Ricardo Cantu).
++	+ improve tracing for form library, showing created forms, fields, etc.
++	+ ignore --enable-rpath configure option if --with-shared was omitted.
++	+ add _nc_leaks_tinfo(), _nc_free_tic(), _nc_free_tinfo() entrypoints
++	  to allow leak-checking when both tic- and tinfo-libraries are built.
++	+ drop CF_CPP_VSCAN_FUNC macro from configure script, since C++ binding
++	  no longer relies on it.
++	+ disallow combining configure script options --with-ticlib and
++	  --enable-termcap (report by Rong-En Fan).
++	+ remove tack from ncurses tree.
++
++20070128
++	+ fix typo in configure script that broke --with-termlib option
++	  (report by Rong-En Fan).
++
++20070127
++	+ improve fix for FreeBSD gnu/98975, to allow for null pointer passed
++	  to tgetent() (report by Rong-en Fan).
++	+ update tack/HISTORY and tack/README to tell how to build it after
++	  it is removed from the ncurses tree.
++	+ fix configure check for libtool's version to trim blank lines
++	  (report by sci-fi@hush.ai).
++	+ review/eliminate other original-file artifacts in cursesw.cc, making
++	  its license consistent with ncurses.
++	+ use ncurses vw_scanw() rather than reading into a fixed buffer in
++	  the c++ binding for scanw() methods (prompted by report by Nuno Dias).
++	+ eliminate fixed-buffer vsprintf() calls in c++ binding.
++
++20070120
++	+ add _nc_leaks_tic() to separate leak-checking of tic library from
++	  term/ncurses libraries, and thereby eliminate a library dependency.
++	+ fix test/mk-test.awk to ignore blank lines.
++	+ correct paths in include/headers, for --srcdir (patch by Miroslav
++	  Lichvar).
++
++20070113
++	+ add a break-statement in misc/shlib to ensure that it exits on the
++	  _first_ matched directory (report by Paul Novak).
++	+ add tack/configure, which can be used to build tack outside the
++	  ncurses build-tree.
++	+ add --with-ticlib option, to build/install the tic-support functions
++	  in a separate library (suggested by Miroslav Lichvar).
++
++20070106
++	+ change MKunctrl.awk to reduce relocation table for unctrl.o
++	+ change MKkeyname.awk to reduce relocation table for keyname.o
++	  (patch by Miroslav Lichvar).
++
++20061230
++	+ modify configure check for libtool's version to trim blank lines
++	  (report by sci-fi@hush.ai).
++	+ modify some modules to allow them to be reentrant if _REENTRANT is
++	  defined: lib_baudrate.c, resizeterm.c (local data only)
++	+ eliminate static data from some modules: add_tries.c, hardscroll.c,
++	  lib_ttyflags.c, lib_twait.c
++	+ improve manpage install to add aliases for the transformed program
++	  names, e.g., from --program-prefix.
++	+ used linklint to verify links in the HTML documentation, made fixes
++	  to manpages as needed.
++	+ fix a typo in curs_mouse.3x (report by William McBrine).
++	+ fix install-rule for ncurses5-config to make the bin-directory.
++
++20061223
++	+ modify configure script to omit the tic (terminfo compiler) support
++	  from ncurses library if --without-progs option is given.
++	+ modify install rule for ncurses5-config to do this via "install.libs"
++	+ modify shared-library rules to allow FreeBSD 3.x to use rpath.
++	+ update config.guess, config.sub
++
+ 20061217 5.6 release for upload to ftp.gnu.org
+ 
+-20061217 
++20061217
+ 	+ add ifdef's for <wctype.h> for HPUX, which has the corresponding
+ 	  definitions in <wchar.h>.
+ 	+ revert the va_copy() change from 20061202, since it was neither
+@@ -62,7 +557,7 @@
+ 	+ modify configure --with-gpm option to allow it to accept a parameter,
+ 	  i.e., the name of the dynamic GPM library to load via dlopen()
+ 	  (requested by Bryan Henderson).
+-	+ add configure option --with-valgrind (from vile).
++	+ add configure option --with-valgrind, changes from vile.
+ 	+ modify configure script AC_TRY_RUN and AC_TRY_LINK checks to use
+ 	  'return' in preference to 'exit()'.
+ 
+@@ -1524,7 +2019,8 @@
+ 20031108
+ 	+ add DJGPP to special case of DOS-style drive letters potentially
+ 	  appearing in TERMCAP environment variable.
+-	+ fix some spelling in comments (reports by jmc, Jonathon Gray).
++	+ fix some spelling in comments (reports by Jason McIntyre, Jonathon
++	  Gray).
+ 	+ update config.guess, config.sub
+ 
+ 20031101
+@@ -1814,7 +2310,7 @@
+ 	  "--srcdir" work (report by Warren L Dodge).
+ 	+ correct missing definition of $(CC) in Ada95/gen/Makefile.in
+ 	  (reported by Warren L Dodge <warrend@mdhost.cse.tek.com>).
+-	+ fix typos and whitespace in manpages (patch by jmc
++	+ fix typos and whitespace in manpages (patch by Jason McIntyre
+ 	  <jmc@prioris.mini.pw.edu.pl>).
+ 
+ 20030503
+@@ -3449,7 +3945,7 @@
+ 
+ 20000923
+ 	+ modify rs2 capability in xterm-r6 and similar where cursor
+-	  save/restore bracketed the sequence for resetting video attributes. 
++	  save/restore bracketed the sequence for resetting video attributes.
+ 	  The cursor restore would undo that (report by John Hawkinson
+ 	  <jhawk@MIT.EDU> (see NetBSD misc/11052)).
+ 	+ using parameter check added to tic, corrected 27 typos in
+@@ -4266,7 +4762,7 @@
+ 	  <bledp@voila.fr>)).
+ 	+ change renaming of dft_fgbg.3x to use_default_colors.3ncurses in
+ 	  man_db.renames, since Debian is not concerned with 14-character
+-	  filename limitation (from Debian bug report by Josip Rodin
++	  filename limitation (Debian bug report by Josip Rodin
+ 	  <joy@cibalia.gkvk.hr>).
+ 	+ corrected scoansi terminfo entry by testing with scoterm and console.
+ 	+ revert change from 990614 to terminal_interface-curses-forms.ads.m4,
+@@ -5309,7 +5805,7 @@
+ 
+ 980321
+ 	+ revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t
+-	  declared (from Adam J. Richter <adam@yggdrasil.com>)
++	  declared (from Adam J Richter <adam@yggdrasil.com>)
+ 	+ remove spurious curs_set() call from leaveok() (J T Conklin).
+ 	+ corrected handling leaveok() in doupdate() (patch by Alexander V.
+ 	  Lukyanov).
+Index: TO-DO
+Prereq:  1.48 
+--- ncurses-5.6/TO-DO	2006-10-28 19:49:16.000000000 +0000
++++ ncurses-5.6-20071201/TO-DO	2007-02-03 16:29:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
++-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
+ --                                                                           --
+ -- Permission is hereby granted, free of charge, to any person obtaining a   --
+ -- copy of this software and associated documentation files (the             --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: TO-DO,v 1.48 2006/10/28 19:49:16 tom Exp $
++-- $Id: TO-DO,v 1.49 2007/02/03 16:29:17 tom Exp $
+ -------------------------------------------------------------------------------
+ 
+ SHORT-TERM TO-DO ITEMS:
+@@ -58,9 +58,6 @@
+ + The window classes defined in the c++ subdirectory need documentation.  Some
+   C++ programmer could earn a lot of good karma by doing this...
+ 
+-+ The resizeterm() function does not handle ripped-off lines such as that done
+-  for the slk_XXX functions.
+-
+ + vid_attr() should support the set_a_attributes (sgr1) string, but does not. 
+   There appear to be no terminals that require that functionality.
+ 
+@@ -75,19 +72,19 @@
+   ncurses/tty/lib_tstp.c .
+ 
+ + In theory, vwprintw and vwscanf are supposed to use the older varargs.h
+-  interface for handling variadic argument lists.  Linux doesn't have
+-  varargs.h, it has the newer X/Open-standard stdargs.h equivalent.  So these
+-  functions use stdargs instead.  This is unlikely to be a problem unless
+-  you're building ncurses on a System V old enough to only have varargs.h. 
+-  (Solaris 2.5.1 uses the stdarg.h binding as well).
++  interface for handling variadic argument lists (and are deprecated by X/Open
++  for that reason).  Linux doesn't have varargs.h, it has the newer
++  X/Open-standard stdargs.h equivalent.  So these functions use stdargs
++  instead.  This is unlikely to be a problem unless you're building ncurses on
++  a System V old enough to only have varargs.h.  (Solaris 2.5.1 used the
++  stdarg.h binding as well).
+ 
+ + If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have
+   a native vsscanf(3) in its library, vwscanw() will not work.  You lose.  (It
+   should work on any System V, however).  If you want to fix this, add an
+   implementation to ncurses/vsscanf.c.
+ 
+-+ The C++ binding fails to build with a few C++ compilers, mainly with
+-  configure script problems with vsscanf().
+++ The C++ binding fails to build with a few C++ compilers.
+ 
+ + terminfo.5 does not format with the SunOS (and most other platform's) tbl
+   utility because it relies on a diversion for each table entry.  Get the
+@@ -106,7 +103,7 @@
+ 
+ 1. Extended COSE conformance
+ 
+-There is an XPG4 standard recently released which describes a superset
++There is an XPG4 standard released in 1996 which describes a superset
+ of the SVr4 API.  The library is BASE conformant with this standard.
+ We would like to make ncurses fully conformant at the EXTENDED level
+ supporting internationalization.
+Index: aclocal.m4
+Prereq:  1.407 
+--- ncurses-5.6/aclocal.m4	2006-12-17 16:12:38.000000000 +0000
++++ ncurses-5.6-20071201/aclocal.m4	2007-12-01 20:02:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ dnl                                                                          *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a  *
+ dnl copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: aclocal.m4,v 1.407 2006/12/17 16:12:38 tom Exp $
++dnl $Id: aclocal.m4,v 1.442 2007/12/01 20:02:42 tom Exp $
+ dnl Macros used in NCURSES auto-configuration script.
+ dnl
+ dnl These macros are maintained separately from NCURSES.  The copyright on
+@@ -168,6 +168,99 @@
+ 
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ADD_INCDIR version: 8 updated: 2007/07/30 19:22:58
++dnl -------------
++dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
++dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
++dnl but old versions (and some misinstalled ones) need that.  To make things
++dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
++dnl the include-path).
++AC_DEFUN([CF_ADD_INCDIR],
++[
++if test -n "$1" ; then
++  for cf_add_incdir in $1
++  do
++	while test $cf_add_incdir != /usr/include
++	do
++	  if test -d $cf_add_incdir
++	  then
++		cf_have_incdir=no
++		if test -n "$CFLAGS$CPPFLAGS" ; then
++		  # a loop is needed to ensure we can add subdirs of existing dirs
++		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++			  cf_have_incdir=yes; break
++			fi
++		  done
++		fi
++
++		if test "$cf_have_incdir" = no ; then
++          if test "$cf_add_incdir" = /usr/local/include ; then
++			if test "$GCC" = yes
++			then
++			  cf_save_CPPFLAGS=$CPPFLAGS
++			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++			  AC_TRY_COMPILE([#include <stdio.h>],
++				  [printf("Hello")],
++				  [],
++				  [cf_have_incdir=yes])
++			  CPPFLAGS=$cf_save_CPPFLAGS
++			fi
++		  fi
++		fi
++
++		if test "$cf_have_incdir" = no ; then
++		  AC_VERBOSE(adding $cf_add_incdir to include-path)
++		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
++
++          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++          test "$cf_top_incdir" = "$cf_add_incdir" && break
++          cf_add_incdir="$cf_top_incdir"
++		else
++		  break
++		fi
++	  fi
++	done
++  done
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADD_LIBDIR version: 5 updated: 2007/07/30 19:12:03
++dnl -------------
++dnl	Adds to the library-path
++dnl
++dnl	Some machines have trouble with multiple -L options.
++dnl
++dnl $1 is the (list of) directory(s) to add
++dnl $2 is the optional name of the variable to update (default LDFLAGS)
++dnl
++AC_DEFUN([CF_ADD_LIBDIR],
++[
++if test -n "$1" ; then
++  for cf_add_libdir in $1
++  do
++    if test $cf_add_libdir = /usr/lib ; then
++      :
++    elif test -d $cf_add_libdir
++    then
++      cf_have_libdir=no
++      if test -n "$LDFLAGS$LIBS" ; then
++        # a loop is needed to ensure we can add subdirs of existing dirs
++        for cf_test_libdir in $LDFLAGS $LIBS ; do
++          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++            cf_have_libdir=yes; break
++          fi
++        done
++      fi
++      if test "$cf_have_libdir" = no ; then
++        AC_VERBOSE(adding $cf_add_libdir to library-path)
++        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
++      fi
++    fi
++  done
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
+ dnl ----------------
+ dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+@@ -612,6 +705,50 @@
+ 
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
++dnl -------------------
++dnl Check if GPM is already linked with curses.  If so - and if the linkage
++dnl is not "weak" - warn about this because it can create problems linking
++dnl applications with ncurses.
++AC_DEFUN([CF_CHECK_GPM_WGETCH],[
++AC_CHECK_LIB(gpm,Gpm_Wgetch,[
++
++AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
++cf_cv_check_gpm_wgetch=unknown
++if test "$cross_compiling" != yes ; then
++
++cat >conftest.$ac_ext <<CF_EOF
++#include <gpm.h>
++int main()
++{
++	Gpm_Wgetch();
++	${cf_cv_main_return:-return}(0);
++}
++CF_EOF
++
++	cf_save_LIBS="$LIBS"
++	# This only works if we can look at the symbol table.  If a shared
++	# library is stripped for install, we cannot use that.  So we're forced
++	# to rely on the static library, noting that some packagers may not
++	# include it.
++	LIBS="-static -lgpm -dynamic $LIBS"
++	if AC_TRY_EVAL(ac_compile) ; then
++		if AC_TRY_EVAL(ac_link) ; then
++			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
++			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
++			test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
++		fi
++	fi
++	rm -f conftest*
++	LIBS="$cf_save_LIBS"
++fi
++])
++
++if test "$cf_cv_check_gpm_wgetch" != yes ; then
++	AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
++fi
++])])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
+ dnl -----------------
+ dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
+@@ -703,82 +840,36 @@
+ test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
+-dnl -----------------
+-dnl Check if the g++ compiler supports vscan function (not a standard feature).
+-AC_DEFUN([CF_CPP_VSCAN_FUNC],
+-[
+-if test -n "$CXX"; then
+-
+-AC_LANG_SAVE
+-AC_LANG_CPLUSPLUS
+-AC_CHECK_HEADERS(strstream.h)
+-
+-AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[
+-	for cf_vscan_func in strstream strstream_cast stdio
+-	do
+-	case $cf_vscan_func in #(vi
+-	stdio)		cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
+-	strstream)	cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
+-	strstream_cast)	cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
+-	esac
+-	AC_TRY_LINK([
+-#include <stdio.h>
+-#include <stdarg.h>
+-#define $cf_vscan_defs 1
+-#if defined(USE_STDIO_VSCAN)
+-#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
+-#include <strstream.h>
+-#endif
+-
+-int scanw(const char* fmt, ...)
+-{
+-    int result = -1;
+-    char buf[BUFSIZ];
+-
+-    va_list args;
+-    va_start(args, fmt);
+-#if defined(USE_STDIO_VSCAN)
+-    if (::vsscanf(buf, fmt, args) != -1)
+-	result = 0;
+-#elif defined(USE_STRSTREAM_VSCAN)
+-    strstreambuf ss(buf, sizeof(buf));
+-    if (ss.vscan(fmt, args) != -1)
+-	result = 0;
+-#elif defined(USE_STRSTREAM_VSCAN_CAST)
+-    strstreambuf ss(buf, sizeof(buf));
+-    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+-	result = 0;
+-#else
+-#error case $cf_vscan_func failed
+-#endif
+-    va_end(args);
+-    return result;
+-}
+-],[int tmp, foo = scanw("%d", &tmp)],
+-	[cf_cv_cpp_vscan_func=$cf_vscan_func; break],
+-	[cf_cv_cpp_vscan_func=no])
+-	test "$cf_cv_cpp_vscan_func" != no && break
+-	done
+-])
+-
+-AC_LANG_RESTORE
++dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
++dnl -----------
++dnl Check if the C compiler supports "inline".
++dnl $1 is the name of a shell variable to set if inline is supported
++dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
++AC_DEFUN([CF_C_INLINE],[
++AC_C_INLINE
++$1=
++if test "$ac_cv_c_inline" != no ; then
++  $1=inline
++  if test "$INTEL_COMPILER" = yes
++  then
++    :
++  elif test "$GCC" = yes
++  then
++    AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
++      cf_save_CFLAGS=$CFLAGS
++      CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
++      AC_TRY_COMPILE([inline int foo(void) { return 1; }],
++      [${cf_cv_main_return:-return} foo()],
++      [cf_cv_gcc_inline=yes],
++      [cf_cv_gcc_inline=no])
++      CFLAGS=$cf_save_CFLAGS
++    ])
++    if test "$cf_cv_gcc_inline" = yes ; then
++        CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
++    fi
++  fi
+ fi
+-
+-case $cf_cv_cpp_vscan_func in #(vi
+-stdio) #(vi
+-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+-	AC_DEFINE(USE_STDIO_VSCAN)
+-	;;
+-strstream)
+-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+-	AC_DEFINE(USE_STRSTREAM_VSCAN)
+-	;;
+-strstream_cast)
+-	AC_DEFINE(CPP_HAS_VSCAN_FUNC)
+-	AC_DEFINE(USE_STRSTREAM_VSCAN_CAST)
+-	;;
+-esac
++AC_SUBST($1)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
+@@ -1070,7 +1161,7 @@
+ 
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
++dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
+ dnl -----------------
+ dnl Test for availability of useful gcc __attribute__ directives to quiet
+ dnl compiler warnings.  Though useful, not all are supported -- and contrary
+@@ -1097,7 +1188,7 @@
+ then
+ 	AC_CHECKING([for $CC __attribute__ directives])
+ cat > conftest.$ac_ext <<EOF
+-#line __oline__ "configure"
++#line __oline__ "${as_me-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -1159,7 +1250,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
++dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
+ dnl ---------------
+ dnl Check if the compiler supports useful warning options.  There's a few that
+ dnl we don't use, simply because they're too noisy:
+@@ -1184,7 +1275,7 @@
+ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line __oline__ "configure"
++#line __oline__ "${as_me-configure}"
+ int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
+ EOF
+ 
+@@ -1205,7 +1296,7 @@
+ 	AC_CHECKING([for $CC warning options])
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-Wall"
+-	for cf_opt in $1 \
++	for cf_opt in \
+ 		wd1419 \
+ 		wd1682 \
+ 		wd1683 \
+@@ -1561,11 +1652,24 @@
+ AC_SUBST(EXTRA_CXXFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_HASHED_DB version: 1 updated: 2006/08/19 09:16:14
++dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
+ dnl ------------
+ dnl Look for an instance of the Berkeley hashed database.
++dnl
++dnl $1 = optional parameter, to specify install-prefix for the database.
+ AC_DEFUN([CF_HASHED_DB],
+ [
++ifelse([$1],,,[
++case $1 in #(vi
++yes|*able*) #(vi
++    ;;
++*)
++    if test -d "$1" ; then
++        CF_ADD_INCDIR($1/include)
++        CF_ADD_LIBDIR($1/lib)
++    fi
++esac
++])
+ AC_CHECK_HEADER(db.h,[
+ CF_HASHED_DB_VERSION
+ if test "$cf_cv_hashed_db_version" = unknown ; then
+@@ -1583,7 +1687,7 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_HASHED_DB_LIBS version: 6 updated: 2006/12/16 12:33:30
++dnl CF_HASHED_DB_LIBS version: 7 updated: 2007/12/01 15:01:37
+ dnl -----------------
+ dnl Given that we have the header and version for hashed database, find the
+ dnl library information.
+@@ -1591,7 +1695,7 @@
+ [
+ AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
+ cf_cv_hashed_db_libs=unknown
+-for cf_db_libs in db$cf_cv_hashed_db_version db ''
++for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
+ do
+ 	cf_save_libs="$LIBS"
+ 	if test -n "$cf_db_libs"; then
+@@ -1655,7 +1759,7 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_HASHED_DB_VERSION version: 2 updated: 2006/08/19 15:12:49
++dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
+ dnl --------------------
+ dnl Given that we have the header file for hashed database, find the version
+ dnl information.
+@@ -1664,7 +1768,7 @@
+ AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
+ cf_cv_hashed_db_version=unknown
+ 
+-for cf_db_version in 1 2 3 4
++for cf_db_version in 1 2 3 4 5
+ do
+ 	CF_MSG_LOG(checking for db version $cf_db_version)
+ 	AC_TRY_COMPILE([
+@@ -1778,7 +1882,7 @@
+ test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LARGEFILE version: 6 updated: 2006/09/23 19:07:52
++dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
+ dnl ------------
+ dnl Add checks for large file support.
+ AC_DEFUN([CF_LARGEFILE],[
+@@ -1796,6 +1900,7 @@
+ 	# the config.h
+ 	test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+ 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
++	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
+ 
+ 	AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
+ 		AC_TRY_COMPILE([
+@@ -1816,6 +1921,48 @@
+ ])
+ ])
+ dnl ---------------------------------------------------------------------------
++dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
++dnl -----------------
++dnl Check for compiler/linker flags used to temporarily force usage of static
++dnl libraries.  This depends on the compiler and platform.  Use this to help
++dnl ensure that the linker picks up a given library based on its position in
++dnl the list of linker options and libraries.
++AC_DEFUN([CF_LDFLAGS_STATIC],[
++
++if test "$GCC" = yes ; then
++	LDFLAGS_STATIC=-static
++	LDFLAGS_SHARED=-dynamic
++else
++	case $cf_cv_system_name in #(
++	aix[[45]]*) 	#( from ld manpage
++		LDFLAGS_STATIC=-bstatic
++		LDFLAGS_SHARED=-bdynamic
++		;;
++	hpux*)		#( from ld manpage for hpux10.20, hpux11.11
++		# We could also use just "archive" and "shared".
++		LDFLAGS_STATIC=-Wl,-a,archive_shared
++		LDFLAGS_SHARED=-Wl,-a,shared_archive
++		;;
++	irix*)		#( from ld manpage IRIX64
++		LDFLAGS_STATIC=-Bstatic
++		LDFLAGS_SHARED=-Bdynamic
++		;;
++	osf[[45]]*)	#( from ld manpage osf4.0d, osf5.1
++		# alternative "-oldstyle_liblookup" (not in cc manpage)
++		LDFLAGS_STATIC=-noso 
++		LDFLAGS_SHARED=-so_archive
++		;;
++	solaris2*)
++		LDFLAGS_STATIC=-Bstatic
++		LDFLAGS_SHARED=-Bdynamic
++		;;
++	esac
++fi
++
++AC_SUBST(LDFLAGS_STATIC)
++AC_SUBST(LDFLAGS_SHARED)
++])
++dnl ---------------------------------------------------------------------------
+ dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
+ dnl ----------
+ dnl Check for libutf8
+@@ -1852,11 +1999,11 @@
+ 	AC_SUBST(LIB_PREFIX)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_RULES version: 40 updated: 2006/10/14 15:23:15
++dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
+ dnl ------------
+ dnl Append definitions and rules for the given models to the subdirectory
+ dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
+-dnl subdirectory is a library-source directory, modify the LIBRARIES list in
++dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
+ dnl the corresponding makefile to list the models that we'll generate.
+ dnl
+ dnl For shared libraries, make a list of symbolic links to construct when
+@@ -1875,7 +2022,6 @@
+ 		continue
+ 	elif test -f $srcdir/$cf_dir/modules; then
+ 
+-		IMPORT_LIB=
+ 		SHARED_LIB=
+ 		LIBS_TO_MAKE=
+ 		for cf_item in $cf_LIST_MODELS
+@@ -1922,9 +2068,7 @@
+ 			# use autodetected ${cf_prefix} for import lib and static lib, but
+ 			# use 'cyg' prefix for shared lib.
+ 			if test $cf_cv_shlib_version = cygdll ; then
+-				SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
+-				IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
+-				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
++				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
+ 				continue
+ 			fi
+ 			fi
+@@ -1933,17 +2077,34 @@
+ 
+ 		if test $cf_dir = ncurses ; then
+ 			cf_subsets="$LIB_SUBSETS"
+-			cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
+-			if test "$cf_termlib" != "$cf_subsets" ; then
+-				cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
+-				LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+-			fi
++			cf_r_parts="$cf_subsets"
++
++			while test -n "$cf_r_parts"
++			do
++				cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
++				cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
++				if test "$cf_l_parts" != "$cf_r_parts" ; then
++					case $cf_l_parts in #(vi
++					*termlib*) #(vi
++						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
++						;;
++					*ticlib*)
++						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
++						;;
++					*)
++						break
++						;;
++					esac
++					LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++				else
++					break
++				fi
++			done
+ 		else
+ 			cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
+ 		fi
+ 
+ 		sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
+-		    -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
+ 		    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
+ 			$cf_dir/Makefile >$cf_dir/Makefile.out
+ 		mv $cf_dir/Makefile.out $cf_dir/Makefile
+@@ -1968,13 +2129,20 @@
+ 				case $cf_subset in
+ 				*base*)
+ 					;;
+-				termlib*)
++				*termlib*)
+ 					cf_libname=$TINFO_LIB_SUFFIX
+ 					if test -n "${DFT_ARG_SUFFIX}" ; then
+ 						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+ 						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+ 					fi
+-				;;
++					;;
++				ticlib*)
++					cf_libname=$TICS_LIB_SUFFIX
++					if test -n "${DFT_ARG_SUFFIX}" ; then
++						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
++						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
++					fi
++					;;
+ 				esac
+ 			fi
+ 
+@@ -2015,8 +2183,11 @@
+ 				prefix=$cf_prefix \
+ 				suffix=$cf_suffix \
+ 				subset=$cf_subset \
++				TermlibRoot=$TINFO_NAME \
++				TermlibSuffix=$TINFO_SUFFIX \
+ 				ShlibVer=$cf_cv_shlib_version \
+ 				ShlibVerInfix=$cf_cv_shlib_version_infix \
++				ReLink=${cf_cv_do_relink-no} \
+ 				DoLinks=$cf_cv_do_symlinks \
+ 				rmSoLocs=$cf_cv_rm_so_locs \
+ 				ldconfig="$LDCONFIG" \
+@@ -2103,8 +2274,8 @@
+ 
+ cat >> Makefile <<CF_EOF
+ 
+-install.data \\
+-uninstall.data ::
++install.libs uninstall.libs \\
++install.data uninstall.data ::
+ $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
+ 
+ install.man \\
+@@ -2113,7 +2284,7 @@
+ 
+ distclean ::
+ 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
+-	rm -f headers.sh headers.sed
++	rm -f headers.sh headers.sed mk_shared_lib.sh
+ 	rm -rf \${DIRS_TO_MAKE}
+ CF_EOF
+ 
+@@ -2224,41 +2395,10 @@
+ 	fi
+ 
+ 	if test -f $srcdir/$cf_dir/headers; then
+-	cat >>$cf_dir/Makefile <<CF_EOF
+-\${DESTDIR}\${includedir} :
+-	sh \${srcdir}/../mkinstalldirs \[$]@
+-
+-install \\
+-install.libs \\
+-install.includes :: \${AUTO_SRC} \${DESTDIR}\${includedir} \\
+-CF_EOF
+-		j=""
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			test -n "$j" && echo "		$j \\" >>$cf_dir/Makefile
+-			j=$i
+-		done
+-
+-		echo "		$j" >>$cf_dir/Makefile
+-
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			echo "	@ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile
+-			test $i = curses.h && test $WITH_CURSES_H = yes && echo "	@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile
+-		done
+-
+-	cat >>$cf_dir/Makefile <<CF_EOF
+-
+-uninstall \\
+-uninstall.libs \\
+-uninstall.includes ::
+-CF_EOF
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			i=`basename $i`
+-			echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile
+-			test $i = curses.h && echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile
+-		done
++		$AWK -f $srcdir/mk-hdr.awk \
++			subset="$LIB_SUBSETS" \
++			compat="$WITH_CURSES_H" \
++			$srcdir/$cf_dir/headers >>$cf_dir/Makefile
+ 	fi
+ 
+ 	if test -f $srcdir/$cf_dir/modules; then
+@@ -2776,7 +2916,7 @@
+ AC_MSG_RESULT($MANPAGE_TBL)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MAN_PAGES version: 31 updated: 2006/12/09 12:27:08
++dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
+ dnl ------------
+ dnl Try to determine if the man-pages on the system are compressed, and if
+ dnl so, what format is used.  Use this information to construct a script that
+@@ -2826,6 +2966,7 @@
+ esac
+ 
+ cf_edit_man=./edit_man.sh
++cf_man_alias=`pwd`/man_alias.sed
+ 
+ cat >$cf_edit_man <<CF_EOF
+ #! /bin/sh
+@@ -2841,7 +2982,7 @@
+ NCURSES_OSPEED="$NCURSES_OSPEED"
+ TERMINFO="$TERMINFO"
+ 
+-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
++MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
+ 
+ INSTALL="$INSTALL"
+ INSTALL_DATA="$INSTALL_DATA"
+@@ -2889,6 +3030,32 @@
+ 		\$MKDIRS \$cf_subdir\$section
+ 	fi
+ 	fi
++
++	# replace variables in man page
++	if test ! -f $cf_man_alias ; then
++cat >>$cf_man_alias <<-CF_EOF2
++		s,@DATADIR@,\$datadir,g
++		s,@TERMINFO@,\$TERMINFO,g
++		s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
++		s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
++		s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
++		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
++CF_EOF
++	ifelse($1,,,[
++	for cf_name in $1
++	do
++		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++		cf_name=`echo $cf_name|sed "$program_transform_name"`
++cat >>$cf_edit_man <<-CF_EOF
++		s,@$cf_NAME@,$cf_name,
++CF_EOF
++	done
++	])
++cat >>$cf_edit_man <<CF_EOF
++CF_EOF2
++		echo "...made $cf_man_alias"
++	fi
++
+ 	aliases=
+ 	cf_source=\`basename \$i\`
+ 	inalias=\$cf_source
+@@ -2901,7 +3068,7 @@
+ 
+ if test "$MANPAGE_ALIASES" != no ; then
+ cat >>$cf_edit_man <<CF_EOF
+-	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
++	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
+ CF_EOF
+ fi
+ 
+@@ -2922,36 +3089,13 @@
+ 		cf_target="\$cf_source"
+ 	fi
+ 	cf_target="\$cf_subdir\${section}/\${cf_target}"
+-CF_EOF
+-fi
+ 
+-	# replace variables in man page
+-	ifelse($1,,,[
+-	for cf_name in $1
+-	do
+-cat >>$cf_edit_man <<CF_EOF
+-	prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
+-CF_EOF
+-	done
+-	])
+-cat >>$cf_edit_man <<CF_EOF
+-	sed	-e "s,@DATADIR@,\$datadir," \\
+-		-e "s,@TERMINFO@,\$TERMINFO," \\
+-		-e "s,@NCURSES_MAJOR@,\$NCURSES_MAJOR," \\
+-		-e "s,@NCURSES_MINOR@,\$NCURSES_MINOR," \\
+-		-e "s,@NCURSES_PATCH@,\$NCURSES_PATCH," \\
+-		-e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
+ CF_EOF
++fi
+ 
+-	ifelse($1,,,[
+-	for cf_name in $1
+-	do
+-		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ cat >>$cf_edit_man <<CF_EOF
+-		-e "s,@$cf_NAME@,\$prog_$cf_name," \\
++	sed	-f $cf_man_alias \\
+ CF_EOF
+-	done
+-	])
+ 
+ if test -f $MANPAGE_RENAMES ; then
+ cat >>$cf_edit_man <<CF_EOF
+@@ -3012,6 +3156,7 @@
+ 	if test \$verb = installing ; then
+ 		echo \$verb \$cf_target
+ 		\$INSTALL_DATA \$TMP \$cf_target
++		test -d \$cf_subdir\${section} &&
+ 		test -n "\$aliases" && (
+ 			cd \$cf_subdir\${section} && (
+ 				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
+@@ -3053,8 +3198,11 @@
+ 			)
+ 		)
+ 	elif test \$verb = removing ; then
+-		echo \$verb \$cf_target
+-		rm -f \$cf_target
++		test -f \$cf_target && (
++			echo \$verb \$cf_target
++			rm -f \$cf_target
++		)
++		test -d \$cf_subdir\${section} &&
+ 		test -n "\$aliases" && (
+ 			cd \$cf_subdir\${section} && (
+ 				for cf_alias in \$aliases
+@@ -3192,12 +3340,12 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
++dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
+ dnl ----------
+ dnl Write a debug message to config.log, along with the line number in the
+ dnl configure script.
+ AC_DEFUN([CF_MSG_LOG],[
+-echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
++echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
+@@ -3680,7 +3828,73 @@
+ 		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SHARED_OPTS version: 41 updated: 2006/12/09 12:32:00
++dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
++dnl -------------
++dnl Remove the given library from the symbol
++dnl
++dnl $1 = target (which could be the same as the source variable)
++dnl $2 = source (including '$')
++dnl $3 = library to remove
++define([CF_REMOVE_LIB],
++[
++# remove $3 library from $2
++$1=`echo "$2" | sed -e 's/-l$3[[ 	]]//g' -e 's/-l$3[$]//'`
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_RPATH_HACK version: 3 updated: 2007/12/01 11:14:13
++dnl -------------
++AC_DEFUN([CF_RPATH_HACK],
++[
++AC_REQUIRE([CF_SHARED_OPTS])
++AC_MSG_CHECKING(for updated LDFLAGS)
++if test -n "$LDFLAGS" ; then
++AC_MSG_RESULT(maybe)
++CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
++CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
++case "$EXTRA_LDFLAGS" in #(vi
++-Wl,-rpath,*) #(vi
++    cf_rpath_hack="-Wl,-rpath,"
++    ;;
++-R\ *)
++    cf_rpath_hack="-R "
++    ;;
++-R*)
++    cf_rpath_hack="-R"
++    ;;
++*)
++    cf_rpath_hack=
++    ;;
++esac
++if test -n "$cf_rpath_hack" ; then
++    cf_rpath_dst=
++    for cf_rpath_src in $LDFLAGS
++    do
++        CF_VERBOSE(Filtering $cf_rpath_src)
++        case $cf_rpath_src in #(vi
++        -L*) #(vi
++            if test "$cf_rpath_hack" = "-R " ; then
++                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
++            else
++                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
++            fi
++            CF_VERBOSE(...Filter $cf_rpath_tmp)
++            EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
++            ;;
++        *)
++            cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
++            ;;
++        esac
++    done
++    LDFLAGS=$cf_rpath_dst
++    CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
++    CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
++fi
++else
++AC_MSG_RESULT(no)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SHARED_OPTS version: 46 updated: 2007/02/24 18:58:09
+ dnl --------------
+ dnl --------------
+ dnl Attempt to determine the appropriate CC/LD options for creating a shared
+@@ -3757,14 +3971,27 @@
+ 		;;
+ 	cygwin*)
+ 		CC_SHARED_OPTS=
+-		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
++		MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
+ 		cf_cv_shlib_version=cygdll
+ 		cf_cv_shlib_version_infix=cygdll
++		cat >mk_shared_lib.sh <<-CF_EOF
++		#!/bin/sh
++		SHARED_LIB=\[$]1
++		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
++		shift
++		cat <<-EOF
++		Linking shared library
++		** SHARED_LIB \[$]SHARED_LIB
++		** IMPORT_LIB \[$]IMPORT_LIB
++EOF
++		exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
++CF_EOF
++		chmod +x mk_shared_lib.sh 
+ 		;;
+ 	darwin*)
+ 		EXTRA_CFLAGS="-no-cpp-precomp"
+ 		CC_SHARED_OPTS="-dynamic"
+-		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
++		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
+ 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+ 		cf_cv_shlib_version_infix=yes
+ 		AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
+@@ -3818,11 +4045,11 @@
+ 		CF_SHARED_SONAME
+ 		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
+ 		;;
+-	openbsd2*)
++	openbsd[[2-9]].*)
+ 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ 		MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
+ 		;;
+-	openbsd*|freebsd[[23]]*)
++	openbsd*|freebsd[[12]].*)
+ 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ 		MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
+ 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -4043,6 +4270,41 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
++dnl ---------------
++dnl signal handler, but there are some gcc depedencies in that recommendation.
++dnl Try anyway.
++AC_DEFUN([CF_SIG_ATOMIC_T],
++[
++AC_MSG_CHECKING(for signal global datatype)
++AC_CACHE_VAL(cf_cv_sig_atomic_t,[
++	for cf_type in \
++		"volatile sig_atomic_t" \
++		"sig_atomic_t" \
++		"int"
++	do
++	AC_TRY_COMPILE([
++#include <sys/types.h>
++#include <signal.h>
++#include <stdio.h>
++
++extern $cf_type x;
++$cf_type x;
++static void handler(int sig)
++{
++	x = 5;
++}],
++		[signal(SIGINT, handler);
++		 x = 1],
++		[cf_cv_sig_atomic_t=$cf_type],
++		[cf_cv_sig_atomic_t=no])
++		test "$cf_cv_sig_atomic_t" != no && break
++	done
++	])
++AC_MSG_RESULT($cf_cv_sig_atomic_t)
++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
+ dnl -------------
+ dnl Check for definitions & structures needed for window size-changing
+@@ -4503,11 +4765,12 @@
+ $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
++dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
+ dnl ----------
+ dnl Use AC_VERBOSE w/o the warnings
+ AC_DEFUN([CF_VERBOSE],
+ [test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
++CF_MSG_LOG([$1])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
+@@ -4643,7 +4906,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_LIBTOOL version: 10 updated: 2006/10/14 15:23:15
++dnl CF_WITH_LIBTOOL version: 18 updated: 2007/04/08 20:02:38
+ dnl ---------------
+ dnl Provide a configure option to incorporate libtool.  Define several useful
+ dnl symbols for the makefile rules.
+@@ -4692,7 +4955,7 @@
+ # doing:
+ LIB_CLEAN=
+ LIB_COMPILE=
+-LIB_LINK=
++LIB_LINK='${CC}'
+ LIB_INSTALL=
+ LIB_UNINSTALL=
+ 
+@@ -4718,12 +4981,12 @@
+  		AC_MSG_ERROR(Cannot find libtool)
+  	fi
+ ])dnl
+-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
+-	LIB_OBJECT='${OBJECTS}.o=.lo)'
++	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
++	LIB_OBJECT='${OBJECTS:.o=.lo}'
+ 	LIB_SUFFIX=.la
+ 	LIB_CLEAN='${LIBTOOL} --mode=clean'
+ 	LIB_COMPILE='${LIBTOOL} --mode=compile'
+-	LIB_LINK='${LIBTOOL} --mode=link'
++	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
+ 	LIB_INSTALL='${LIBTOOL} --mode=install'
+ 	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
+ 	LIB_PREP=:
+@@ -4734,10 +4997,10 @@
+ 	# Save the version in a cache variable - this is not entirely a good
+ 	# thing, but the version string from libtool is very ugly, and for
+ 	# bug reports it might be useful to have the original string.
+-	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
++	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
+ 	AC_MSG_RESULT($cf_cv_libtool_version)
+ 	if test -z "$cf_cv_libtool_version" ; then
+-		AC_MSG_ERROR(This is not libtool)
++		AC_MSG_ERROR(This is not GNU libtool)
+ 	fi
+ 
+ 	# special hack to add --tag option for C++ compiler
+@@ -4758,6 +5021,7 @@
+ 
+ AC_SUBST(LIBTOOL)
+ AC_SUBST(LIBTOOL_CXX)
++AC_SUBST(LIBTOOL_OPTS)
+ 
+ AC_SUBST(LIB_CREATE)
+ AC_SUBST(LIB_OBJECT)
+@@ -4772,7 +5036,7 @@
+ 
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08
++dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
+ dnl ------------
+ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
+ dnl defaulting to yes/no.
+@@ -4786,7 +5050,9 @@
+ AC_DEFUN([CF_WITH_PATH],
+ [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
+ ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
++if ifelse($5,,true,[test -n "$5"]) ; then
+ CF_PATH_SYNTAX(withval)
++fi
+ $3="$withval"
+ AC_SUBST($3)dnl
+ ])dnl
+@@ -4896,7 +5162,7 @@
+ 	[USE_VALGRIND])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09
++dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
+ dnl ---------------
+ dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+ dnl or adapt to the vendor's definitions to get equivalent functionality,
+@@ -4930,7 +5196,7 @@
+ irix[[56]].*) #(vi
+ 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ 	;;
+-linux*|gnu*) #(vi
++linux*|gnu*|k*bsd*-gnu) #(vi
+ 	CF_GNU_SOURCE
+ 	;;
+ mirbsd*) #(vi
+Index: c++/Makefile.in
+Prereq:  1.78 
+--- ncurses-5.6/c++/Makefile.in	2006-10-21 17:07:49.000000000 +0000
++++ ncurses-5.6-20071201/c++/Makefile.in	2007-04-28 15:29:12.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.78 2006/10/21 17:07:49 tom Exp $
++# $Id: Makefile.in,v 1.84 2007/04/28 15:29:12 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -57,6 +57,7 @@
+ LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+ 
+ INSTALL		= @INSTALL@
++INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
+ INSTALL_DATA	= @INSTALL_DATA@
+ 
+ AR		= @AR@
+@@ -74,6 +75,7 @@
+ INCDIR		= ../include
+ CPPFLAGS	= -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
+ 
++CC		= ${CXX}
+ CCFLAGS		= $(CPPFLAGS) $(CXXFLAGS)
+ 
+ CFLAGS_LIBTOOL	= $(CCFLAGS)
+@@ -91,7 +93,7 @@
+ 
+ LOCAL_LIBDIR	= @top_builddir@/lib
+ 
+-LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) $(CXX) @CXXLDFLAGS@
++LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) @CXXLDFLAGS@
+ SHLIB_DIRS	= -L../lib
+ SHLIB_LIST	= $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+ 
+@@ -109,7 +111,9 @@
+ LINK_PROFILE	= $(LINK_FLAGS)
+ LINK_SHARED	= $(LINK_FLAGS)
+ 
+-LDFLAGS		= @TEST_ARGS@ @LDFLAGS@ \
++TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
++
++LDFLAGS		= $(TEST_ARGS) @LDFLAGS@ \
+ 	@LD_MODEL@ @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
+ 
+ LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LIBTOOL)
+@@ -173,11 +177,11 @@
+ 	sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
+ 
+ $(DESTDIR)$(libdir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ install \
+ install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
+-	$(LIBTOOL_INSTALL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
++	$(LIBTOOL_INSTALL) $(INSTALL_LIB) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
+ 
+ uninstall \
+ uninstall.libs::
+Index: c++/README-first
+Prereq:  1.8 
+--- ncurses-5.6/c++/README-first	2006-04-22 22:19:37.000000000 +0000
++++ ncurses-5.6-20071201/c++/README-first	2007-01-27 18:27:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.               --
++-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
+ --                                                                           --
+ -- Permission is hereby granted, free of charge, to any person obtaining a   --
+ -- copy of this software and associated documentation files (the             --
+@@ -25,38 +25,38 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: README-first,v 1.8 2006/04/22 22:19:37 tom Exp $
++-- $Id: README-first,v 1.9 2007/01/27 18:27:09 tom Exp $
+ -------------------------------------------------------------------------------
+                   C++ interface to ncurses routines
+ -----------------------------------------------------------------------
+ 
+ This directory contains the source code for several C++ classes which
+-ease the use of writing ncurses-based programs.  The code is derived
+-from the libg++ CursesWindow class but enhanced for ncurses.
++ease the use of writing ncurses-based programs.  The code was originally
++derived from the libg++ CursesWindow class, but rewritten for ncurses.
+ 
+ The classes simplify the use of window specific functions by
+ encapsulating them in the window object.  Function overloading is
+-used in order to narrow the interface.  E.g. you don't have the
++used in order to narrow the interface.  For example, you do not have the
+ distinction between `printw' and `mvprintw' anymore.
+ 
+ A second benefit is the removal of all #defines which are included in
+ the curses.h file.  This is a steady cause of trouble because many
+ common identifiers are used.  Instead now all #defines are inline
+-functions which also allows strict type checking of arguments.
++functions, which also allows strict type checking of arguments.
+ 
+ The next enhancement is color support. It was originally provided by a 
+-derived class. This caused some trouble if you think about Panels or
+-Menus and Forms with colors. We decided to put color support into the
++derived class.  This caused some trouble if you think about Panels or
++Menus and Forms with colors.  We decided to put color support into the
+ base class so that any derived class may use color support also.
+ The implementation chosen here is directed to unrestricted use
+-of mixes of color and monochrome windows. The original NCursesColorWindow
++of mixes of color and monochrome windows.  The original NCursesColorWindow
+ class is maintained for compatibility reasons.
+ 
+ The last point to mention is the support of other packages that are
+-distributed with the ncurses package: the panels library, the menu library
+-and the form library. This support is provided by the NCursesPanel class, 
++distributed with the ncurses package:  the panels library, the menu library
++and the form library.  This support is provided by the NCursesPanel class,
+ which is also derived from the NCursesWindow class and the NCursesMenu
+-and NCursesForm classes which are derived from NCursesPanel. This allows 
++and NCursesForm classes which are derived from NCursesPanel.  This allows
+ building interfaces with windows.
+ 
+ Please see the example program for a quick introduction.
+@@ -68,14 +68,6 @@
+ Suggestions for enhancements and contributions of code (and docs) are
+ welcome.  Please let us know which functionality you miss.
+ 
+-	ATTENTION LINUX USERS:  There is currently some discussion of
+-	replacing the BSD curses in the Linux libc with ncurses.  If
+-	this is done we could perhaps include these classes in the Linux
+-	libg++ replacing the original CursesWindow class (and renaming it
+-	to CursesWindow).  This could be done because NCursesWindow can
+-	be made easily to a superset of the CursesWindow class.
+-
+-
+ Original author:
+      Eric Newton         <newton@rocky.oswego.edu> for FSF's libg++
+ 
+@@ -83,5 +75,6 @@
+      Ulrich Drepper      <drepper@ira.uka.de>
+  and Anatoly Ivasyuk     <anatoly@nick.csh.rit.edu>
+ 
+-Author of this release:
++Authors of this release:
+      Juergen Pfeifer
++     Thomas E. Dickey
+Index: c++/cursesapp.cc
+Prereq:  1.13 
+--- ncurses-5.6/c++/cursesapp.cc	2005-04-03 12:25:23.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursesapp.cc	2007-01-27 20:16:42.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ #include "internal.h"
+ #include "cursesapp.h"
+ 
+-MODULE_ID("$Id: cursesapp.cc,v 1.13 2005/04/03 12:25:23 tom Exp $")
++MODULE_ID("$Id: cursesapp.cc,v 1.14 2007/01/27 20:16:42 tom Exp $")
+ 
+ void
+ NCursesApplication::init(bool bColors)
+@@ -72,11 +72,16 @@
+   Soft_Label_Key_Set* S;
+ 
+   delete titleWindow;
++  titleWindow = 0;
++
+   while( (S=top()) ) {
+     pop();
+     delete S;
+   }
++
+   delete Root_Window;
++  Root_Window = 0;
++
+   ::endwin();
+ }
+ 
+Index: c++/cursesmain.cc
+Prereq:  1.11 
+--- ncurses-5.6/c++/cursesmain.cc	2003-10-25 14:53:13.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursesmain.cc	2007-04-07 17:10:11.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,14 @@
+ #include "internal.h"
+ #include "cursesapp.h"
+ 
+-MODULE_ID("$Id: cursesmain.cc,v 1.11 2003/10/25 14:53:13 tom Exp $")
++#if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM
++#include <iostream>
++#else
++#undef CPP_HAS_TRY_CATCH
++#define CPP_HAS_TRY_CATCH 0
++#endif
++
++MODULE_ID("$Id: cursesmain.cc,v 1.14 2007/04/07 17:10:11 tom Exp $")
+ 
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+@@ -42,6 +49,10 @@
+ #define setlocale(name,string) /* nothing */
+ #endif
+ 
++#if NO_LEAKS
++#include <nc_alloc.h>
++#endif
++
+ /* This is the default implementation of main() for a NCursesApplication.
+  * You only have to instantiate a static NCursesApplication object in your
+  * main application source file and link this module with your application.
+@@ -58,8 +69,25 @@
+ 
+     A->handleArgs(argc,argv);
+     ::endwin();
++#if CPP_HAS_TRY_CATCH
++    try {
++      res = (*A)();
++      ::endwin();
++    }
++    catch(const NCursesException &e) {
++      ::endwin();
++      std::cerr << e.message << std::endl;
++      res = e.errorno;
++    }
++#else
+     res = (*A)();
+     ::endwin();
++#endif
++#if NO_LEAKS
++    delete A;
++    _nc_free_and_exit(res);
++#else
+     return(res);
++#endif
+   }
+ }
+Index: c++/cursesp.h
+Prereq:  1.26 
+--- ncurses-5.6/c++/cursesp.h	2005-08-13 18:09:21.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursesp.h	2007-04-07 17:12:54.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ #ifndef NCURSES_CURSESP_H_incl
+ #define NCURSES_CURSESP_H_incl 1
+ 
+-// $Id: cursesp.h,v 1.26 2005/08/13 18:09:21 tom Exp $
++// $Id: cursesp.h,v 1.27 2007/04/07 17:12:54 tom Exp $
+ 
+ #include <cursesw.h>
+ 
+@@ -83,7 +83,7 @@
+     return uptr->m_user;
+   }
+ 
+-  void OnError (int err) const THROWS((NCursesPanelException))
++  void OnError (int err) const THROWS(NCursesPanelException)
+   {
+     if (err==ERR)
+       THROW(new NCursesPanelException (this, err));
+Index: c++/cursespad.cc
+Prereq:  1.11 
+--- ncurses-5.6/c++/cursespad.cc	2005-07-23 20:51:23.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursespad.cc	2007-04-07 18:43:54.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -33,12 +33,10 @@
+ 
+ #include "internal.h"
+ 
+-#include <stdio.h>
++#include <etip.h>
++#include <cursesw.h>
+ 
+-#include "etip.h"
+-#include "cursesw.h"
+-
+-MODULE_ID("$Id: cursespad.cc,v 1.11 2005/07/23 20:51:23 tom Exp $")
++MODULE_ID("$Id: cursespad.cc,v 1.12 2007/04/07 18:43:54 tom Exp $")
+ 
+ NCursesPad::NCursesPad(int nlines, int ncols)
+   : NCursesWindow(),
+Index: c++/cursesw.cc
+Prereq:  1.32 
+--- ncurses-5.6/c++/cursesw.cc	2005-08-13 18:12:17.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursesw.cc	2007-03-24 19:00:58.000000000 +0000
+@@ -1,79 +1,70 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
++/****************************************************************************
++ * Copyright (c) 2007 Free 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.                                                           *
++ ****************************************************************************/
+ 
+ /*
+-  Copyright (C) 1989 Free Software Foundation
+-  written by Eric Newton (newton@rocky.oswego.edu)
+-
+-  This file is part of the GNU C++ Library.  This library is free
+-  software; you can redistribute it and/or modify it under the terms of
+-  the GNU Library General Public License as published by the Free
+-  Software Foundation; either version 2 of the License, or (at your
+-  option) any later version.  This library is distributed in the hope
+-  that it will be useful, but WITHOUT ANY WARRANTY; without even the
+-  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+-  PURPOSE.  See the GNU Library General Public License for more details.
+-  You should have received a copy of the GNU Library General Public
+-  License along with this library; if not, write to the Free Software
+-  Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+-
+-  modified by Ulrich Drepper  (drepper@karlsruhe.gmd.de)
+-          and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
+-
+-  modified by Juergen Pfeifer
+-  and Thomas Dickey (noting that more than 70% of this file has been changed)
+-*/
++ * Authors:
++ *	Thomas E. Dickey
++ *	Juergen Pfeifer
++ *
++ * The NCursesWindow class was originally based on a file written by
++ * Eric Newton, later modified by Ulrich Drepper and Anatoly Ivasyuk.
++ * However, aside from the compatible interface definition, no trace
++ * of the original code remains in this version: it consists only of
++ * changes introduced since 1995.
++ */
+ 
+ #include "internal.h"
+ #include "cursesw.h"
+ 
+-MODULE_ID("$Id: cursesw.cc,v 1.32 2005/08/13 18:12:17 tom Exp $")
++MODULE_ID("$Id: cursesw.cc,v 1.48 2007/03/24 19:00:58 tom Exp $")
+ 
+ #define COLORS_NEED_INITIALIZATION  -1
+ #define COLORS_NOT_INITIALIZED       0
+ #define COLORS_MONOCHROME            1
+ #define COLORS_ARE_REALLY_THERE      2
+ 
++#define HaveColors() (colorInitialized == COLORS_ARE_REALLY_THERE)
++
+ // declare static variables for the class
+ long NCursesWindow::count = 0L;
+ bool NCursesWindow::b_initialized = FALSE;
+ 
+-/*
+- * The ncurses library has a fallback for vsscanf(), which may work...
+- */
+-#if !(USE_STRSTREAM_VSCAN || USE_STRSTREAM_VSCAN_CAST)
+-#  undef  USE_STDIO_VSCAN
+-#  define USE_STDIO_VSCAN 1
+-#endif
+-
+-#if defined(__GNUG__)
+-#  ifndef _IO_va_list
+-#    define _IO_va_list char *
+-#  endif
+-#endif
+-
+ int
+ NCursesWindow::scanw(const char* fmt, ...)
+ {
+     int result = ERR;
+-    char buf[BUFSIZ];
+ 
+-    if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
+-	va_list args;
+-	va_start(args, fmt);
+-#if USE_STDIO_VSCAN
+-	if (::vsscanf(buf, fmt, args) != -1)
+-	    result = OK;
+-#elif USE_STRSTREAM_VSCAN	/* powerpc, os390 */
+-	strstreambuf ss(buf, sizeof(buf));
+-	if (ss.vscan(fmt, args) != -1)
+-	    result = OK;
+-#elif USE_STRSTREAM_VSCAN_CAST	/* pre-gcc 3.0 */
+-	strstreambuf ss(buf, sizeof(buf));
+-	if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+-	    result = OK;
+-#endif
+-	va_end(args);
+-    }
++    va_list args;
++    va_start(args, fmt);
++    result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
++    va_end(args);
++
+     return result;
+ }
+ 
+@@ -82,26 +73,12 @@
+ NCursesWindow::scanw(int y, int x, const char* fmt, ...)
+ {
+     int result = ERR;
+-    char buf[BUFSIZ];
+ 
+     if (::wmove(w, y, x) != ERR) {
+-	if (::wgetnstr(w, buf, sizeof(buf)) != ERR) {
+-	    va_list args;
+-	    va_start(args, fmt);
+-#if USE_STDIO_VSCAN
+-	    if (::vsscanf(buf, fmt, args) != -1)
+-		result = OK;
+-#elif USE_STRSTREAM_VSCAN	/* powerpc, os390 */
+-	    strstreambuf ss(buf, sizeof(buf));
+-	    if (ss.vscan(fmt, args) != -1)
+-		result = OK;
+-#elif USE_STRSTREAM_VSCAN_CAST	/* pre-gcc 3.0 */
+-	    strstreambuf ss(buf, sizeof(buf));
+-	    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+-		result = OK;
+-#endif
+-	    va_end(args);
+-	}
++	va_list args;
++	va_start(args, fmt);
++	result = ::vw_scanw (w, const_cast<NCURSES_CONST char *>(fmt), args);
++	va_end(args);
+     }
+     return result;
+ }
+@@ -112,10 +89,9 @@
+ {
+     va_list args;
+     va_start(args, fmt);
+-    char buf[BUFSIZ];
+-    ::vsprintf(buf, fmt, args);
++    int result = ::vw_printw(w, fmt, args);
+     va_end(args);
+-    return waddstr(w, buf);
++    return result;
+ }
+ 
+ 
+@@ -126,9 +102,7 @@
+     va_start(args, fmt);
+     int result = ::wmove(w, y, x);
+     if (result == OK) {
+-	char buf[BUFSIZ];
+-	::vsprintf(buf, fmt, args);
+-	result = waddstr(w, buf);
++	result = ::vw_printw(w, fmt, args);
+     }
+     va_end(args);
+     return result;
+@@ -136,11 +110,10 @@
+ 
+ 
+ void
+-NCursesWindow::init(void)
++NCursesWindow::set_keyboard(void)
+ {
+-    leaveok(0);
+-    keypad(1);
+-    meta(1);
++    keypad(TRUE);
++    meta(TRUE);
+ }
+ 
+ void
+@@ -152,73 +125,73 @@
+ void
+ NCursesWindow::initialize()
+ {
+-  if (!b_initialized) {
+-    ::initscr();
+-    b_initialized = TRUE;
+-    if (colorInitialized==COLORS_NEED_INITIALIZATION) {
+-      colorInitialized=COLORS_NOT_INITIALIZED;
+-      useColors();
+-    }
+-    ::noecho();
+-    ::cbreak();
+-  }
++    if (!b_initialized) {
++	::initscr();
++	b_initialized = TRUE;
++	if (colorInitialized == COLORS_NEED_INITIALIZATION) {
++	    colorInitialized = COLORS_NOT_INITIALIZED;
++	    useColors();
++	}
++	::noecho();
++	::cbreak();
++    }
++}
++
++void
++NCursesWindow::constructing()
++{
++    initialize();
++    ++count;
+ }
+ 
+ NCursesWindow::NCursesWindow()
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
+ {
+-  initialize();
++    constructing();
+ 
+-  w = static_cast<WINDOW *>(0);
+-  init();
+-  alloced = FALSE;
+-  subwins = par = sib = 0;
+-  count++;
++    w = static_cast<WINDOW *>(0);
++    set_keyboard();
+ }
+ 
+ NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
+ {
+-    initialize();
++    constructing();
+ 
+     w = ::newwin(nlines, ncols, begin_y, begin_x);
+     if (w == 0) {
+ 	err_handler("Cannot construct window");
+     }
+-    init();
+-
+-    alloced = TRUE;
+-    subwins = par = sib = 0;
+-    count++;
++    set_keyboard();
+ }
+ 
+-NCursesWindow::NCursesWindow(WINDOW* &window)
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++NCursesWindow::NCursesWindow(WINDOW* window)
++  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
+ {
+-    initialize();
++    constructing();
+ 
+-    w = window;
+-    init();
+-    alloced = FALSE;
+-    subwins = par = sib = 0;
+-    count++;
++    // We used to use a reference on the "window" parameter, but we cannot do
++    // that with an opaque pointer (see NCURSES_OPAQUE).  If the parameter was
++    // "::stdscr", that is first set via the "constructing() call, and is null
++    // up to that point.  So we allow a null pointer here as meaning the "same"
++    // as "::stdscr".
++    w = window ? window : ::stdscr;
++    set_keyboard();
+ }
+ 
+-NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
++NCursesWindow::NCursesWindow(NCursesWindow& win, int ny, int nx,
+ 			     int begin_y, int begin_x, char absrel)
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
+ {
+-    initialize();
+-    if (absrel == 'a') { // absolute origin
++    constructing();
++    if (absrel == 'a') {	// absolute origin
+ 	begin_y -= win.begy();
+ 	begin_x -= win.begx();
+     }
+ 
+-    // Even though we treat subwindows as a tree, the standard curses
+-    // library needs the `subwin' call to link to the parent in
+-    // order to correctly perform refreshes, etc.
+-    // Friendly enough, this also works for pads.
+-    w = ::derwin(win.w, l, c, begin_y, begin_x);
++    // Link this window into its parent's list of subwindows.
++    // We use derwin(), since this also works for pads.
++    w = ::derwin(win.w, ny, nx, begin_y, begin_x);
+     if (w == 0) {
+ 	err_handler("Cannot construct subwindow");
+     }
+@@ -226,45 +199,40 @@
+     par = &win;
+     sib = win.subwins;
+     win.subwins = this;
+-    subwins = 0;
+-    alloced = TRUE;
+-    count++;
+ }
+ 
+ NCursesWindow::NCursesWindow(NCursesWindow& win,
+ 				bool do_box NCURSES_PARAM_INIT(TRUE))
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++  : w(0), alloced(TRUE), par(0), subwins(0), sib(0)
+ {
+-  initialize();
+-  int myHeight = win.height();
+-  int myWidth  = win.width();
+-  w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
+-  if (w == 0) {
+-    err_handler("Cannot construct subwindow");
+-  }
+-
+-  par = &win;
+-  sib = win.subwins;
+-  win.subwins = this;
+-  subwins = 0;
+-  alloced = TRUE;
+-  count++;
+-
+-  if (do_box) {
+-    win.box();
+-    win.touchwin();
+-  }
++    constructing();
++    int myHeight = win.height();
++    int myWidth  = win.width();
++    w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
++    if (w == 0) {
++	err_handler("Cannot construct subwindow");
++    }
++
++    par = &win;
++    sib = win.subwins;
++    win.subwins = this;
++    subwins = 0;
++
++    if (do_box) {
++	win.box();
++	win.touchwin();
++    }
+ }
+ 
+ NCursesWindow NCursesWindow::Clone()
+ {
+-  WINDOW *d = ::dupwin(w);
+-  NCursesWindow W(d);
+-  W.subwins = subwins;
+-  W.sib = sib;
+-  W.par = par;
+-  W.alloced = alloced;
+-  return W;
++    WINDOW *d = ::dupwin(w);
++    NCursesWindow W(d);
++    W.subwins = subwins;
++    W.sib = sib;
++    W.par = par;
++    W.alloced = alloced;
++    return W;
+ }
+ 
+ typedef int (*RIPOFFINIT)(NCursesWindow&);
+@@ -273,62 +241,64 @@
+ static RIPOFFINIT* prip = R_INIT;
+ 
+ NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
+-  : w(0), alloced(0), par(0), subwins(0), sib(0)
++  : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
+ {
+-  initialize();
+-  w = win;
+-  assert((w->_maxx+1)==ncols);
+-  alloced = FALSE;
+-  subwins = par = sib = 0;
++    initialize();
++    w = win;
++    assert((w->_maxx +1 ) == ncols);
+ }
+ 
+ int _nc_xx_ripoff_init(WINDOW *w, int ncols)
+ {
+-  int res = ERR;
++    int res = ERR;
+ 
+-  RIPOFFINIT init = *prip++;
+-  if (init) {
+-    NCursesWindow* W = new NCursesWindow(w,ncols);
+-    res = init(*W);
+-  }
+-  return res;
++    RIPOFFINIT init = *prip++;
++    if (init) {
++	NCursesWindow* W = new NCursesWindow(w,ncols);
++	res = init(*W);
++    }
++    return res;
+ }
+ 
+ int NCursesWindow::ripoffline(int ripoff_lines,
+ 			      int (*init)(NCursesWindow& win))
+ {
+-  int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
+-  if (code==OK && init && ripoff_lines) {
+-    R_INIT[r_init_idx++] = init;
+-  }
+-  return code;
++    int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
++    if (code == OK && init && ripoff_lines) {
++	R_INIT[r_init_idx++] = init;
++    }
++    return code;
+ }
+ 
+ bool
+ NCursesWindow::isDescendant(NCursesWindow& win)
+ {
+-  for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
+-    if (p==&win)
+-      return TRUE;
+-    else {
+-      if (p->isDescendant(win))
+-	return TRUE;
++    bool result = FALSE;
++
++    for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
++	if (p == &win || p->isDescendant(win)) {
++	    result = TRUE;
++	    break;
++	}
+     }
+-  }
+-  return FALSE;
++    return result;
+ }
+ 
+ void
+ NCursesWindow::kill_subwindows()
+ {
+-    for (NCursesWindow* p = subwins; p != 0; p = p->sib) {
++    NCursesWindow* p = subwins;
++
++    subwins = 0;
++    while (p != 0) {
++	NCursesWindow* q = p->sib;
+ 	p->kill_subwindows();
+ 	if (p->alloced) {
+ 	    if (p->w != 0)
+ 		::delwin(p->w);
+-	    p->alloced = FALSE;
+ 	}
+-	p->w = 0; // cause a run-time error if anyone attempts to use...
++	delete p;
++	p = q;
+     }
+ }
+ 
+@@ -337,22 +307,21 @@
+ {
+     kill_subwindows();
+ 
+-    if (par != 0) {  // Snip us from the parent's list of subwindows.
+-	NCursesWindow * win = par->subwins;
+-	NCursesWindow * trail = 0;
+-	for (;;) {
+-	    if (win == 0)
++    if (par != 0) {
++	// Remove this window from the parent's list of subwindows.
++	NCursesWindow * next = par->subwins;
++	NCursesWindow * prev = 0;
++	while (next != 0) {
++	    if (next == this) {
++		if (prev != 0) {
++		    prev->sib = next->sib;
++		} else {
++		    par->subwins = next->sib;
++		}
+ 		break;
+-	    else if (win == this) {
+-		if (trail != 0)
+-		    trail->sib = win->sib;
+-		else
+-		    par->subwins = win->sib;
+-		break;
+-	    } else {
+-		trail = win;
+-		win = win->sib;
+ 	    }
++	    prev = next;
++	    next = next->sib;
+ 	}
+     }
+ 
+@@ -360,13 +329,12 @@
+ 	::delwin(w);
+ 
+     if (alloced) {
+-      --count;
+-      if (count == 0) {
+-	::endwin();
+-      }
+-      else if (count < 0) { // cannot happen!
+-	err_handler("Too many windows destroyed");
+-      }
++	--count;
++	if (count == 0) {
++	    ::endwin();
++	} else if (count < 0) { // cannot happen!
++	    err_handler("Too many windows destroyed");
++	}
+     }
+ }
+ 
+@@ -379,89 +347,82 @@
+ NCursesWindow::useColors(void)
+ {
+     if (colorInitialized == COLORS_NOT_INITIALIZED) {
+-      if (b_initialized) {
+-	if (::has_colors()) {
+-	  ::start_color();
+-	  colorInitialized = COLORS_ARE_REALLY_THERE;
++	if (b_initialized) {
++	    if (::has_colors()) {
++		::start_color();
++		colorInitialized = COLORS_ARE_REALLY_THERE;
++	    } else {
++		colorInitialized = COLORS_MONOCHROME;
++	    }
++	} else {
++	    colorInitialized = COLORS_NEED_INITIALIZATION;
+ 	}
+-	else
+-	  colorInitialized = COLORS_MONOCHROME;
+-      }
+-      else
+-	colorInitialized = COLORS_NEED_INITIALIZATION;
+     }
+ }
+ 
+ short
++NCursesWindow::getPair() const
++{
++    return static_cast<short>(PAIR_NUMBER(getattrs(w)));
++}
++
++short
+ NCursesWindow::getcolor(int getback) const
+ {
+     short fore, back;
+ 
+-    if (colorInitialized==COLORS_ARE_REALLY_THERE) {
+-      if (::pair_content(static_cast<short>(PAIR_NUMBER(w->_attrs)), &fore, &back))
+-	err_handler("Can't get color pair");
+-    }
+-    else {
+-      // Monochrome means white on black
+-      back = COLOR_BLACK;
+-      fore = COLOR_WHITE;
++    if (HaveColors()) {
++	if (::pair_content(getPair(), &fore, &back) == ERR)
++	    err_handler("Can't get color pair");
++    } else {
++	// Monochrome means white on black
++	back = COLOR_BLACK;
++	fore = COLOR_WHITE;
+     }
+     return getback ? back : fore;
+ }
+ 
+ int NCursesWindow::NumberOfColors()
+ {
+-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
+-    return COLORS;
+-  else
+-    return 1; // monochrome (actually there are two ;-)
++    return (HaveColors()) ? COLORS : 1;
+ }
+ 
+ short
+ NCursesWindow::getcolor() const
+ {
+-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
+-    return PAIR_NUMBER(w->_attrs);
+-  else
+-    return 0; // we only have pair zero
++    return (HaveColors()) ? getPair() : 0;
+ }
+ 
+ int
+ NCursesWindow::setpalette(short fore, short back, short pair)
+ {
+-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
+-    return ::init_pair(pair, fore, back);
+-  else
+-    return OK;
++    return (HaveColors()) ? ::init_pair(pair, fore, back) : OK;
+ }
+ 
+ int
+ NCursesWindow::setpalette(short fore, short back)
+ {
+-  if (colorInitialized==COLORS_ARE_REALLY_THERE)
+-    return setpalette(fore, back, static_cast<short>(PAIR_NUMBER(w->_attrs)));
+-  else
+-    return OK;
++    return setpalette(fore, back, getPair());
+ }
+ 
+ 
+ int
+ NCursesWindow::setcolor(short pair)
+ {
+-  if (colorInitialized==COLORS_ARE_REALLY_THERE) {
+-    if ((pair < 1) || (pair > COLOR_PAIRS))
+-      err_handler("Can't set color pair");
+-
+-    attroff(A_COLOR);
+-    attrset(COLOR_PAIR(pair));
+-  }
+-  return OK;
++    if (HaveColors()) {
++	if ((pair < 1) || (pair > COLOR_PAIRS))
++	    err_handler("Can't set color pair");
++
++	attroff(A_COLOR);
++	attrset(COLOR_PAIR(pair));
++    }
++    return OK;
+ }
+ 
+ #if HAVE_HAS_KEY
+ bool NCursesWindow::has_mouse() const
+ {
+-  return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
+-	  ? TRUE : FALSE);
++    return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
++	     ? TRUE : FALSE);
+ }
+ #endif
+Index: c++/cursesw.h
+Prereq:  1.38 
+--- ncurses-5.6/c++/cursesw.h	2005-07-23 20:51:39.000000000 +0000
++++ ncurses-5.6-20071201/c++/cursesw.h	2007-11-24 19:09:09.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -30,17 +30,10 @@
+ #ifndef NCURSES_CURSESW_H_incl
+ #define NCURSES_CURSESW_H_incl 1
+ 
+-// $Id: cursesw.h,v 1.38 2005/07/23 20:51:39 tom Exp $
+-
+-#include <stdarg.h>
+-#include <stdio.h>
++// $Id: cursesw.h,v 1.46 2007/11/24 19:09:09 tom Exp $
+ 
+ #include <etip.h>
+ 
+-#if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
+-#include <strstream.h>
+-#endif
+-
+ extern "C" {
+ #  include   <curses.h>
+ }
+@@ -705,11 +698,13 @@
+ private:
+   static bool    b_initialized;
+   static void    initialize();
++  void           constructing();
+   friend int     _nc_xx_ripoff_init(WINDOW *, int);
+ 
+-  void           init();
++  void           set_keyboard();
+ 
+   short          getcolor(int getback) const;
++  short          getPair() const;
+ 
+   static int     setpalette(short fore, short back, short pair);
+   static int     colorInitialized;
+@@ -743,7 +738,7 @@
+   NCursesWindow();
+ 
+ public:
+-  NCursesWindow(WINDOW* &window);  // useful only for stdscr
++  NCursesWindow(WINDOW* window);   // useful only for stdscr
+ 
+   NCursesWindow(int nlines,        // number of lines
+ 		int ncols,         // number of columns
+@@ -823,16 +818,16 @@
+   int            width() const { return maxx() + 1; }
+   // Number of columns in this window
+ 
+-  int            begx() const { return w->_begx; }
++  int            begx() const { return getbegx(w); }
+   // Column of top left corner relative to stdscr
+ 
+-  int            begy() const { return w->_begy; }
++  int            begy() const { return getbegy(w); }
+   // Line of top left corner relative to stdscr
+ 
+-  int            maxx() const { return w->_maxx; }
++  int            maxx() const { return getmaxx(w) == ERR ? ERR : getmaxx(w)-1; }
+   // Largest x coord in window
+ 
+-  int            maxy() const { return w->_maxy; }
++  int            maxy() const { return getmaxy(w) == ERR ? ERR : getmaxy(w)-1; }
+   // Largest y coord in window
+ 
+   short          getcolor() const;
+@@ -1220,6 +1215,14 @@
+   // sminrow,smincol.
+ 
+   // -------------------------------------------------------------------------
++  // Extended functions
++  // -------------------------------------------------------------------------
++#ifdef NCURSES_EXT_FUNCS
++  int            wresize(int newLines, int newColumns) {
++    return ::wresize(w, newLines, newColumns); }
++#endif
++
++  // -------------------------------------------------------------------------
+   // Mouse related
+   // -------------------------------------------------------------------------
+   bool has_mouse() const;
+Index: c++/demo.cc
+Prereq:  1.34 
+--- ncurses-5.6/c++/demo.cc	2006-04-22 22:38:57.000000000 +0000
++++ ncurses-5.6-20071201/c++/demo.cc	2007-04-07 20:24:49.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,7 +35,7 @@
+  *   Demo code for NCursesMenu and NCursesForm written by
+  *   Juergen Pfeifer
+  *
+- * $Id: demo.cc,v 1.34 2006/04/22 22:38:57 tom Exp $
++ * $Id: demo.cc,v 1.36 2007/04/07 20:24:49 tom Exp $
+  */
+ 
+ #include "internal.h"
+@@ -55,30 +55,30 @@
+   public:
+   void run(int sleeptime) {
+ 
+-    NCursesPanel *std = new NCursesPanel();
++    NCursesPanel *mystd = new NCursesPanel();
+ 
+     //  Make a few small demo panels
+ 
+-    NCursesPanel *u = new NCursesPanel(8,20,12,4);
+-    NCursesPanel *v = new NCursesPanel(8,20,10,6);
+-    NCursesPanel *w = new NCursesPanel(8,20,8,8);
+-    NCursesPanel *x = new NCursesPanel(8,20,6,10);
+-    NCursesPanel *y = new NCursesPanel(8,20,4,12);
+-    NCursesPanel *z = new NCursesPanel(8,30,2,14);
++    NCursesPanel *u = new NCursesPanel(8, 20, 12, 4);
++    NCursesPanel *v = new NCursesPanel(8, 20, 10, 6);
++    NCursesPanel *w = new NCursesPanel(8, 20, 8, 8);
++    NCursesPanel *x = new NCursesPanel(8, 20, 6, 10);
++    NCursesPanel *y = new NCursesPanel(8, 20, 4, 12);
++    NCursesPanel *z = new NCursesPanel(8, 30, 2, 14);
+ 
+     //  Draw something on the main screen, so we can see what happens
+     //  when panels get moved or deleted.
+ 
+-    std->box();
+-    std->move(std->height()/2,1);
+-    std->hline(std->width()-2);
+-    std->move(1,std->width()/2);
+-    std->vline(std->height()-2);
+-    std->addch(0,std->width()/2,ACS_TTEE);
+-    std->addch(std->height()-1,std->width()/2,ACS_BTEE);
+-    std->addch(std->height()/2,0,ACS_LTEE);
+-    std->addch(std->height()/2,std->width()-1,ACS_RTEE);
+-    std->addch(std->height()/2,std->width()/2,ACS_PLUS);
++    mystd->box();
++    mystd->move(mystd->height()/2, 1);
++    mystd->hline(mystd->width()-2);
++    mystd->move(1, mystd->width()/2);
++    mystd->vline(mystd->height()-2);
++    mystd->addch(0, mystd->width()/2, ACS_TTEE);
++    mystd->addch(mystd->height()-1, mystd->width()/2, ACS_BTEE);
++    mystd->addch(mystd->height()/2, 0, ACS_LTEE);
++    mystd->addch(mystd->height()/2, mystd->width()-1, ACS_RTEE);
++    mystd->addch(mystd->height()/2, mystd->width()/2, ACS_PLUS);
+ 
+     //  Draw frames with titles around panels so that we can see where
+     //  the panels are located.
+@@ -98,56 +98,56 @@
+     }
+ 
+     //  A refresh to any valid panel updates all panels and refreshes
+-    //  the screen.  Using std is just convenient - We know it's always
++    //  the screen.  Using mystd is just convenient - We know it's always
+     //  valid until the end of the program.
+ 
+-    std->refresh();
++    mystd->refresh();
+     sleep(sleeptime);
+ 
+     //  Show what happens when panels are deleted and moved.
+ 
+     sleep(sleeptime);
+     delete u;
+-    std->refresh();
++    mystd->refresh();
+ 
+     sleep(sleeptime);
+     delete z;
+-    std->refresh();
++    mystd->refresh();
+ 
+     sleep(sleeptime);
+     delete v;
+-    std->refresh();
++    mystd->refresh();
+ 
+     // show how it looks when a panel moves
+     sleep(sleeptime);
+-    y->mvwin(5,30);
+-    std->refresh();
++    y->mvwin(5, 30);
++    mystd->refresh();
+ 
+     sleep(sleeptime);
+     delete y;
+-    std->refresh();
++    mystd->refresh();
+ 
+     // show how it looks when you raise a panel
+     sleep(sleeptime);
+     w->top();
+-    std->refresh();
++    mystd->refresh();
+ 
+     sleep(sleeptime);
+     delete w;
+-    std->refresh();
++    mystd->refresh();
+ 
+     sleep(sleeptime);
+     delete x;
+ 
+-    std->clear();
+-    std->refresh();
++    mystd->clear();
++    mystd->refresh();
+ 
+     //  Don't forget to clean up the main screen.  Since this is the
+     //  last thing using NCursesWindow, this has the effect of
+     //  shutting down ncurses and restoring the terminal state.
+ 
+     sleep(sleeptime);
+-    delete std;
++    delete mystd;
+   }
+ };
+ 
+@@ -247,21 +247,21 @@
+ 
+     F     = new NCursesFormField*[10];
+     mft   = new MyFieldType('X');
+-    ift   = new Integer_Field(0,1,10);
++    ift   = new Integer_Field(0, 1, 10);
+     eft   = new Enumeration_Field(weekdays);
+ 
+-    F[0]  = new Label("Demo Entry Form",0,16);
+-    F[1]  = new Label("Weekday Enum",2,1);
+-    F[2]  = new Label("Number(1-10)",2,21);
+-    F[3]  = new Label("Only 'X'",2,35);
+-    F[4]  = new Label("Multiline Field (Dynamic and Scrollable)",5,1);
+-    F[5]  = new NCursesFormField(1,18,3,1);
+-    F[6]  = new NCursesFormField(1,12,3,21);
+-    F[7]  = new NCursesFormField(1,12,3,35);
+-    F[8]  = new NCursesFormField(4,46,6,1,2);
++    F[0]  = new Label("Demo Entry Form", 0, 16);
++    F[1]  = new Label("Weekday Enum", 2, 1);
++    F[2]  = new Label("Number(1-10)", 2, 21);
++    F[3]  = new Label("Only 'X'", 2, 35);
++    F[4]  = new Label("Multiline Field (Dynamic and Scrollable)", 5, 1);
++    F[5]  = new NCursesFormField(1, 18, 3, 1);
++    F[6]  = new NCursesFormField(1, 12, 3, 21);
++    F[7]  = new NCursesFormField(1, 12, 3, 35);
++    F[8]  = new NCursesFormField(4, 46, 6, 1, 2);
+     F[9]  = new NCursesFormField();
+ 
+-    InitForm(F,TRUE,TRUE);
++    InitForm(F, TRUE, TRUE);
+     boldframe();
+ 
+     F[5]->set_fieldtype(*eft);
+@@ -312,7 +312,7 @@
+     Soft_Label_Key_Set* S = new Soft_Label_Key_Set;
+     for(int i=1; i <= S->labels(); i++) {
+       char buf[8];
+-      ::sprintf(buf,"Frm%02d",i);
++      ::sprintf(buf, "Frm%02d", i);
+       (*S)[i] = buf;                                      // Text
+       (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
+     }
+@@ -336,9 +336,9 @@
+     const int PADSIZE  = 200;
+     unsigned gridcount = 0;
+ 
+-    NCursesPanel std;
+-    NCursesPanel P(std.lines()-2,std.cols()-2,1,1);
+-    NCursesFramedPad FP(P,PADSIZE,PADSIZE);
++    NCursesPanel mystd;
++    NCursesPanel P(mystd.lines()-2, mystd.cols()-2, 1, 1);
++    NCursesFramedPad FP(P, PADSIZE, PADSIZE);
+ 
+     for (int i=0; i < PADSIZE; i++) {
+       for (int j=0; j < PADSIZE; j++) {
+@@ -357,7 +357,7 @@
+       }
+     }
+ 
+-    P.label("Pad Demo",NULL);
++    P.label("Pad Demo", NULL);
+     FP();
+     P.clear();
+     return FALSE;
+@@ -385,9 +385,9 @@
+   }
+ 
+   bool action() {
+-    NCursesPanel *std = new NCursesPanel();
++    NCursesPanel *mystd = new NCursesPanel();
+ 
+-    NCursesPanel *w = new NCursesPanel(std->lines() - 2, std->cols() - 2, 1, 1);
++    NCursesPanel *w = new NCursesPanel(mystd->lines() - 2, mystd->cols() - 2, 1, 1);
+     w->box();
+     w->refresh();
+ 
+@@ -411,7 +411,7 @@
+ 
+     delete s;
+     delete w;
+-    delete std;
++    delete mystd;
+     ::noecho();
+     return FALSE;
+   }
+@@ -444,10 +444,10 @@
+     I[6] = new QuitItem();
+     I[7] = new NCursesMenuItem(); // Terminating empty item
+ 
+-    InitMenu(I,TRUE,TRUE);
++    InitMenu(I, TRUE, TRUE);
+ 
+-    P = new NCursesPanel(1,n_items,LINES-1,1);
+-    boldframe("Demo","Silly");
++    P = new NCursesPanel(1, n_items, LINES-1, 1);
++    boldframe("Demo", "Silly");
+     P->show();
+   }
+ 
+@@ -474,7 +474,7 @@
+   virtual void On_Menu_Init()
+   {
+     NCursesWindow W(::stdscr);
+-    P->move(0,0);
++    P->move(0, 0);
+     P->clrtoeol();
+     for(int i=1; i<=count(); i++)
+       P->addch('0' + i);
+@@ -484,25 +484,25 @@
+ 
+   virtual void On_Menu_Termination()
+   {
+-    P->move(0,0);
++    P->move(0, 0);
+     P->clrtoeol();
+     refresh();
+   }
+ 
+   virtual void On_Item_Init(NCursesMenuItem& item)
+   {
+-    P->move(0,item.index());
++    P->move(0, item.index());
+     P->attron(A_REVERSE);
+-    P->printw("%1d",1+item.index());
++    P->printw("%1d", 1+item.index());
+     P->attroff(A_REVERSE);
+     refresh();
+   }
+ 
+   virtual void On_Item_Termination(NCursesMenuItem& item)
+   {
+-    P->move(0,item.index());
++    P->move(0, item.index());
+     P->attroff(A_REVERSE);
+-    P->printw("%1d",1+item.index());
++    P->printw("%1d", 1+item.index());
+     refresh();
+   }
+ };
+@@ -530,7 +530,7 @@
+ {
+   for(int i=1; i <= S.labels(); i++) {
+     char buf[8];
+-    ::sprintf(buf,"Key%02d",i);
++    ::sprintf(buf, "Key%02d", i);
+     S[i] = buf;                                      // Text
+     S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
+   }
+@@ -542,7 +542,7 @@
+   const int len = ::strlen(titleText);
+ 
+   titleWindow->bkgd(screen_titles());
+-  titleWindow->addstr(0,(titleWindow->cols() - len)/2, titleText);
++  titleWindow->addstr(0, (titleWindow->cols() - len)/2, titleText);
+   titleWindow->noutrefresh();
+ }
+ 
+@@ -557,4 +557,4 @@
+ //
+ // -------------------------------------------------------------------------
+ //
+-static TestApplication Demo;
++static TestApplication *Demo = new TestApplication();
+Index: c++/edit_cfg.sh
+Prereq:  1.14 
+--- ncurses-5.6/c++/edit_cfg.sh	2005-04-30 21:00:22.000000000 +0000
++++ ncurses-5.6-20071201/c++/edit_cfg.sh	2007-04-07 19:08:49.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# $Id: edit_cfg.sh,v 1.14 2005/04/30 21:00:22 tom Exp $
++# $Id: edit_cfg.sh,v 1.16 2007/04/07 19:08:49 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2005,2007 Free 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"), #
+@@ -28,7 +28,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey 1997
++# Author: Thomas E. Dickey 1997-on
+ #
+ # Edit the default value of the etip.h file based on the autoconf-generated
+ # values:
+@@ -45,11 +45,9 @@
+ 	HAVE_BUILTIN_H \
+ 	HAVE_GPP_BUILTIN_H \
+ 	HAVE_GXX_BUILTIN_H \
+-	HAVE_STRSTREAM_H \
++	HAVE_IOSTREAM \
+ 	HAVE_TYPEINFO \
+-	HAVE_VALUES_H \
+-	USE_STRSTREAM_VSCAN \
+-	USE_STRSTREAM_VSCAN_CAST
++	HAVE_VALUES_H
+ do
+ 	rm -f $2.bak
+ 	mv $2 $2.bak
+Index: c++/etip.h.in
+Prereq:  1.32 
+--- ncurses-5.6/c++/etip.h.in	2005-08-06 19:55:57.000000000 +0000
++++ ncurses-5.6-20071201/c++/etip.h.in	2007-04-07 18:56:32.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -31,7 +31,7 @@
+  *   Author: Juergen Pfeifer, 1997                                          *
+  ****************************************************************************/
+ 
+-// $Id: etip.h.in,v 1.32 2005/08/06 19:55:57 tom Exp $
++// $Id: etip.h.in,v 1.36 2007/04/07 18:56:32 tom Exp $
+ 
+ #ifndef NCURSES_ETIP_H_incl
+ #define NCURSES_ETIP_H_incl 1
+@@ -49,8 +49,8 @@
+ #define HAVE_GPP_BUILTIN_H 0
+ #endif
+ 
+-#ifndef HAVE_STRSTREAM_H
+-#define HAVE_STRSTREAM_H 0
++#ifndef HAVE_IOSTREAM
++#define HAVE_IOSTREAM 0
+ #endif
+ 
+ #ifndef HAVE_TYPEINFO
+@@ -77,14 +77,6 @@
+ #define CPP_HAS_STATIC_CAST 0	// workaround for g++ 2.95.3
+ #endif
+ 
+-#ifndef USE_STRSTREAM_VSCAN
+-#define USE_STRSTREAM_VSCAN 0
+-#endif
+-
+-#ifndef USE_STRSTREAM_VSCAN_CAST
+-#define USE_STRSTREAM_VSCAN_CAST 0
+-#endif
+-
+ #ifdef __GNUG__
+ #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
+ #    if HAVE_TYPEINFO
+@@ -335,30 +327,46 @@
+ };
+ 
+ #if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
+-#  include <iostream.h>
++#  if HAVE_IOSTREAM
++#     include <iostream>
++using std::cerr;
++using std::endl;
++#  else
++#     include <iostream.h>
++#  endif
+    extern "C" void exit(int);
+ #endif
+ 
+ inline void THROW(const NCursesException *e) {
+ #if defined(__GNUG__) && defined(__EXCEPTIONS)
+ #  if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
+-      (*lib_error_handler)(e?e->classname():"",e?e->message:"");
++      (*lib_error_handler)(e ? e->classname() : "", e ? e->message : "");
+ #else
+-      throw *e;
++#define CPP_HAS_TRY_CATCH 1
+ #endif
+ #elif defined(__SUNPRO_CC)
+ #  if !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5)
+   genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
+ #else
+-  throw *e;
++#define CPP_HAS_TRY_CATCH 1
+ #endif
+ #else
+   if (e)
+     cerr << e->message << endl;
+   exit(0);
+ #endif
+-}
+ 
+-#define THROWS(s)
++#ifndef CPP_HAS_TRY_CATCH
++#define CPP_HAS_TRY_CATCH 0
++#define NCURSES_CPP_TRY		/* nothing */
++#define NCURSES_CPP_CATCH(e)	if (false)
++#define THROWS(s)		/* nothing */
++#elif CPP_HAS_TRY_CATCH
++  throw *e;
++#define NCURSES_CPP_TRY		try
++#define NCURSES_CPP_CATCH(e)	catch(e)
++#define THROWS(s)		throw(s)
++#endif
++}
+ 
+ #endif /* NCURSES_ETIP_H_incl */
+Index: c++/headers
+Prereq:  1.2 
+--- ncurses-5.6/c++/headers	1998-02-11 12:13:40.000000000 +0000
++++ ncurses-5.6-20071201/c++/headers	2006-12-24 16:25:45.000000000 +0000
+@@ -1,7 +1,7 @@
+ # C++ headers
+-# $Id: headers,v 1.2 1998/02/11 12:13:40 tom Exp $
++# $Id: headers,v 1.3 2006/12/24 16:25:45 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -37,3 +37,4 @@
+ $(srcdir)/cursesw.h
+ $(srcdir)/cursslk.h
+ etip.h
++# vile:makemode
+Index: c++/internal.h
+Prereq:  1.13 
+--- ncurses-5.6/c++/internal.h	2006-09-30 21:59:57.000000000 +0000
++++ ncurses-5.6-20071201/c++/internal.h	2007-06-02 15:58:00.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -31,13 +31,15 @@
+  *   Author: Juergen Pfeifer, 1997                                          *
+  ****************************************************************************/
+ 
+-// $Id: internal.h,v 1.13 2006/09/30 21:59:57 tom Exp $
++// $Id: internal.h,v 1.15 2007/06/02 15:58:00 tom Exp $
+ 
+ #ifndef NCURSES_CPLUS_INTERNAL_H
+ #define NCURSES_CPLUS_INTERNAL_H 1
+ 
+ #include <ncurses_cfg.h>
+ 
++#include <stdlib.h>
++
+ #if USE_RCS_IDS
+ #define MODULE_ID(id) static const char Ident[] = id;
+ #else
+Index: c++/modules
+Prereq:  1.6 
+--- ncurses-5.6/c++/modules	1999-07-31 09:46:54.000000000 +0000
++++ ncurses-5.6-20071201/c++/modules	2006-12-24 00:53:08.000000000 +0000
+@@ -1,7 +1,7 @@
+ # Program modules
+-# $Id: modules,v 1.6 1999/07/31 09:46:54 juergen Exp $
++# $Id: modules,v 1.7 2006/12/24 00:53:08 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -28,7 +28,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
++# Author: Thomas E. Dickey	1995-on
+ #
+ 
+ @ base
+@@ -41,3 +41,5 @@
+ cursesapp	c++		$(srcdir)	$(cursesapp_h)
+ cursesmain	c++		$(srcdir)	$(cursesapp_h)
+ demo		c++		$(srcdir)	$(cursesf_h) $(cursesm_h) $(cursesapp_h)
++
++# vile:makemode
+Index: config.guess
+--- ncurses-5.6/config.guess	2006-07-22 15:57:37.000000000 +0000
++++ ncurses-5.6-20071201/config.guess	2007-07-04 15:02:46.000000000 +0000
+@@ -4,7 +4,7 @@
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+ #   Inc.
+ 
+-timestamp='2006-07-02'
++timestamp='2007-05-17'
+ 
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -161,6 +161,7 @@
+ 	    arm*) machine=arm-unknown ;;
+ 	    sh3el) machine=shl-unknown ;;
+ 	    sh3eb) machine=sh-unknown ;;
++	    sh5el) machine=sh5le-unknown ;;
+ 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ 	esac
+ 	# The Operating System including object format, if it has switched
+@@ -329,7 +330,7 @@
+     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+-    i86pc:SunOS:5.*:*)
++    i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
+ 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     sun4*:SunOS:6*:*)
+@@ -780,7 +781,7 @@
+     i*:CYGWIN*:*)
+ 	echo ${UNAME_MACHINE}-pc-cygwin
+ 	exit ;;
+-    i*:MINGW*:*)
++    *:MINGW*:*)
+ 	echo ${UNAME_MACHINE}-pc-mingw32
+ 	exit ;;
+     i*:windows32*:*)
+@@ -790,12 +791,15 @@
+     i*:PW*:*)
+ 	echo ${UNAME_MACHINE}-pc-pw32
+ 	exit ;;
+-    x86:Interix*:[3456]*)
+-	echo i586-pc-interix${UNAME_RELEASE}
+-	exit ;;
+-    EM64T:Interix*:[3456]*)
+-	echo x86_64-unknown-interix${UNAME_RELEASE}
+-	exit ;;
++    *:Interix*:[3456]*)
++    	case ${UNAME_MACHINE} in
++	    x86) 
++		echo i586-pc-interix${UNAME_RELEASE}
++		exit ;;
++	    EM64T | authenticamd)
++		echo x86_64-unknown-interix${UNAME_RELEASE}
++		exit ;;
++	esac ;;
+     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ 	echo i${UNAME_MACHINE}-pc-mks
+ 	exit ;;
+@@ -950,6 +954,9 @@
+     x86_64:Linux:*:*)
+ 	echo x86_64-unknown-linux-gnu
+ 	exit ;;
++    xtensa:Linux:*:*)
++    	echo xtensa-unknown-linux-gnu
++	exit ;;
+     i*86:Linux:*:*)
+ 	# The BFD linker knows what the default object file format is, so
+ 	# first see if it will tell us. cd to the root directory to prevent
+@@ -1208,6 +1215,15 @@
+     SX-6:SUPER-UX:*:*)
+ 	echo sx6-nec-superux${UNAME_RELEASE}
+ 	exit ;;
++    SX-7:SUPER-UX:*:*)
++	echo sx7-nec-superux${UNAME_RELEASE}
++	exit ;;
++    SX-8:SUPER-UX:*:*)
++	echo sx8-nec-superux${UNAME_RELEASE}
++	exit ;;
++    SX-8R:SUPER-UX:*:*)
++	echo sx8r-nec-superux${UNAME_RELEASE}
++	exit ;;
+     Power*:Rhapsody:*:*)
+ 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ 	exit ;;
+Index: config.sub
+--- ncurses-5.6/config.sub	2006-08-14 16:00:00.000000000 +0000
++++ ncurses-5.6-20071201/config.sub	2007-07-04 15:03:05.000000000 +0000
+@@ -4,7 +4,7 @@
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+ #   Inc.
+ 
+-timestamp='2006-08-14'
++timestamp='2007-06-28'
+ 
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -245,12 +245,12 @@
+ 	| bfin \
+ 	| c4x | clipper \
+ 	| d10v | d30v | dlx | dsp16xx \
+-	| fr30 | frv \
++	| fido | fr30 | frv \
+ 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ 	| i370 | i860 | i960 | ia64 \
+ 	| ip2k | iq2000 \
+ 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+-	| maxq | mb | microblaze | mcore \
++	| maxq | mb | microblaze | mcore | mep \
+ 	| mips | mipsbe | mipseb | mipsel | mipsle \
+ 	| mips16 \
+ 	| mips64 | mips64el \
+@@ -276,6 +276,7 @@
+ 	| pdp10 | pdp11 | pj | pjl \
+ 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ 	| pyramid \
++	| score \
+ 	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ 	| sh64 | sh64le \
+ 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+@@ -323,7 +324,7 @@
+ 	| clipper-* | craynv-* | cydra-* \
+ 	| d10v-* | d30v-* | dlx-* \
+ 	| elxsi-* \
+-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
++	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ 	| h8300-* | h8500-* \
+ 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ 	| i*86-* | i860-* | i960-* | ia64-* \
+@@ -474,8 +475,8 @@
+ 		basic_machine=craynv-cray
+ 		os=-unicosmp
+ 		;;
+-	cr16c)
+-		basic_machine=cr16c-unknown
++	cr16)
++		basic_machine=cr16-unknown
+ 		os=-elf
+ 		;;
+ 	crds | unos)
+@@ -682,6 +683,10 @@
+ 		basic_machine=i386-pc
+ 		os=-mingw32
+ 		;;
++	mingw32ce)
++		basic_machine=arm-unknown
++		os=-mingw32ce
++		;;
+ 	miniframe)
+ 		basic_machine=m68000-convergent
+ 		;;
+@@ -924,6 +929,9 @@
+ 		basic_machine=sh-hitachi
+ 		os=-hms
+ 		;;
++	sh5el)
++		basic_machine=sh5le-unknown
++		;;
+ 	sh64)
+ 		basic_machine=sh64-unknown
+ 		;;
+@@ -1218,7 +1226,7 @@
+ 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+-	      | -skyos* | -haiku* | -rdos* | -toppers*)
++	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ 	# Remember, each alternative MUST END IN *, to match a version number.
+ 		;;
+ 	-qnx*)
+@@ -1370,6 +1378,9 @@
+ # system, and we'll never get to this point.
+ 
+ case $basic_machine in
++        score-*)
++		os=-elf
++		;;
+         spu-*)
+ 		os=-elf
+ 		;;
+@@ -1410,6 +1421,9 @@
+ 	m68*-cisco)
+ 		os=-aout
+ 		;;
++        mep-*)
++		os=-elf
++		;;
+ 	mips*-cisco)
+ 		os=-elf
+ 		;;
+Index: configure
+--- ncurses-5.6/configure	2006-12-17 16:33:38.000000000 +0000
++++ ncurses-5.6-20071201/configure	2007-12-01 20:43:33.000000000 +0000
+@@ -1,5 +1,5 @@
+ #! /bin/sh
+-# From configure.in Revision: 1.383 .
++# From configure.in Revision: 1.429 .
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated by Autoconf 2.52.20061216.
+ #
+@@ -699,6 +699,7 @@
+   --without-ada           suppress check for Ada95, don't build demo
+   --without-progs         suppress build with programs (e.g., tic)
+   --without-curses-h      install curses.h as ncurses.h only
++  --enable-mixed-case     tic should assume mixed-case filenames
+   --with-install-prefix   prefixes actual install-location ($DESTDIR)
+ Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
+   --with-build-cc=XXX     the build C compiler ($BUILD_CC)
+@@ -714,10 +715,12 @@
+   --with-debug            generate debug-libraries (default)
+   --with-profile          generate profile-libraries
+   --with-termlib          generate separate terminfo library
++  --with-ticlib           generate separate tic library
+   --with-gpm              use Alessandro Rubini's GPM library
+   --without-dlsym         do not use dlsym() to load GPM dynamically
+   --with-sysmouse         use sysmouse (FreeBSD console)
+   --enable-rpath          use rpath option when generating shared libraries
++  --disable-relink        relink shared libraries during install
+   --with-shlib-version=X  Specify rel or abi version for shared libs
+ Fine-Tuning Your Configuration:
+   --disable-overwrite     leave out the link to -lcurses
+@@ -729,6 +732,7 @@
+   --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
+   --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
+   --disable-big-core      assume machine has little memory
++  --disable-big-strings   assume compiler has only standard-size strings
+   --enable-termcap        compile in termcap fallback support
+   --with-termpath=XXX     specify list of termcap files (default: /etc/termcap:/usr/share/misc/termcap)
+   --enable-getcap         fast termcap load, no xrefs to terminfo
+@@ -759,7 +763,7 @@
+   --disable-ext-funcs     disable function-extensions
+   --enable-const          compile with extra/non-standard const
+   --enable-no-padding     compile with $NCURSES_NO_PADDING code
+-  --enable-signed-char    compile with SIGWINCH handler
++  --enable-signed-char    compile using signed Boolean's in term.h
+   --enable-sigwinch       compile with SIGWINCH handler
+   --enable-tcap-names     compile with user-definable terminal capabilities
+ Development Code:
+@@ -772,6 +776,7 @@
+   --enable-colorfgbg      compile with $COLORFGBG code
+   --enable-ext-colors     compile for experimental 256-color support
+   --enable-ext-mouse      compile for experimental mouse-encoding
++  --enable-reentrant      compile with experimental reentrant code
+   --enable-safe-sprintf   compile with experimental safe-sprintf code
+   --disable-scroll-hints  compile without scroll-hints code
+   --enable-wgetch-events  compile with experimental wgetch-events code
+@@ -986,7 +991,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+   if test -r "$ac_site_file"; then
+-    { echo "$as_me:989: loading site script $ac_site_file" >&5
++    { echo "$as_me:994: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+     cat "$ac_site_file" >&5
+     . "$ac_site_file"
+@@ -997,7 +1002,7 @@
+   # Some versions of bash will fail to source /dev/null (special
+   # files actually), so we avoid doing that.
+   if test -f "$cache_file"; then
+-    { echo "$as_me:1000: loading cache $cache_file" >&5
++    { echo "$as_me:1005: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+     case $cache_file in
+       [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -1005,7 +1010,7 @@
+     esac
+   fi
+ else
+-  { echo "$as_me:1008: creating cache $cache_file" >&5
++  { echo "$as_me:1013: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+   >$cache_file
+ fi
+@@ -1021,21 +1026,21 @@
+   eval ac_new_val="\$ac_env_${ac_var}_value"
+   case $ac_old_set,$ac_new_set in
+     set,)
+-      { echo "$as_me:1024: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++      { echo "$as_me:1029: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,set)
+-      { echo "$as_me:1028: error: \`$ac_var' was not set in the previous run" >&5
++      { echo "$as_me:1033: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,);;
+     *)
+       if test "x$ac_old_val" != "x$ac_new_val"; then
+-        { echo "$as_me:1034: error: \`$ac_var' has changed since the previous run:" >&5
++        { echo "$as_me:1039: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+-        { echo "$as_me:1036:   former value:  $ac_old_val" >&5
++        { echo "$as_me:1041:   former value:  $ac_old_val" >&5
+ echo "$as_me:   former value:  $ac_old_val" >&2;}
+-        { echo "$as_me:1038:   current value: $ac_new_val" >&5
++        { echo "$as_me:1043:   current value: $ac_new_val" >&5
+ echo "$as_me:   current value: $ac_new_val" >&2;}
+         ac_cache_corrupted=:
+       fi;;
+@@ -1054,9 +1059,9 @@
+   fi
+ done
+ if $ac_cache_corrupted; then
+-  { echo "$as_me:1057: error: changes in the environment can compromise the build" >&5
++  { echo "$as_me:1062: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  { { echo "$as_me:1059: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++  { { echo "$as_me:1064: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1077,10 +1082,10 @@
+ echo "#! $SHELL" >conftest.sh
+ echo  "exit 0"   >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:1080: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:1085: PATH=\".;.\"; conftest.sh") >&5
+   (PATH=".;."; conftest.sh) 2>&5
+   ac_status=$?
+-  echo "$as_me:1083: \$? = $ac_status" >&5
++  echo "$as_me:1088: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   ac_path_separator=';'
+ else
+@@ -1093,7 +1098,7 @@
+ 
+ top_builddir=`pwd`
+ 
+-echo "$as_me:1096: checking for egrep" >&5
++echo "$as_me:1101: checking for egrep" >&5
+ echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+ if test "${ac_cv_prog_egrep+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1103,11 +1108,11 @@
+     else ac_cv_prog_egrep='egrep'
+     fi
+ fi
+-echo "$as_me:1106: result: $ac_cv_prog_egrep" >&5
++echo "$as_me:1111: result: $ac_cv_prog_egrep" >&5
+ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+  EGREP=$ac_cv_prog_egrep
+ 
+-test -z "$EGREP" && { { echo "$as_me:1110: error: No egrep program found" >&5
++test -z "$EGREP" && { { echo "$as_me:1115: error: No egrep program found" >&5
+ echo "$as_me: error: No egrep program found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+@@ -1117,7 +1122,7 @@
+ cf_cv_abi_version=${NCURSES_MAJOR}
+ cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
+ cf_cv_timestamp=`date`
+-echo "$as_me:1120: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
++echo "$as_me:1125: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+ echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
+ 
+ test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
+@@ -1125,7 +1130,7 @@
+ # Check whether --with-rel-version or --without-rel-version was given.
+ if test "${with_rel_version+set}" = set; then
+   withval="$with_rel_version"
+-  { echo "$as_me:1128: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
++  { echo "$as_me:1133: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+ echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
+  cf_cv_rel_version=$withval
+ fi;
+@@ -1138,13 +1143,13 @@
+   [0-9]*) #(vi
+  	;;
+   *)
+-	{ { echo "$as_me:1141: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
++	{ { echo "$as_me:1146: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+ echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
+    { (exit 1); exit 1; }; }
+  	;;
+   esac
+ else
+-  { { echo "$as_me:1147: error: Release major-version value is empty" >&5
++  { { echo "$as_me:1152: error: Release major-version value is empty" >&5
+ echo "$as_me: error: Release major-version value is empty" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1154,13 +1159,13 @@
+   [0-9]*) #(vi
+  	;;
+   *)
+-	{ { echo "$as_me:1157: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
++	{ { echo "$as_me:1162: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+ echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
+    { (exit 1); exit 1; }; }
+  	;;
+   esac
+ else
+-  { { echo "$as_me:1163: error: Release minor-version value is empty" >&5
++  { { echo "$as_me:1168: error: Release minor-version value is empty" >&5
+ echo "$as_me: error: Release minor-version value is empty" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1170,7 +1175,7 @@
+ # Check whether --with-abi-version or --without-abi-version was given.
+ if test "${with_abi_version+set}" = set; then
+   withval="$with_abi_version"
+-  { echo "$as_me:1173: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
++  { echo "$as_me:1178: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+ echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
+  cf_cv_abi_version=$withval
+ fi;
+@@ -1180,13 +1185,13 @@
+   [0-9]*) #(vi
+  	;;
+   *)
+-	{ { echo "$as_me:1183: error: ABI version is not a number: $cf_cv_abi_version" >&5
++	{ { echo "$as_me:1188: error: ABI version is not a number: $cf_cv_abi_version" >&5
+ echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
+    { (exit 1); exit 1; }; }
+  	;;
+   esac
+ else
+-  { { echo "$as_me:1189: error: ABI version value is empty" >&5
++  { { echo "$as_me:1194: error: ABI version value is empty" >&5
+ echo "$as_me: error: ABI version value is empty" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1208,7 +1213,7 @@
+   fi
+ done
+ if test -z "$ac_aux_dir"; then
+-  { { echo "$as_me:1211: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++  { { echo "$as_me:1216: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1218,11 +1223,11 @@
+ 
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+-  { { echo "$as_me:1221: error: cannot run $ac_config_sub" >&5
++  { { echo "$as_me:1226: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+-echo "$as_me:1225: checking build system type" >&5
++echo "$as_me:1230: checking build system type" >&5
+ echo $ECHO_N "checking build system type... $ECHO_C" >&6
+ if test "${ac_cv_build+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1231,23 +1236,23 @@
+ test -z "$ac_cv_build_alias" &&
+   ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+-  { { echo "$as_me:1234: error: cannot guess build type; you must specify one" >&5
++  { { echo "$as_me:1239: error: cannot guess build type; you must specify one" >&5
+ echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+    { (exit 1); exit 1; }; }
+ ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+-  { { echo "$as_me:1238: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++  { { echo "$as_me:1243: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:1243: result: $ac_cv_build" >&5
++echo "$as_me:1248: result: $ac_cv_build" >&5
+ echo "${ECHO_T}$ac_cv_build" >&6
+ build=$ac_cv_build
+ build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ 
+-echo "$as_me:1250: checking host system type" >&5
++echo "$as_me:1255: checking host system type" >&5
+ echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ if test "${ac_cv_host+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1256,12 +1261,12 @@
+ test -z "$ac_cv_host_alias" &&
+   ac_cv_host_alias=$ac_cv_build_alias
+ ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+-  { { echo "$as_me:1259: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++  { { echo "$as_me:1264: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:1264: result: $ac_cv_host" >&5
++echo "$as_me:1269: result: $ac_cv_host" >&5
+ echo "${ECHO_T}$ac_cv_host" >&6
+ host=$ac_cv_host
+ host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1269,7 +1274,7 @@
+ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ 
+ if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+-	echo "$as_me:1272: checking target system type" >&5
++	echo "$as_me:1277: checking target system type" >&5
+ echo $ECHO_N "checking target system type... $ECHO_C" >&6
+ if test "${ac_cv_target+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1278,12 +1283,12 @@
+ test "x$ac_cv_target_alias" = "x" &&
+   ac_cv_target_alias=$ac_cv_host_alias
+ ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+-  { { echo "$as_me:1281: error: $ac_config_sub $ac_cv_target_alias failed" >&5
++  { { echo "$as_me:1286: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:1286: result: $ac_cv_target" >&5
++echo "$as_me:1291: result: $ac_cv_target" >&5
+ echo "${ECHO_T}$ac_cv_target" >&6
+ target=$ac_cv_target
+ target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1314,13 +1319,13 @@
+ fi
+ 
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1317: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1322: result: Configuring for $cf_cv_system_name" >&5
+ echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
+ 
+ if test ".$system_name" != ".$cf_cv_system_name" ; then
+-	echo "$as_me:1321: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++	echo "$as_me:1326: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+-	{ { echo "$as_me:1323: error: \"Please remove config.cache and try again.\"" >&5
++	{ { echo "$as_me:1328: error: \"Please remove config.cache and try again.\"" >&5
+ echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1328,7 +1333,7 @@
+ # Check whether --with-system-type or --without-system-type was given.
+ if test "${with_system_type+set}" = set; then
+   withval="$with_system_type"
+-  { echo "$as_me:1331: WARNING: overriding system type to $withval" >&5
++  { echo "$as_me:1336: WARNING: overriding system type to $withval" >&5
+ echo "$as_me: WARNING: overriding system type to $withval" >&2;}
+  cf_cv_system_name=$withval
+ fi;
+@@ -1338,7 +1343,7 @@
+ 
+ ###	Default install-location
+ 
+-echo "$as_me:1341: checking for prefix" >&5
++echo "$as_me:1346: checking for prefix" >&5
+ echo $ECHO_N "checking for prefix... $ECHO_C" >&6
+ if test "x$prefix" = "xNONE" ; then
+ 	case "$cf_cv_system_name" in
+@@ -1350,11 +1355,11 @@
+ 		;;
+ 	esac
+ fi
+-echo "$as_me:1353: result: $prefix" >&5
++echo "$as_me:1358: result: $prefix" >&5
+ echo "${ECHO_T}$prefix" >&6
+ 
+ if test "x$prefix" = "xNONE" ; then
+-echo "$as_me:1357: checking for default include-directory" >&5
++echo "$as_me:1362: checking for default include-directory" >&5
+ echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
+ test -n "$verbose" && echo 1>&6
+ for cf_symbol in \
+@@ -1377,7 +1382,7 @@
+ 	fi
+ 	test -n "$verbose"  && echo "	tested $cf_dir" 1>&6
+ done
+-echo "$as_me:1380: result: $includedir" >&5
++echo "$as_me:1385: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ fi
+ 
+@@ -1391,7 +1396,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1394: checking for $ac_word" >&5
++echo "$as_me:1399: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1406,7 +1411,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1409: found $ac_dir/$ac_word" >&5
++echo "$as_me:1414: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1414,10 +1419,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1417: result: $CC" >&5
++  echo "$as_me:1422: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1420: result: no" >&5
++  echo "$as_me:1425: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1426,7 +1431,7 @@
+   ac_ct_CC=$CC
+   # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo "$as_me:1429: checking for $ac_word" >&5
++echo "$as_me:1434: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1441,7 +1446,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1444: found $ac_dir/$ac_word" >&5
++echo "$as_me:1449: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1449,10 +1454,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1452: result: $ac_ct_CC" >&5
++  echo "$as_me:1457: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1455: result: no" >&5
++  echo "$as_me:1460: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1465,7 +1470,7 @@
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1468: checking for $ac_word" >&5
++echo "$as_me:1473: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1480,7 +1485,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1483: found $ac_dir/$ac_word" >&5
++echo "$as_me:1488: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1488,10 +1493,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1491: result: $CC" >&5
++  echo "$as_me:1496: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1494: result: no" >&5
++  echo "$as_me:1499: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1500,7 +1505,7 @@
+   ac_ct_CC=$CC
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1503: checking for $ac_word" >&5
++echo "$as_me:1508: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1515,7 +1520,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1518: found $ac_dir/$ac_word" >&5
++echo "$as_me:1523: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1523,10 +1528,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1526: result: $ac_ct_CC" >&5
++  echo "$as_me:1531: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1529: result: no" >&5
++  echo "$as_me:1534: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1539,7 +1544,7 @@
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1542: checking for $ac_word" >&5
++echo "$as_me:1547: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1559,7 +1564,7 @@
+   continue
+ fi
+ ac_cv_prog_CC="cc"
+-echo "$as_me:1562: found $ac_dir/$ac_word" >&5
++echo "$as_me:1567: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1581,10 +1586,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1584: result: $CC" >&5
++  echo "$as_me:1589: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1587: result: no" >&5
++  echo "$as_me:1592: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1595,7 +1600,7 @@
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1598: checking for $ac_word" >&5
++echo "$as_me:1603: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1610,7 +1615,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1613: found $ac_dir/$ac_word" >&5
++echo "$as_me:1618: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1618,10 +1623,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1621: result: $CC" >&5
++  echo "$as_me:1626: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1624: result: no" >&5
++  echo "$as_me:1629: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1634,7 +1639,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1637: checking for $ac_word" >&5
++echo "$as_me:1642: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1649,7 +1654,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1652: found $ac_dir/$ac_word" >&5
++echo "$as_me:1657: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1657,10 +1662,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1660: result: $ac_ct_CC" >&5
++  echo "$as_me:1665: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1663: result: no" >&5
++  echo "$as_me:1668: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1672,32 +1677,32 @@
+ 
+ fi
+ 
+-test -z "$CC" && { { echo "$as_me:1675: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1680: error: no acceptable cc found in \$PATH" >&5
+ echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ # Provide some information about the compiler.
+-echo "$as_me:1680:" \
++echo "$as_me:1685:" \
+      "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1683: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1688: \"$ac_compiler --version </dev/null >&5\"") >&5
+   (eval $ac_compiler --version </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1686: \$? = $ac_status" >&5
++  echo "$as_me:1691: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:1688: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1693: \"$ac_compiler -v </dev/null >&5\"") >&5
+   (eval $ac_compiler -v </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1691: \$? = $ac_status" >&5
++  echo "$as_me:1696: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:1693: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1698: \"$ac_compiler -V </dev/null >&5\"") >&5
+   (eval $ac_compiler -V </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1696: \$? = $ac_status" >&5
++  echo "$as_me:1701: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1700 "configure"
++#line 1705 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1713,13 +1718,13 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1716: checking for C compiler default output" >&5
++echo "$as_me:1721: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1719: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1724: \"$ac_link_default\"") >&5
+   (eval $ac_link_default) 2>&5
+   ac_status=$?
+-  echo "$as_me:1722: \$? = $ac_status" >&5
++  echo "$as_me:1727: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # Find the output, starting from the most likely.  This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+@@ -1742,34 +1747,34 @@
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1745: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1750: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+    { (exit 77); exit 77; }; }
+ fi
+ 
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1751: result: $ac_file" >&5
++echo "$as_me:1756: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+ 
+ # Check the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1756: checking whether the C compiler works" >&5
++echo "$as_me:1761: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+   if { ac_try='./$ac_file'
+-  { (eval echo "$as_me:1762: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1767: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1765: \$? = $ac_status" >&5
++  echo "$as_me:1770: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+     cross_compiling=no
+   else
+     if test "$cross_compiling" = maybe; then
+ 	cross_compiling=yes
+     else
+-	{ { echo "$as_me:1772: error: cannot run C compiled programs.
++	{ { echo "$as_me:1777: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1777,24 +1782,24 @@
+     fi
+   fi
+ fi
+-echo "$as_me:1780: result: yes" >&5
++echo "$as_me:1785: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1787: checking whether we are cross compiling" >&5
++echo "$as_me:1792: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1789: result: $cross_compiling" >&5
++echo "$as_me:1794: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+ 
+-echo "$as_me:1792: checking for executable suffix" >&5
++echo "$as_me:1797: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1794: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1799: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:1797: \$? = $ac_status" >&5
++  echo "$as_me:1802: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+@@ -1810,25 +1815,25 @@
+   esac
+ done
+ else
+-  { { echo "$as_me:1813: error: cannot compute EXEEXT: cannot compile and link" >&5
++  { { echo "$as_me:1818: error: cannot compute EXEEXT: cannot compile and link" >&5
+ echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1819: result: $ac_cv_exeext" >&5
++echo "$as_me:1824: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+ 
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1825: checking for object suffix" >&5
++echo "$as_me:1830: checking for object suffix" >&5
+ echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1831 "configure"
++#line 1836 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1840,10 +1845,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1843: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1848: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1846: \$? = $ac_status" >&5
++  echo "$as_me:1851: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+   case $ac_file in
+@@ -1855,24 +1860,24 @@
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1858: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1863: error: cannot compute OBJEXT: cannot compile" >&5
+ echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1865: result: $ac_cv_objext" >&5
++echo "$as_me:1870: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1869: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1874: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1875 "configure"
++#line 1880 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1887,16 +1892,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1890: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1895: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1893: \$? = $ac_status" >&5
++  echo "$as_me:1898: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1896: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1901: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1899: \$? = $ac_status" >&5
++  echo "$as_me:1904: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_compiler_gnu=yes
+ else
+@@ -1908,19 +1913,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+ 
+ fi
+-echo "$as_me:1911: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1916: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1917: checking whether $CC accepts -g" >&5
++echo "$as_me:1922: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1923 "configure"
++#line 1928 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1932,16 +1937,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1935: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1940: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1938: \$? = $ac_status" >&5
++  echo "$as_me:1943: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1941: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1946: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1944: \$? = $ac_status" >&5
++  echo "$as_me:1949: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_g=yes
+ else
+@@ -1951,7 +1956,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1954: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1959: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+   CFLAGS=$ac_save_CFLAGS
+@@ -1978,16 +1983,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1981: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1986: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1984: \$? = $ac_status" >&5
++  echo "$as_me:1989: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1987: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1992: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1990: \$? = $ac_status" >&5
++  echo "$as_me:1995: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   for ac_declaration in \
+    ''\
+@@ -1999,7 +2004,7 @@
+    'void exit (int);'
+ do
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2002 "configure"
++#line 2007 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -2012,16 +2017,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2015: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2020: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2018: \$? = $ac_status" >&5
++  echo "$as_me:2023: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2021: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2026: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2024: \$? = $ac_status" >&5
++  echo "$as_me:2029: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -2031,7 +2036,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2034 "configure"
++#line 2039 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -2043,16 +2048,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2046: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2051: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2049: \$? = $ac_status" >&5
++  echo "$as_me:2054: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2052: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2057: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2055: \$? = $ac_status" >&5
++  echo "$as_me:2060: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -2082,11 +2087,11 @@
+ 
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+-	echo "$as_me:2085: checking version of $CC" >&5
++	echo "$as_me:2090: checking version of $CC" >&5
+ echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
+ 	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
+-	echo "$as_me:2089: result: $GCC_VERSION" >&5
++	echo "$as_me:2094: result: $GCC_VERSION" >&5
+ echo "${ECHO_T}$GCC_VERSION" >&6
+ fi
+ 
+@@ -2096,7 +2101,7 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:2099: checking how to run the C preprocessor" >&5
++echo "$as_me:2104: checking how to run the C preprocessor" >&5
+ echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+@@ -2117,18 +2122,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2120 "configure"
++#line 2125 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2125: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2130: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:2131: \$? = $ac_status" >&5
++  echo "$as_me:2136: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2151,17 +2156,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2154 "configure"
++#line 2159 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2158: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2163: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:2164: \$? = $ac_status" >&5
++  echo "$as_me:2169: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2198,7 +2203,7 @@
+ else
+   ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:2201: result: $CPP" >&5
++echo "$as_me:2206: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -2208,18 +2213,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2211 "configure"
++#line 2216 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2216: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2221: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:2222: \$? = $ac_status" >&5
++  echo "$as_me:2227: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2242,17 +2247,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2245 "configure"
++#line 2250 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2249: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2254: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:2255: \$? = $ac_status" >&5
++  echo "$as_me:2260: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2280,7 +2285,7 @@
+ if $ac_preproc_ok; then
+   :
+ else
+-  { { echo "$as_me:2283: error: C preprocessor \"$CPP\" fails sanity check" >&5
++  { { echo "$as_me:2288: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -2293,14 +2298,14 @@
+ ac_main_return=return
+ 
+ if test $ac_cv_c_compiler_gnu = yes; then
+-    echo "$as_me:2296: checking whether $CC needs -traditional" >&5
++    echo "$as_me:2301: checking whether $CC needs -traditional" >&5
+ echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+ if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+     ac_pattern="Autoconf.*'x'"
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2303 "configure"
++#line 2308 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ int Autoconf = TIOCGETP;
+@@ -2315,7 +2320,7 @@
+ 
+   if test $ac_cv_prog_gcc_traditional = no; then
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 2318 "configure"
++#line 2323 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ int Autoconf = TCGETA;
+@@ -2328,14 +2333,14 @@
+ 
+   fi
+ fi
+-echo "$as_me:2331: result: $ac_cv_prog_gcc_traditional" >&5
++echo "$as_me:2336: result: $ac_cv_prog_gcc_traditional" >&5
+ echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+   if test $ac_cv_prog_gcc_traditional = yes; then
+     CC="$CC -traditional"
+   fi
+ fi
+ 
+-echo "$as_me:2338: checking whether $CC understands -c and -o together" >&5
++echo "$as_me:2343: checking whether $CC understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CC_c_o+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2351,15 +2356,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:2354: \"$ac_try\"") >&5
++if { (eval echo "$as_me:2359: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2357: \$? = $ac_status" >&5
++  echo "$as_me:2362: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-  test -f conftest2.$ac_objext && { (eval echo "$as_me:2359: \"$ac_try\"") >&5
++  test -f conftest2.$ac_objext && { (eval echo "$as_me:2364: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2362: \$? = $ac_status" >&5
++  echo "$as_me:2367: \$? = $ac_status" >&5
+   (exit $ac_status); };
+ then
+   eval cf_cv_prog_CC_c_o=yes
+@@ -2370,19 +2375,19 @@
+ 
+ fi
+ if test $cf_cv_prog_CC_c_o = yes; then
+-  echo "$as_me:2373: result: yes" >&5
++  echo "$as_me:2378: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-  echo "$as_me:2376: result: no" >&5
++  echo "$as_me:2381: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:2380: checking for POSIXized ISC" >&5
++echo "$as_me:2385: checking for POSIXized ISC" >&5
+ echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
+ if test -d /etc/conf/kconfig.d &&
+    grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+ then
+-  echo "$as_me:2385: result: yes" >&5
++  echo "$as_me:2390: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+   ISC=yes # If later tests want to check for ISC.
+ 
+@@ -2396,12 +2401,12 @@
+     CC="$CC -Xp"
+   fi
+ else
+-  echo "$as_me:2399: result: no" >&5
++  echo "$as_me:2404: result: no" >&5
+ echo "${ECHO_T}no" >&6
+   ISC=
+ fi
+ 
+-echo "$as_me:2404: checking for ${CC-cc} option to accept ANSI C" >&5
++echo "$as_me:2409: checking for ${CC-cc} option to accept ANSI C" >&5
+ echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
+ if test "${cf_cv_ansi_cc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2495,7 +2500,7 @@
+ fi
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 2498 "configure"
++#line 2503 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef CC_HAS_PROTOS
+@@ -2516,16 +2521,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2519: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2524: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2522: \$? = $ac_status" >&5
++  echo "$as_me:2527: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2525: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2530: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2528: \$? = $ac_status" >&5
++  echo "$as_me:2533: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ansi_cc="$cf_arg"; break
+ else
+@@ -2538,7 +2543,7 @@
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ 
+ fi
+-echo "$as_me:2541: result: $cf_cv_ansi_cc" >&5
++echo "$as_me:2546: result: $cf_cv_ansi_cc" >&5
+ echo "${ECHO_T}$cf_cv_ansi_cc" >&6
+ 
+ if test "$cf_cv_ansi_cc" != "no"; then
+@@ -2621,7 +2626,7 @@
+ fi
+ 
+ if test "$cf_cv_ansi_cc" = "no"; then
+-	{ { echo "$as_me:2624: error: Your compiler does not appear to recognize prototypes.
++	{ { echo "$as_me:2629: error: Your compiler does not appear to recognize prototypes.
+ You have the following choices:
+ 	a. adjust your compiler options
+ 	b. get an up-to-date compiler
+@@ -2661,7 +2666,7 @@
+ *) LDPATH=$PATH:/sbin:/usr/sbin
+   # Extract the first word of "ldconfig", so it can be a program name with args.
+ set dummy ldconfig; ac_word=$2
+-echo "$as_me:2664: checking for $ac_word" >&5
++echo "$as_me:2669: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_LDCONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2678,7 +2683,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:2681: found $ac_dir/$ac_word" >&5
++   echo "$as_me:2686: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -2689,10 +2694,10 @@
+ LDCONFIG=$ac_cv_path_LDCONFIG
+ 
+ if test -n "$LDCONFIG"; then
+-  echo "$as_me:2692: result: $LDCONFIG" >&5
++  echo "$as_me:2697: result: $LDCONFIG" >&5
+ echo "${ECHO_T}$LDCONFIG" >&6
+ else
+-  echo "$as_me:2695: result: no" >&5
++  echo "$as_me:2700: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2700,7 +2705,7 @@
+ esac
+ fi
+ 
+-echo "$as_me:2703: checking if you want to ensure bool is consistent with C++" >&5
++echo "$as_me:2708: checking if you want to ensure bool is consistent with C++" >&5
+ echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
+ 
+ # Check whether --with-cxx or --without-cxx was given.
+@@ -2710,7 +2715,7 @@
+ else
+   cf_with_cxx=yes
+ fi;
+-echo "$as_me:2713: result: $cf_with_cxx" >&5
++echo "$as_me:2718: result: $cf_with_cxx" >&5
+ echo "${ECHO_T}$cf_with_cxx" >&6
+ if test "X$cf_with_cxx" = Xno ; then
+ 	CXX=""
+@@ -2728,7 +2733,7 @@
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:2731: checking for $ac_word" >&5
++echo "$as_me:2736: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CXX+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2743,7 +2748,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+-echo "$as_me:2746: found $ac_dir/$ac_word" >&5
++echo "$as_me:2751: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2751,10 +2756,10 @@
+ fi
+ CXX=$ac_cv_prog_CXX
+ if test -n "$CXX"; then
+-  echo "$as_me:2754: result: $CXX" >&5
++  echo "$as_me:2759: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+-  echo "$as_me:2757: result: no" >&5
++  echo "$as_me:2762: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2767,7 +2772,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2770: checking for $ac_word" >&5
++echo "$as_me:2775: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2782,7 +2787,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+-echo "$as_me:2785: found $ac_dir/$ac_word" >&5
++echo "$as_me:2790: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2790,10 +2795,10 @@
+ fi
+ ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+ if test -n "$ac_ct_CXX"; then
+-  echo "$as_me:2793: result: $ac_ct_CXX" >&5
++  echo "$as_me:2798: result: $ac_ct_CXX" >&5
+ echo "${ECHO_T}$ac_ct_CXX" >&6
+ else
+-  echo "$as_me:2796: result: no" >&5
++  echo "$as_me:2801: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2805,32 +2810,32 @@
+ fi
+ 
+ # Provide some information about the compiler.
+-echo "$as_me:2808:" \
++echo "$as_me:2813:" \
+      "checking for C++ compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:2811: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2816: \"$ac_compiler --version </dev/null >&5\"") >&5
+   (eval $ac_compiler --version </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:2814: \$? = $ac_status" >&5
++  echo "$as_me:2819: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:2816: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2821: \"$ac_compiler -v </dev/null >&5\"") >&5
+   (eval $ac_compiler -v </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:2819: \$? = $ac_status" >&5
++  echo "$as_me:2824: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:2821: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2826: \"$ac_compiler -V </dev/null >&5\"") >&5
+   (eval $ac_compiler -V </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:2824: \$? = $ac_status" >&5
++  echo "$as_me:2829: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 
+-echo "$as_me:2827: checking whether we are using the GNU C++ compiler" >&5
++echo "$as_me:2832: checking whether we are using the GNU C++ compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2833 "configure"
++#line 2838 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -2845,16 +2850,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2848: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2853: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2851: \$? = $ac_status" >&5
++  echo "$as_me:2856: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2854: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2859: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2857: \$? = $ac_status" >&5
++  echo "$as_me:2862: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_compiler_gnu=yes
+ else
+@@ -2866,19 +2871,19 @@
+ ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+ 
+ fi
+-echo "$as_me:2869: result: $ac_cv_cxx_compiler_gnu" >&5
++echo "$as_me:2874: result: $ac_cv_cxx_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+ GXX=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CXXFLAGS=${CXXFLAGS+set}
+ ac_save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="-g"
+-echo "$as_me:2875: checking whether $CXX accepts -g" >&5
++echo "$as_me:2880: checking whether $CXX accepts -g" >&5
+ echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cxx_g+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2881 "configure"
++#line 2886 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -2890,16 +2895,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2893: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2898: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2896: \$? = $ac_status" >&5
++  echo "$as_me:2901: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2899: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2904: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2902: \$? = $ac_status" >&5
++  echo "$as_me:2907: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cxx_g=yes
+ else
+@@ -2909,7 +2914,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:2912: result: $ac_cv_prog_cxx_g" >&5
++echo "$as_me:2917: result: $ac_cv_prog_cxx_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+ if test "$ac_test_CXXFLAGS" = set; then
+   CXXFLAGS=$ac_save_CXXFLAGS
+@@ -2936,7 +2941,7 @@
+    'void exit (int);'
+ do
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2939 "configure"
++#line 2944 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -2949,16 +2954,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2952: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2957: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2955: \$? = $ac_status" >&5
++  echo "$as_me:2960: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2958: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2963: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2961: \$? = $ac_status" >&5
++  echo "$as_me:2966: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -2968,7 +2973,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2971 "configure"
++#line 2976 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -2980,16 +2985,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2983: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2988: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2986: \$? = $ac_status" >&5
++  echo "$as_me:2991: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2989: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2994: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2992: \$? = $ac_status" >&5
++  echo "$as_me:2997: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -3016,7 +3021,7 @@
+ 	if test "$CXX" = "g++" ; then
+ 		# Extract the first word of "g++", so it can be a program name with args.
+ set dummy g++; ac_word=$2
+-echo "$as_me:3019: checking for $ac_word" >&5
++echo "$as_me:3024: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_CXX+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3033,7 +3038,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_CXX="$ac_dir/$ac_word"
+-   echo "$as_me:3036: found $ac_dir/$ac_word" >&5
++   echo "$as_me:3041: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -3044,16 +3049,16 @@
+ CXX=$ac_cv_path_CXX
+ 
+ if test -n "$CXX"; then
+-  echo "$as_me:3047: result: $CXX" >&5
++  echo "$as_me:3052: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+-  echo "$as_me:3050: result: no" >&5
++  echo "$as_me:3055: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+ 	fi
+ 	if test "$CXX" = "g++" ; then
+-		{ echo "$as_me:3056: WARNING: ignoring hardcoded g++" >&5
++		{ echo "$as_me:3061: WARNING: ignoring hardcoded g++" >&5
+ echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
+ 		cf_with_cxx=no; CXX=""; GXX="";
+ 	fi
+@@ -3061,11 +3066,11 @@
+ 
+ GXX_VERSION=none
+ if test "$GXX" = yes; then
+-	echo "$as_me:3064: checking version of g++" >&5
++	echo "$as_me:3069: checking version of g++" >&5
+ echo $ECHO_N "checking version of g++... $ECHO_C" >&6
+ 	GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ 	test -z "$GXX_VERSION" && GXX_VERSION=unknown
+-	echo "$as_me:3068: result: $GXX_VERSION" >&5
++	echo "$as_me:3073: result: $GXX_VERSION" >&5
+ echo "${ECHO_T}$GXX_VERSION" >&6
+ fi
+ 
+@@ -3073,12 +3078,12 @@
+ 1*|2.[0-6]*)
+ 	# GXX=""; CXX=""; ac_cv_prog_gxx=no
+ 	# cf_cxx_library=no
+-	{ echo "$as_me:3076: WARNING: templates do not work" >&5
++	{ echo "$as_me:3081: WARNING: templates do not work" >&5
+ echo "$as_me: WARNING: templates do not work" >&2;}
+ 	;;
+ esac
+ 
+-echo "$as_me:3081: checking if you want to build C++ binding and demo" >&5
++echo "$as_me:3086: checking if you want to build C++ binding and demo" >&5
+ echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
+ 
+ # Check whether --with-cxx-binding or --without-cxx-binding was given.
+@@ -3088,10 +3093,10 @@
+ else
+   cf_with_cxx_binding=$cf_with_cxx
+ fi;
+-echo "$as_me:3091: result: $cf_with_cxx_binding" >&5
++echo "$as_me:3096: result: $cf_with_cxx_binding" >&5
+ echo "${ECHO_T}$cf_with_cxx_binding" >&6
+ 
+-echo "$as_me:3094: checking if you want to build with Ada95" >&5
++echo "$as_me:3099: checking if you want to build with Ada95" >&5
+ echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
+ 
+ # Check whether --with-ada or --without-ada was given.
+@@ -3101,10 +3106,10 @@
+ else
+   cf_with_ada=yes
+ fi;
+-echo "$as_me:3104: result: $cf_with_ada" >&5
++echo "$as_me:3109: result: $cf_with_ada" >&5
+ echo "${ECHO_T}$cf_with_ada" >&6
+ 
+-echo "$as_me:3107: checking if you want to build programs such as tic" >&5
++echo "$as_me:3112: checking if you want to build programs such as tic" >&5
+ echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
+ 
+ # Check whether --with-progs or --without-progs was given.
+@@ -3114,10 +3119,10 @@
+ else
+   cf_with_progs=yes
+ fi;
+-echo "$as_me:3117: result: $cf_with_progs" >&5
++echo "$as_me:3122: result: $cf_with_progs" >&5
+ echo "${ECHO_T}$cf_with_progs" >&6
+ 
+-echo "$as_me:3120: checking if you wish to install curses.h" >&5
++echo "$as_me:3125: checking if you wish to install curses.h" >&5
+ echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
+ 
+ # Check whether --with-curses-h or --without-curses-h was given.
+@@ -3127,7 +3132,7 @@
+ else
+   with_curses_h=yes
+ fi;
+-echo "$as_me:3130: result: $with_curses_h" >&5
++echo "$as_me:3135: result: $with_curses_h" >&5
+ echo "${ECHO_T}$with_curses_h" >&6
+ 
+ modules_to_build="ncurses"
+@@ -3153,7 +3158,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3156: checking for $ac_word" >&5
++echo "$as_me:3161: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AWK+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3168,7 +3173,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:3171: found $ac_dir/$ac_word" >&5
++echo "$as_me:3176: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3176,21 +3181,21 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+-  echo "$as_me:3179: result: $AWK" >&5
++  echo "$as_me:3184: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+-  echo "$as_me:3182: result: no" >&5
++  echo "$as_me:3187: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+   test -n "$AWK" && break
+ done
+ 
+-test -z "$AWK" && { { echo "$as_me:3189: error: No awk program found" >&5
++test -z "$AWK" && { { echo "$as_me:3194: error: No awk program found" >&5
+ echo "$as_me: error: No awk program found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+-echo "$as_me:3193: checking for egrep" >&5
++echo "$as_me:3198: checking for egrep" >&5
+ echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+ if test "${ac_cv_prog_egrep+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3200,11 +3205,11 @@
+     else ac_cv_prog_egrep='egrep'
+     fi
+ fi
+-echo "$as_me:3203: result: $ac_cv_prog_egrep" >&5
++echo "$as_me:3208: result: $ac_cv_prog_egrep" >&5
+ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+  EGREP=$ac_cv_prog_egrep
+ 
+-test -z "$EGREP" && { { echo "$as_me:3207: error: No egrep program found" >&5
++test -z "$EGREP" && { { echo "$as_me:3212: error: No egrep program found" >&5
+ echo "$as_me: error: No egrep program found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+@@ -3220,7 +3225,7 @@
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:3223: checking for a BSD compatible install" >&5
++echo "$as_me:3228: checking for a BSD compatible install" >&5
+ echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+@@ -3269,7 +3274,7 @@
+     INSTALL=$ac_install_sh
+   fi
+ fi
+-echo "$as_me:3272: result: $INSTALL" >&5
++echo "$as_me:3277: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+ 
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -3294,7 +3299,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3297: checking for $ac_word" >&5
++echo "$as_me:3302: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LINT+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3309,7 +3314,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LINT="$ac_prog"
+-echo "$as_me:3312: found $ac_dir/$ac_word" >&5
++echo "$as_me:3317: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3317,57 +3322,91 @@
+ fi
+ LINT=$ac_cv_prog_LINT
+ if test -n "$LINT"; then
+-  echo "$as_me:3320: result: $LINT" >&5
++  echo "$as_me:3325: result: $LINT" >&5
+ echo "${ECHO_T}$LINT" >&6
+ else
+-  echo "$as_me:3323: result: no" >&5
++  echo "$as_me:3328: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+   test -n "$LINT" && break
+ done
+ 
+-echo "$as_me:3330: checking whether ln -s works" >&5
++echo "$as_me:3335: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+ LN_S=$as_ln_s
+ if test "$LN_S" = "ln -s"; then
+-  echo "$as_me:3334: result: yes" >&5
++  echo "$as_me:3339: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-  echo "$as_me:3337: result: no, using $LN_S" >&5
++  echo "$as_me:3342: result: no, using $LN_S" >&5
+ echo "${ECHO_T}no, using $LN_S" >&6
+ fi
+ 
+-echo "$as_me:3341: checking whether ${MAKE-make} sets \${MAKE}" >&5
+-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
++echo "$as_me:3346: checking for long file names" >&5
++echo $ECHO_N "checking for long file names... $ECHO_C" >&6
++if test "${ac_cv_sys_long_file_names+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  cat >conftest.make <<\EOF
+-all:
+-	@echo 'ac_maketemp="${MAKE}"'
+-EOF
+-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+-if test -n "$ac_maketemp"; then
+-  eval ac_cv_prog_make_${ac_make}_set=yes
++  ac_cv_sys_long_file_names=yes
++# Test for long file names in all the places we know might matter:
++#      .		the current directory, where building will happen
++#      $prefix/lib	where we will be installing things
++#      $exec_prefix/lib	likewise
++# eval it to expand exec_prefix.
++#      $TMPDIR		if set, where it might want to write temporary files
++# if $TMPDIR is not set:
++#      /tmp		where it might want to write temporary files
++#      /var/tmp		likewise
++#      /usr/tmp		likewise
++if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
++  ac_tmpdirs=$TMPDIR
+ else
+-  eval ac_cv_prog_make_${ac_make}_set=no
++  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
+ fi
+-rm -f conftest.make
++for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
++  test -d $ac_dir || continue
++  test -w $ac_dir || continue # It is less confusing to not echo anything here.
++  ac_xdir=$ac_dir/cf$$
++  (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue
++  ac_tf1=$ac_xdir/conftest9012345
++  ac_tf2=$ac_xdir/conftest9012346
++  (echo 1 >$ac_tf1) 2>/dev/null
++  (echo 2 >$ac_tf2) 2>/dev/null
++  ac_val=`cat $ac_tf1 2>/dev/null`
++  if test ! -f $ac_tf1 || test "$ac_val" != 1; then
++    ac_cv_sys_long_file_names=no
++    rm -rf $ac_xdir 2>/dev/null
++    break
++  fi
++  rm -rf $ac_xdir 2>/dev/null
++done
+ fi
+-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$as_me:3361: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-  SET_MAKE=
+-else
+-  echo "$as_me:3365: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-  SET_MAKE="MAKE=${MAKE-make}"
++echo "$as_me:3385: result: $ac_cv_sys_long_file_names" >&5
++echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
++if test $ac_cv_sys_long_file_names = yes; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_LONG_FILE_NAMES 1
++EOF
++
+ fi
+ 
+-echo "$as_me:3370: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:3395: checking if we should assume mixed-case filenames" >&5
++echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
++
++# Check whether --enable-mixed-case or --disable-mixed-case was given.
++if test "${enable_mixed_case+set}" = set; then
++  enableval="$enable_mixed_case"
++  enable_mixedcase=$enableval
++else
++  enable_mixedcase=auto
++fi;
++echo "$as_me:3405: result: $enable_mixedcase" >&5
++echo "${ECHO_T}$enable_mixedcase" >&6
++if test "$enable_mixedcase" = "auto" ; then
++
++echo "$as_me:3409: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3394,15 +3433,55 @@
+ fi
+ 
+ fi
+-echo "$as_me:3397: result: $cf_cv_mixedcase" >&5
++echo "$as_me:3436: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+ test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+ 
++else
++    cf_cv_mixedcase=$enable_mixedcase
++    if test "$enable_mixedcase" = "yes" ; then
++        cat >>confdefs.h <<\EOF
++#define MIXEDCASE_FILENAMES 1
++EOF
++
++    fi
++fi
++
++# do this after mixed-case option (tags/TAGS is not as important as tic).
++echo "$as_me:3453: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
++if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.make <<\EOF
++all:
++	@echo 'ac_maketemp="${MAKE}"'
++EOF
++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
++if test -n "$ac_maketemp"; then
++  eval ac_cv_prog_make_${ac_make}_set=yes
++else
++  eval ac_cv_prog_make_${ac_make}_set=no
++fi
++rm -f conftest.make
++fi
++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
++  echo "$as_me:3473: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++  SET_MAKE=
++else
++  echo "$as_me:3477: result: no" >&5
++echo "${ECHO_T}no" >&6
++  SET_MAKE="MAKE=${MAKE-make}"
++fi
++
+ # Extract the first word of "ctags", so it can be a program name with args.
+ set dummy ctags; ac_word=$2
+-echo "$as_me:3405: checking for $ac_word" >&5
++echo "$as_me:3484: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3417,7 +3496,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:3420: found $ac_dir/$ac_word" >&5
++echo "$as_me:3499: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3426,17 +3505,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+-  echo "$as_me:3429: result: $MAKE_LOWER_TAGS" >&5
++  echo "$as_me:3508: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+-  echo "$as_me:3432: result: no" >&5
++  echo "$as_me:3511: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+ if test "$cf_cv_mixedcase" = yes ; then
+ 	# Extract the first word of "etags", so it can be a program name with args.
+ set dummy etags; ac_word=$2
+-echo "$as_me:3439: checking for $ac_word" >&5
++echo "$as_me:3518: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3451,7 +3530,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:3454: found $ac_dir/$ac_word" >&5
++echo "$as_me:3533: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3460,10 +3539,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+-  echo "$as_me:3463: result: $MAKE_UPPER_TAGS" >&5
++  echo "$as_me:3542: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+-  echo "$as_me:3466: result: no" >&5
++  echo "$as_me:3545: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3483,7 +3562,7 @@
+ 	MAKE_LOWER_TAGS="#"
+ fi
+ 
+-echo "$as_me:3486: checking for makeflags variable" >&5
++echo "$as_me:3565: checking for makeflags variable" >&5
+ echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
+ if test "${cf_cv_makeflags+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3517,95 +3596,13 @@
+ 	rm -f cf_makeflags.tmp
+ 
+ fi
+-echo "$as_me:3520: result: $cf_cv_makeflags" >&5
++echo "$as_me:3599: result: $cf_cv_makeflags" >&5
+ echo "${ECHO_T}$cf_cv_makeflags" >&6
+ 
+-echo "$as_me:3523: checking for long file names" >&5
+-echo $ECHO_N "checking for long file names... $ECHO_C" >&6
+-if test "${ac_cv_sys_long_file_names+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_sys_long_file_names=yes
+-# Test for long file names in all the places we know might matter:
+-#      .		the current directory, where building will happen
+-#      $prefix/lib	where we will be installing things
+-#      $exec_prefix/lib	likewise
+-# eval it to expand exec_prefix.
+-#      $TMPDIR		if set, where it might want to write temporary files
+-# if $TMPDIR is not set:
+-#      /tmp		where it might want to write temporary files
+-#      /var/tmp		likewise
+-#      /usr/tmp		likewise
+-if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
+-  ac_tmpdirs=$TMPDIR
+-else
+-  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
+-fi
+-for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
+-  test -d $ac_dir || continue
+-  test -w $ac_dir || continue # It is less confusing to not echo anything here.
+-  ac_xdir=$ac_dir/cf$$
+-  (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue
+-  ac_tf1=$ac_xdir/conftest9012345
+-  ac_tf2=$ac_xdir/conftest9012346
+-  (echo 1 >$ac_tf1) 2>/dev/null
+-  (echo 2 >$ac_tf2) 2>/dev/null
+-  ac_val=`cat $ac_tf1 2>/dev/null`
+-  if test ! -f $ac_tf1 || test "$ac_val" != 1; then
+-    ac_cv_sys_long_file_names=no
+-    rm -rf $ac_xdir 2>/dev/null
+-    break
+-  fi
+-  rm -rf $ac_xdir 2>/dev/null
+-done
+-fi
+-echo "$as_me:3562: result: $ac_cv_sys_long_file_names" >&5
+-echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
+-if test $ac_cv_sys_long_file_names = yes; then
+-
+-cat >>confdefs.h <<\EOF
+-#define HAVE_LONG_FILE_NAMES 1
+-EOF
+-
+-fi
+-
+-echo "$as_me:3572: checking if filesystem supports mixed-case filenames" >&5
+-echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+-if test "${cf_cv_mixedcase+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-if test "$cross_compiling" = yes ; then
+-	case $target_alias in #(vi
+-	*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
+-		cf_cv_mixedcase=no
+-		;;
+-	*)
+-		cf_cv_mixedcase=yes
+-		;;
+-	esac
+-else
+-	rm -f conftest CONFTEST
+-	echo test >conftest
+-	if test -f CONFTEST ; then
+-		cf_cv_mixedcase=no
+-	else
+-		cf_cv_mixedcase=yes
+-	fi
+-	rm -f conftest CONFTEST
+-fi
+-
+-fi
+-echo "$as_me:3599: result: $cf_cv_mixedcase" >&5
+-echo "${ECHO_T}$cf_cv_mixedcase" >&6
+-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
+-#define MIXEDCASE_FILENAMES 1
+-EOF
+-
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:3608: checking for $ac_word" >&5
++echo "$as_me:3605: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3620,7 +3617,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-echo "$as_me:3623: found $ac_dir/$ac_word" >&5
++echo "$as_me:3620: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3628,10 +3625,10 @@
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+-  echo "$as_me:3631: result: $RANLIB" >&5
++  echo "$as_me:3628: result: $RANLIB" >&5
+ echo "${ECHO_T}$RANLIB" >&6
+ else
+-  echo "$as_me:3634: result: no" >&5
++  echo "$as_me:3631: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3640,7 +3637,7 @@
+   ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-echo "$as_me:3643: checking for $ac_word" >&5
++echo "$as_me:3640: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3655,7 +3652,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+-echo "$as_me:3658: found $ac_dir/$ac_word" >&5
++echo "$as_me:3655: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3664,10 +3661,10 @@
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+-  echo "$as_me:3667: result: $ac_ct_RANLIB" >&5
++  echo "$as_me:3664: result: $ac_ct_RANLIB" >&5
+ echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+-  echo "$as_me:3670: result: no" >&5
++  echo "$as_me:3667: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3679,7 +3676,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ld; ac_word=$2
+-echo "$as_me:3682: checking for $ac_word" >&5
++echo "$as_me:3679: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LD+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3694,7 +3691,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LD="${ac_tool_prefix}ld"
+-echo "$as_me:3697: found $ac_dir/$ac_word" >&5
++echo "$as_me:3694: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3702,10 +3699,10 @@
+ fi
+ LD=$ac_cv_prog_LD
+ if test -n "$LD"; then
+-  echo "$as_me:3705: result: $LD" >&5
++  echo "$as_me:3702: result: $LD" >&5
+ echo "${ECHO_T}$LD" >&6
+ else
+-  echo "$as_me:3708: result: no" >&5
++  echo "$as_me:3705: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3714,7 +3711,7 @@
+   ac_ct_LD=$LD
+   # Extract the first word of "ld", so it can be a program name with args.
+ set dummy ld; ac_word=$2
+-echo "$as_me:3717: checking for $ac_word" >&5
++echo "$as_me:3714: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3729,7 +3726,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_LD="ld"
+-echo "$as_me:3732: found $ac_dir/$ac_word" >&5
++echo "$as_me:3729: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3738,10 +3735,10 @@
+ fi
+ ac_ct_LD=$ac_cv_prog_ac_ct_LD
+ if test -n "$ac_ct_LD"; then
+-  echo "$as_me:3741: result: $ac_ct_LD" >&5
++  echo "$as_me:3738: result: $ac_ct_LD" >&5
+ echo "${ECHO_T}$ac_ct_LD" >&6
+ else
+-  echo "$as_me:3744: result: no" >&5
++  echo "$as_me:3741: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3753,7 +3750,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:3756: checking for $ac_word" >&5
++echo "$as_me:3753: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3768,7 +3765,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:3771: found $ac_dir/$ac_word" >&5
++echo "$as_me:3768: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3776,10 +3773,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+-  echo "$as_me:3779: result: $AR" >&5
++  echo "$as_me:3776: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+-  echo "$as_me:3782: result: no" >&5
++  echo "$as_me:3779: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3788,7 +3785,7 @@
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:3791: checking for $ac_word" >&5
++echo "$as_me:3788: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3803,7 +3800,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:3806: found $ac_dir/$ac_word" >&5
++echo "$as_me:3803: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3812,10 +3809,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+-  echo "$as_me:3815: result: $ac_ct_AR" >&5
++  echo "$as_me:3812: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+-  echo "$as_me:3818: result: no" >&5
++  echo "$as_me:3815: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3828,7 +3825,7 @@
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+-echo "$as_me:3831: checking for archiver options (symbol AR_OPTS)" >&5
++echo "$as_me:3828: checking for archiver options (symbol AR_OPTS)" >&5
+ echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
+ 
+ if test -z "$AR_OPTS" ; then
+@@ -3837,12 +3834,12 @@
+ fi
+ 
+ cf_cv_subst_AR_OPTS=$AR_OPTS
+-echo "$as_me:3840: result: $AR_OPTS" >&5
++echo "$as_me:3837: result: $AR_OPTS" >&5
+ echo "${ECHO_T}$AR_OPTS" >&6
+ 
+ fi
+ 
+-echo "$as_me:3845: checking if you have specified an install-prefix" >&5
++echo "$as_me:3842: checking if you have specified an install-prefix" >&5
+ echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
+ 
+ # Check whether --with-install-prefix or --without-install-prefix was given.
+@@ -3855,7 +3852,7 @@
+ 		;;
+ 	esac
+ fi;
+-echo "$as_me:3858: result: $DESTDIR" >&5
++echo "$as_me:3855: result: $DESTDIR" >&5
+ echo "${ECHO_T}$DESTDIR" >&6
+ 
+ ###############################################################################
+@@ -3883,7 +3880,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3886: checking for $ac_word" >&5
++echo "$as_me:3883: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_BUILD_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3898,7 +3895,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_BUILD_CC="$ac_prog"
+-echo "$as_me:3901: found $ac_dir/$ac_word" >&5
++echo "$as_me:3898: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3906,10 +3903,10 @@
+ fi
+ BUILD_CC=$ac_cv_prog_BUILD_CC
+ if test -n "$BUILD_CC"; then
+-  echo "$as_me:3909: result: $BUILD_CC" >&5
++  echo "$as_me:3906: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ else
+-  echo "$as_me:3912: result: no" >&5
++  echo "$as_me:3909: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3917,12 +3914,12 @@
+ done
+ 
+ fi;
+-	echo "$as_me:3920: checking for native build C compiler" >&5
++	echo "$as_me:3917: checking for native build C compiler" >&5
+ echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+-	echo "$as_me:3922: result: $BUILD_CC" >&5
++	echo "$as_me:3919: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ 
+-	echo "$as_me:3925: checking for native build C preprocessor" >&5
++	echo "$as_me:3922: checking for native build C preprocessor" >&5
+ echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cpp or --without-build-cpp was given.
+@@ -3932,10 +3929,10 @@
+ else
+   BUILD_CPP='${BUILD_CC} -E'
+ fi;
+-	echo "$as_me:3935: result: $BUILD_CPP" >&5
++	echo "$as_me:3932: result: $BUILD_CPP" >&5
+ echo "${ECHO_T}$BUILD_CPP" >&6
+ 
+-	echo "$as_me:3938: checking for native build C flags" >&5
++	echo "$as_me:3935: checking for native build C flags" >&5
+ echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cflags or --without-build-cflags was given.
+@@ -3943,10 +3940,10 @@
+   withval="$with_build_cflags"
+   BUILD_CFLAGS="$withval"
+ fi;
+-	echo "$as_me:3946: result: $BUILD_CFLAGS" >&5
++	echo "$as_me:3943: result: $BUILD_CFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CFLAGS" >&6
+ 
+-	echo "$as_me:3949: checking for native build C preprocessor-flags" >&5
++	echo "$as_me:3946: checking for native build C preprocessor-flags" >&5
+ echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cppflags or --without-build-cppflags was given.
+@@ -3954,10 +3951,10 @@
+   withval="$with_build_cppflags"
+   BUILD_CPPFLAGS="$withval"
+ fi;
+-	echo "$as_me:3957: result: $BUILD_CPPFLAGS" >&5
++	echo "$as_me:3954: result: $BUILD_CPPFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+ 
+-	echo "$as_me:3960: checking for native build linker-flags" >&5
++	echo "$as_me:3957: checking for native build linker-flags" >&5
+ echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-ldflags or --without-build-ldflags was given.
+@@ -3965,10 +3962,10 @@
+   withval="$with_build_ldflags"
+   BUILD_LDFLAGS="$withval"
+ fi;
+-	echo "$as_me:3968: result: $BUILD_LDFLAGS" >&5
++	echo "$as_me:3965: result: $BUILD_LDFLAGS" >&5
+ echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+ 
+-	echo "$as_me:3971: checking for native build linker-libraries" >&5
++	echo "$as_me:3968: checking for native build linker-libraries" >&5
+ echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-build-libs or --without-build-libs was given.
+@@ -3976,7 +3973,7 @@
+   withval="$with_build_libs"
+   BUILD_LIBS="$withval"
+ fi;
+-	echo "$as_me:3979: result: $BUILD_LIBS" >&5
++	echo "$as_me:3976: result: $BUILD_LIBS" >&5
+ echo "${ECHO_T}$BUILD_LIBS" >&6
+ 
+ 	# this assumes we're on Unix.
+@@ -3986,7 +3983,7 @@
+ 	: ${BUILD_CC:='${CC}'}
+ 
+ 	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
+-		{ { echo "$as_me:3989: error: Cross-build requires two compilers.
++		{ { echo "$as_me:3986: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&5
+ echo "$as_me: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&2;}
+@@ -4023,11 +4020,11 @@
+ # doing:
+ LIB_CLEAN=
+ LIB_COMPILE=
+-LIB_LINK=
++LIB_LINK='${CC}'
+ LIB_INSTALL=
+ LIB_UNINSTALL=
+ 
+-echo "$as_me:4030: checking if you want to build libraries with libtool" >&5
++echo "$as_me:4027: checking if you want to build libraries with libtool" >&5
+ echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
+ 
+ # Check whether --with-libtool or --without-libtool was given.
+@@ -4037,7 +4034,7 @@
+ else
+   with_libtool=no
+ fi;
+-echo "$as_me:4040: result: $with_libtool" >&5
++echo "$as_me:4037: result: $with_libtool" >&5
+ echo "${ECHO_T}$with_libtool" >&6
+ if test "$with_libtool" != "no"; then
+ 
+@@ -4068,7 +4065,7 @@
+   with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:4071: error: expected a pathname, not \"$with_libtool\"" >&5
++  { { echo "$as_me:4068: error: expected a pathname, not \"$with_libtool\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -4078,7 +4075,7 @@
+ 	else
+  		# Extract the first word of "libtool", so it can be a program name with args.
+ set dummy libtool; ac_word=$2
+-echo "$as_me:4081: checking for $ac_word" >&5
++echo "$as_me:4078: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_LIBTOOL+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4095,7 +4092,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
+-   echo "$as_me:4098: found $ac_dir/$ac_word" >&5
++   echo "$as_me:4095: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -4106,42 +4103,42 @@
+ LIBTOOL=$ac_cv_path_LIBTOOL
+ 
+ if test -n "$LIBTOOL"; then
+-  echo "$as_me:4109: result: $LIBTOOL" >&5
++  echo "$as_me:4106: result: $LIBTOOL" >&5
+ echo "${ECHO_T}$LIBTOOL" >&6
+ else
+-  echo "$as_me:4112: result: no" >&5
++  echo "$as_me:4109: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+  	fi
+  	if test -z "$LIBTOOL" ; then
+- 		{ { echo "$as_me:4118: error: Cannot find libtool" >&5
++ 		{ { echo "$as_me:4115: error: Cannot find libtool" >&5
+ echo "$as_me: error: Cannot find libtool" >&2;}
+    { (exit 1); exit 1; }; }
+  	fi
+-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
+-	LIB_OBJECT='${OBJECTS}.o=.lo)'
++	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
++	LIB_OBJECT='${OBJECTS:.o=.lo}'
+ 	LIB_SUFFIX=.la
+ 	LIB_CLEAN='${LIBTOOL} --mode=clean'
+ 	LIB_COMPILE='${LIBTOOL} --mode=compile'
+-	LIB_LINK='${LIBTOOL} --mode=link'
++	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
+ 	LIB_INSTALL='${LIBTOOL} --mode=install'
+ 	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
+ 	LIB_PREP=:
+ 
+ 	# Show the version of libtool
+-	echo "$as_me:4133: checking version of libtool" >&5
++	echo "$as_me:4130: checking version of libtool" >&5
+ echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
+ 
+ 	# Save the version in a cache variable - this is not entirely a good
+ 	# thing, but the version string from libtool is very ugly, and for
+ 	# bug reports it might be useful to have the original string.
+-	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
+-	echo "$as_me:4140: result: $cf_cv_libtool_version" >&5
++	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
++	echo "$as_me:4137: result: $cf_cv_libtool_version" >&5
+ echo "${ECHO_T}$cf_cv_libtool_version" >&6
+ 	if test -z "$cf_cv_libtool_version" ; then
+-		{ { echo "$as_me:4143: error: This is not libtool" >&5
+-echo "$as_me: error: This is not libtool" >&2;}
++		{ { echo "$as_me:4140: error: This is not GNU libtool" >&5
++echo "$as_me: error: This is not GNU libtool" >&2;}
+    { (exit 1); exit 1; }; }
+ 	fi
+ 
+@@ -4167,7 +4164,7 @@
+ 
+ else
+ 
+-echo "$as_me:4170: checking if you want to build shared libraries" >&5
++echo "$as_me:4167: checking if you want to build shared libraries" >&5
+ echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-shared or --without-shared was given.
+@@ -4177,11 +4174,11 @@
+ else
+   with_shared=no
+ fi;
+-echo "$as_me:4180: result: $with_shared" >&5
++echo "$as_me:4177: result: $with_shared" >&5
+ echo "${ECHO_T}$with_shared" >&6
+ test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
+ 
+-echo "$as_me:4184: checking if you want to build static libraries" >&5
++echo "$as_me:4181: checking if you want to build static libraries" >&5
+ echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-normal or --without-normal was given.
+@@ -4191,11 +4188,11 @@
+ else
+   with_normal=yes
+ fi;
+-echo "$as_me:4194: result: $with_normal" >&5
++echo "$as_me:4191: result: $with_normal" >&5
+ echo "${ECHO_T}$with_normal" >&6
+ test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
+ 
+-echo "$as_me:4198: checking if you want to build debug libraries" >&5
++echo "$as_me:4195: checking if you want to build debug libraries" >&5
+ echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-debug or --without-debug was given.
+@@ -4205,11 +4202,11 @@
+ else
+   with_debug=yes
+ fi;
+-echo "$as_me:4208: result: $with_debug" >&5
++echo "$as_me:4205: result: $with_debug" >&5
+ echo "${ECHO_T}$with_debug" >&6
+ test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
+ 
+-echo "$as_me:4212: checking if you want to build profiling libraries" >&5
++echo "$as_me:4209: checking if you want to build profiling libraries" >&5
+ echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-profile or --without-profile was given.
+@@ -4219,7 +4216,7 @@
+ else
+   with_profile=no
+ fi;
+-echo "$as_me:4222: result: $with_profile" >&5
++echo "$as_me:4219: result: $with_profile" >&5
+ echo "${ECHO_T}$with_profile" >&6
+ test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
+ 
+@@ -4227,23 +4224,25 @@
+ 
+ ###############################################################################
+ 
+-echo "$as_me:4230: checking for specified models" >&5
++echo "$as_me:4227: checking for specified models" >&5
+ echo $ECHO_N "checking for specified models... $ECHO_C" >&6
+ test -z "$cf_list_models" && cf_list_models=normal
+ test "$with_libtool" != "no" && cf_list_models=libtool
+-echo "$as_me:4234: result: $cf_list_models" >&5
++echo "$as_me:4231: result: $cf_list_models" >&5
+ echo "${ECHO_T}$cf_list_models" >&6
+ 
+ ### Use the first model as the default, and save its suffix for use in building
+ ### up test-applications.
+-echo "$as_me:4239: checking for default model" >&5
++echo "$as_me:4236: checking for default model" >&5
+ echo $ECHO_N "checking for default model... $ECHO_C" >&6
+ DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
+-echo "$as_me:4242: result: $DFT_LWR_MODEL" >&5
++echo "$as_me:4239: result: $DFT_LWR_MODEL" >&5
+ echo "${ECHO_T}$DFT_LWR_MODEL" >&6
+ 
+ DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ 
++TICS_NAME=tic
++
+ TINFO_NAME=tinfo
+ 
+ LIB_NAME=ncurses
+@@ -4264,7 +4263,7 @@
+ 
+ ###############################################################################
+ 
+-echo "$as_me:4267: checking if you want to build a separate terminfo library" >&5
++echo "$as_me:4266: checking if you want to build a separate terminfo library" >&5
+ echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
+ 
+ # Check whether --with-termlib or --without-termlib was given.
+@@ -4274,13 +4273,26 @@
+ else
+   with_termlib=no
+ fi;
+-echo "$as_me:4277: result: $with_termlib" >&5
++echo "$as_me:4276: result: $with_termlib" >&5
+ echo "${ECHO_T}$with_termlib" >&6
+ 
++echo "$as_me:4279: checking if you want to build a separate tic library" >&5
++echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
++
++# Check whether --with-ticlib or --without-ticlib was given.
++if test "${with_ticlib+set}" = set; then
++  withval="$with_ticlib"
++  with_ticlib=$withval
++else
++  with_ticlib=no
++fi;
++echo "$as_me:4289: result: $with_ticlib" >&5
++echo "${ECHO_T}$with_ticlib" >&6
++
+ ### Checks for special libraries, must be done up-front.
+ SHLIB_LIST=""
+ 
+-echo "$as_me:4283: checking if you want to link with the GPM mouse library" >&5
++echo "$as_me:4295: checking if you want to link with the GPM mouse library" >&5
+ echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
+ 
+ # Check whether --with-gpm or --without-gpm was given.
+@@ -4290,27 +4302,27 @@
+ else
+   with_gpm=maybe
+ fi;
+-echo "$as_me:4293: result: $with_gpm" >&5
++echo "$as_me:4305: result: $with_gpm" >&5
+ echo "${ECHO_T}$with_gpm" >&6
+ 
+ if test "$with_gpm" != no ; then
+-	echo "$as_me:4297: checking for gpm.h" >&5
++	echo "$as_me:4309: checking for gpm.h" >&5
+ echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
+ if test "${ac_cv_header_gpm_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4303 "configure"
++#line 4315 "configure"
+ #include "confdefs.h"
+ #include <gpm.h>
+ _ACEOF
+-if { (eval echo "$as_me:4307: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4319: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:4313: \$? = $ac_status" >&5
++  echo "$as_me:4325: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4329,7 +4341,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4332: result: $ac_cv_header_gpm_h" >&5
++echo "$as_me:4344: result: $ac_cv_header_gpm_h" >&5
+ echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
+ if test $ac_cv_header_gpm_h = yes; then
+ 
+@@ -4340,12 +4352,14 @@
+ 		if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
+ 			test -n "$verbose" && echo "	assuming we really have GPM library" 1>&6
+ 
++echo "${as_me-configure}:4355: testing assuming we really have GPM library ..." 1>&5
++
+ 			cat >>confdefs.h <<\EOF
+ #define HAVE_LIBGPM 1
+ EOF
+ 
+ 		else
+-			echo "$as_me:4348: checking for Gpm_Open in -lgpm" >&5
++			echo "$as_me:4362: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4353,7 +4367,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4356 "configure"
++#line 4370 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -4372,16 +4386,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4375: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4389: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4378: \$? = $ac_status" >&5
++  echo "$as_me:4392: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4381: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4395: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4384: \$? = $ac_status" >&5
++  echo "$as_me:4398: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -4392,13 +4406,13 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4395: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:4409: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+   :
+ else
+ 
+-				{ { echo "$as_me:4401: error: Cannot link with GPM library" >&5
++				{ { echo "$as_me:4415: error: Cannot link with GPM library" >&5
+ echo "$as_me: error: Cannot link with GPM library" >&2;}
+    { (exit 1); exit 1; }; }
+ 		fi
+@@ -4408,7 +4422,7 @@
+ 
+ else
+ 
+-		test "$with_gpm" != maybe && { echo "$as_me:4411: WARNING: Cannot find GPM header" >&5
++		test "$with_gpm" != maybe && { echo "$as_me:4425: WARNING: Cannot find GPM header" >&5
+ echo "$as_me: WARNING: Cannot find GPM header" >&2;}
+ 		with_gpm=no
+ 
+@@ -4417,7 +4431,7 @@
+ fi
+ 
+ if test "$with_gpm" != no ; then
+-	echo "$as_me:4420: checking if you want to load GPM dynamically" >&5
++	echo "$as_me:4434: checking if you want to load GPM dynamically" >&5
+ echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
+ 
+ # Check whether --with-dlsym or --without-dlsym was given.
+@@ -4427,18 +4441,18 @@
+ else
+   with_dlsym=yes
+ fi;
+-	echo "$as_me:4430: result: $with_dlsym" >&5
++	echo "$as_me:4444: result: $with_dlsym" >&5
+ echo "${ECHO_T}$with_dlsym" >&6
+ 	if test "$with_dlsym" = yes ; then
+ 
+ cf_have_dlsym=no
+-echo "$as_me:4435: checking for dlsym" >&5
++echo "$as_me:4449: checking for dlsym" >&5
+ echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
+ if test "${ac_cv_func_dlsym+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4441 "configure"
++#line 4455 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char dlsym (); below.  */
+@@ -4469,16 +4483,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4472: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4486: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4475: \$? = $ac_status" >&5
++  echo "$as_me:4489: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4478: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4492: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4481: \$? = $ac_status" >&5
++  echo "$as_me:4495: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_dlsym=yes
+ else
+@@ -4488,14 +4502,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4491: result: $ac_cv_func_dlsym" >&5
++echo "$as_me:4505: result: $ac_cv_func_dlsym" >&5
+ echo "${ECHO_T}$ac_cv_func_dlsym" >&6
+ if test $ac_cv_func_dlsym = yes; then
+   cf_have_dlsym=yes
+ else
+ 
+ cf_have_libdl=no
+-echo "$as_me:4498: checking for dlsym in -ldl" >&5
++echo "$as_me:4512: checking for dlsym in -ldl" >&5
+ echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
+ if test "${ac_cv_lib_dl_dlsym+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4503,7 +4517,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldl  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4506 "configure"
++#line 4520 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -4522,16 +4536,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4525: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4539: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4528: \$? = $ac_status" >&5
++  echo "$as_me:4542: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4531: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4545: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4534: \$? = $ac_status" >&5
++  echo "$as_me:4548: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dl_dlsym=yes
+ else
+@@ -4542,7 +4556,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4545: result: $ac_cv_lib_dl_dlsym" >&5
++echo "$as_me:4559: result: $ac_cv_lib_dl_dlsym" >&5
+ echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
+ if test $ac_cv_lib_dl_dlsym = yes; then
+ 
+@@ -4555,10 +4569,10 @@
+ if test "$cf_have_dlsym" = yes ; then
+ 	test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
+ 
+-	echo "$as_me:4558: checking whether able to link to dl*() functions" >&5
++	echo "$as_me:4572: checking whether able to link to dl*() functions" >&5
+ echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 4561 "configure"
++#line 4575 "configure"
+ #include "confdefs.h"
+ #include <dlfcn.h>
+ int
+@@ -4576,16 +4590,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4579: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4593: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4582: \$? = $ac_status" >&5
++  echo "$as_me:4596: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4585: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4599: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4588: \$? = $ac_status" >&5
++  echo "$as_me:4602: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 		cat >>confdefs.h <<\EOF
+@@ -4596,15 +4610,15 @@
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ 
+-		{ { echo "$as_me:4599: error: Cannot link test program for libdl" >&5
++		{ { echo "$as_me:4613: error: Cannot link test program for libdl" >&5
+ echo "$as_me: error: Cannot link test program for libdl" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-	echo "$as_me:4604: result: ok" >&5
++	echo "$as_me:4618: result: ok" >&5
+ echo "${ECHO_T}ok" >&6
+ else
+-	{ { echo "$as_me:4607: error: Cannot find dlsym function" >&5
++	{ { echo "$as_me:4621: error: Cannot find dlsym function" >&5
+ echo "$as_me: error: Cannot find dlsym function" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -4612,10 +4626,12 @@
+ 		if test "$with_gpm" != yes ; then
+ 			test -n "$verbose" && echo "	assuming soname for gpm is $with_gpm" 1>&6
+ 
++echo "${as_me-configure}:4629: testing assuming soname for gpm is $with_gpm ..." 1>&5
++
+ 			cf_cv_gpm_soname="$with_gpm"
+ 		else
+ 
+-echo "$as_me:4618: checking for soname of gpm library" >&5
++echo "$as_me:4634: checking for soname of gpm library" >&5
+ echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
+ if test "${cf_cv_gpm_soname+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4633,15 +4649,15 @@
+ CF_EOF
+ cf_save_LIBS="$LIBS"
+ 	LIBS="-lgpm $LIBS"
+-	if { (eval echo "$as_me:4636: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:4652: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4639: \$? = $ac_status" >&5
++  echo "$as_me:4655: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+-		if { (eval echo "$as_me:4641: \"$ac_link\"") >&5
++		if { (eval echo "$as_me:4657: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4644: \$? = $ac_status" >&5
++  echo "$as_me:4660: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 			cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
+ 			test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
+@@ -4652,7 +4668,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:4655: result: $cf_cv_gpm_soname" >&5
++echo "$as_me:4671: result: $cf_cv_gpm_soname" >&5
+ echo "${ECHO_T}$cf_cv_gpm_soname" >&6
+ 
+ 		fi
+@@ -4668,7 +4684,7 @@
+ #define HAVE_LIBGPM 1
+ EOF
+ 
+-	echo "$as_me:4671: checking for Gpm_Wgetch in -lgpm" >&5
++echo "$as_me:4687: checking for Gpm_Wgetch in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4676,7 +4692,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4679 "configure"
++#line 4695 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -4695,16 +4711,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4698: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4714: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4701: \$? = $ac_status" >&5
++  echo "$as_me:4717: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4704: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4720: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4707: \$? = $ac_status" >&5
++  echo "$as_me:4723: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Wgetch=yes
+ else
+@@ -4715,12 +4731,61 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4718: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
++echo "$as_me:4734: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
+ if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
+ 
+-		{ echo "$as_me:4722: WARNING: GPM library is already linked with curses - read the FAQ" >&5
++echo "$as_me:4738: checking if GPM is weakly bound to curses library" >&5
++echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
++if test "${cf_cv_check_gpm_wgetch+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_check_gpm_wgetch=unknown
++if test "$cross_compiling" != yes ; then
++
++cat >conftest.$ac_ext <<CF_EOF
++#include <gpm.h>
++int main()
++{
++	Gpm_Wgetch();
++	${cf_cv_main_return:-return}(0);
++}
++CF_EOF
++
++	cf_save_LIBS="$LIBS"
++	# This only works if we can look at the symbol table.  If a shared
++	# library is stripped for install, we cannot use that.  So we're forced
++	# to rely on the static library, noting that some packagers may not
++	# include it.
++	LIBS="-static -lgpm -dynamic $LIBS"
++	if { (eval echo "$as_me:4762: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:4765: \$? = $ac_status" >&5
++  (exit $ac_status); } ; then
++		if { (eval echo "$as_me:4767: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:4770: \$? = $ac_status" >&5
++  (exit $ac_status); } ; then
++			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
++			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
++			test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
++		fi
++	fi
++	rm -f conftest*
++	LIBS="$cf_save_LIBS"
++fi
++
++fi
++echo "$as_me:4782: result: $cf_cv_check_gpm_wgetch" >&5
++echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
++
++if test "$cf_cv_check_gpm_wgetch" != yes ; then
++	{ echo "$as_me:4786: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+ echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
++fi
+ 
+ fi
+ 
+@@ -4728,7 +4793,7 @@
+ 
+ # not everyone has "test -c"
+ if test -c /dev/sysmouse 2>/dev/null ; then
+-echo "$as_me:4731: checking if you want to use sysmouse" >&5
++echo "$as_me:4796: checking if you want to use sysmouse" >&5
+ echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+ 
+ # Check whether --with-sysmouse or --without-sysmouse was given.
+@@ -4740,7 +4805,7 @@
+ fi;
+ 	if test "$cf_with_sysmouse" != no ; then
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 4743 "configure"
++#line 4808 "configure"
+ #include "confdefs.h"
+ 
+ #include <osreldate.h>
+@@ -4763,16 +4828,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4766: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4831: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4769: \$? = $ac_status" >&5
++  echo "$as_me:4834: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4772: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4837: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4775: \$? = $ac_status" >&5
++  echo "$as_me:4840: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_with_sysmouse=yes
+ else
+@@ -4782,7 +4847,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 	fi
+-echo "$as_me:4785: result: $cf_with_sysmouse" >&5
++echo "$as_me:4850: result: $cf_with_sysmouse" >&5
+ echo "${ECHO_T}$cf_with_sysmouse" >&6
+ test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SYSMOUSE 1
+@@ -4800,7 +4865,7 @@
+ 	test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
+ fi
+ 
+-echo "$as_me:4803: checking for default loader flags" >&5
++echo "$as_me:4868: checking for default loader flags" >&5
+ echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+ case $DFT_LWR_MODEL in
+ libtool) LD_MODEL=''   ;;
+@@ -4809,10 +4874,12 @@
+ profile) LD_MODEL='-pg';;
+ shared)  LD_MODEL=''   ;;
+ esac
+-echo "$as_me:4812: result: $LD_MODEL" >&5
++echo "$as_me:4877: result: $LD_MODEL" >&5
+ echo "${ECHO_T}$LD_MODEL" >&6
+ 
+-echo "$as_me:4815: checking if rpath option should be used" >&5
++case $DFT_LWR_MODEL in
++shared)
++echo "$as_me:4882: checking if rpath option should be used" >&5
+ echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
+ 
+ # Check whether --enable-rpath or --disable-rpath was given.
+@@ -4822,8 +4889,22 @@
+ else
+   cf_cv_ld_rpath=no
+ fi;
+-echo "$as_me:4825: result: $cf_cv_ld_rpath" >&5
++echo "$as_me:4892: result: $cf_cv_ld_rpath" >&5
+ echo "${ECHO_T}$cf_cv_ld_rpath" >&6
++echo "$as_me:4894: checking if shared libraries should be relinked during install" >&5
++echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
++
++# Check whether --enable-relink or --disable-relink was given.
++if test "${enable_relink+set}" = set; then
++  enableval="$enable_relink"
++  cf_cv_do_relink=$enableval
++else
++  cf_cv_do_relink=yes
++fi;
++echo "$as_me:4904: result: $cf_cv_do_relink" >&5
++echo "${ECHO_T}$cf_cv_do_relink" >&6
++	;;
++esac
+ 
+ 	LOCAL_LDFLAGS=
+ 	LOCAL_LDFLAGS2=
+@@ -4832,7 +4913,7 @@
+ 
+ 	cf_cv_do_symlinks=no
+ 
+-	echo "$as_me:4835: checking if release/abi version should be used for shared libs" >&5
++	echo "$as_me:4916: checking if release/abi version should be used for shared libs" >&5
+ echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+ 
+ # Check whether --with-shlib-version or --without-shlib-version was given.
+@@ -4847,7 +4928,7 @@
+ 		cf_cv_shlib_version=$withval
+ 		;;
+ 	*)
+-		{ { echo "$as_me:4850: error: option value must be one of: rel, abi, auto or no" >&5
++		{ { echo "$as_me:4931: error: option value must be one of: rel, abi, auto or no" >&5
+ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
+    { (exit 1); exit 1; }; }
+ 		;;
+@@ -4856,7 +4937,7 @@
+ else
+   cf_cv_shlib_version=auto
+ fi;
+-	echo "$as_me:4859: result: $cf_cv_shlib_version" >&5
++	echo "$as_me:4940: result: $cf_cv_shlib_version" >&5
+ echo "${ECHO_T}$cf_cv_shlib_version" >&6
+ 
+ 	cf_cv_rm_so_locs=no
+@@ -4865,14 +4946,14 @@
+ 	CC_SHARED_OPTS=
+ 	if test "$GCC" = yes
+ 	then
+-		echo "$as_me:4868: checking which $CC option to use" >&5
++		echo "$as_me:4949: checking which $CC option to use" >&5
+ echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		for CC_SHARED_OPTS in -fPIC -fpic ''
+ 		do
+ 			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 4875 "configure"
++#line 4956 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4884,16 +4965,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4887: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4968: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4890: \$? = $ac_status" >&5
++  echo "$as_me:4971: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4893: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4974: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4896: \$? = $ac_status" >&5
++  echo "$as_me:4977: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -4902,7 +4983,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		done
+-		echo "$as_me:4905: result: $CC_SHARED_OPTS" >&5
++		echo "$as_me:4986: result: $CC_SHARED_OPTS" >&5
+ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
+ 		CFLAGS="$cf_save_CFLAGS"
+ 	fi
+@@ -4915,17 +4996,30 @@
+ 		;;
+ 	cygwin*)
+ 		CC_SHARED_OPTS=
+-		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
++		MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
+ 		cf_cv_shlib_version=cygdll
+ 		cf_cv_shlib_version_infix=cygdll
++		cat >mk_shared_lib.sh <<-CF_EOF
++		#!/bin/sh
++		SHARED_LIB=\$1
++		IMPORT_LIB=\`echo "\$1" | sed -e 's/cyg/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\`
++		shift
++		cat <<-EOF
++		Linking shared library
++		** SHARED_LIB \$SHARED_LIB
++		** IMPORT_LIB \$IMPORT_LIB
++EOF
++		exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
++CF_EOF
++		chmod +x mk_shared_lib.sh
+ 		;;
+ 	darwin*)
+ 		EXTRA_CFLAGS="-no-cpp-precomp"
+ 		CC_SHARED_OPTS="-dynamic"
+-		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
++		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
+ 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+ 		cf_cv_shlib_version_infix=yes
+-		echo "$as_me:4928: checking if ld -search_paths_first works" >&5
++		echo "$as_me:5022: checking if ld -search_paths_first works" >&5
+ echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
+ if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4934,7 +5028,7 @@
+ 			cf_save_LDFLAGS=$LDFLAGS
+ 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 4937 "configure"
++#line 5031 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -4946,16 +5040,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4949: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5043: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4952: \$? = $ac_status" >&5
++  echo "$as_me:5046: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4955: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5049: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4958: \$? = $ac_status" >&5
++  echo "$as_me:5052: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ldflags_search_paths_first=yes
+ else
+@@ -4966,7 +5060,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 				LDFLAGS=$cf_save_LDFLAGS
+ fi
+-echo "$as_me:4969: result: $cf_cv_ldflags_search_paths_first" >&5
++echo "$as_me:5063: result: $cf_cv_ldflags_search_paths_first" >&5
+ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
+ 		if test $cf_cv_ldflags_search_paths_first = yes; then
+ 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+@@ -5021,11 +5115,11 @@
+ 
+ 		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $@'
+ 		;;
+-	openbsd2*)
++	openbsd[2-9].*)
+ 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ 		MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $@.${ABI_VERSION}` -o $@'
+ 		;;
+-	openbsd*|freebsd[23]*)
++	openbsd*|freebsd[12].*)
+ 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ 		MK_SHARED_LIB='${LD} -Bshareable -o $@'
+ 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -5162,7 +5256,7 @@
+ 			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
+ 			;;
+ 		*)
+-			{ echo "$as_me:5165: WARNING: ignored --with-shlib-version" >&5
++			{ echo "$as_me:5259: WARNING: ignored --with-shlib-version" >&5
+ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
+ 			;;
+ 		esac
+@@ -5170,12 +5264,12 @@
+ 	esac
+ 
+ 	if test -n "$cf_ld_rpath_opt" ; then
+-		echo "$as_me:5173: checking if we need a space after rpath option" >&5
++		echo "$as_me:5267: checking if we need a space after rpath option" >&5
+ echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
+ 		cf_save_LIBS="$LIBS"
+ 		LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 5178 "configure"
++#line 5272 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -5187,16 +5281,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5190: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5284: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5193: \$? = $ac_status" >&5
++  echo "$as_me:5287: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5196: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5290: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5199: \$? = $ac_status" >&5
++  echo "$as_me:5293: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_rpath_space=no
+ else
+@@ -5206,7 +5300,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 		LIBS="$cf_save_LIBS"
+-		echo "$as_me:5209: result: $cf_rpath_space" >&5
++		echo "$as_me:5303: result: $cf_rpath_space" >&5
+ echo "${ECHO_T}$cf_rpath_space" >&6
+ 		test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
+ 		MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
+@@ -5215,7 +5309,7 @@
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+ 	for model in $cf_list_models; do
+ 		if test "$model" = "shared"; then
+-			{ { echo "$as_me:5218: error: Shared libraries are not supported in this version" >&5
++			{ { echo "$as_me:5312: error: Shared libraries are not supported in this version" >&5
+ echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
+    { (exit 1); exit 1; }; }
+ 		fi
+@@ -5225,7 +5319,7 @@
+ ###############################################################################
+ 
+ ###	use option --disable-overwrite to leave out the link to -lcurses
+-echo "$as_me:5228: checking if you wish to install ncurses overwriting curses" >&5
++echo "$as_me:5322: checking if you wish to install ncurses overwriting curses" >&5
+ echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
+ 
+ # Check whether --enable-overwrite or --disable-overwrite was given.
+@@ -5235,10 +5329,10 @@
+ else
+   if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
+ fi;
+-echo "$as_me:5238: result: $with_overwrite" >&5
++echo "$as_me:5332: result: $with_overwrite" >&5
+ echo "${ECHO_T}$with_overwrite" >&6
+ 
+-echo "$as_me:5241: checking if external terminfo-database is used" >&5
++echo "$as_me:5335: checking if external terminfo-database is used" >&5
+ echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
+ 
+ # Check whether --enable-database or --disable-database was given.
+@@ -5248,7 +5342,7 @@
+ else
+   use_database=yes
+ fi;
+-echo "$as_me:5251: result: $use_database" >&5
++echo "$as_me:5345: result: $use_database" >&5
+ echo "${ECHO_T}$use_database" >&6
+ 
+ case $host_os in #(vi
+@@ -5270,7 +5364,7 @@
+ #define USE_DATABASE 1
+ EOF
+ 
+-	echo "$as_me:5273: checking which terminfo source-file will be installed" >&5
++	echo "$as_me:5367: checking which terminfo source-file will be installed" >&5
+ echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
+ 
+ # Check whether --enable-database or --disable-database was given.
+@@ -5278,10 +5372,10 @@
+   enableval="$enable_database"
+   TERMINFO_SRC=$withval
+ fi;
+-	echo "$as_me:5281: result: $TERMINFO_SRC" >&5
++	echo "$as_me:5375: result: $TERMINFO_SRC" >&5
+ echo "${ECHO_T}$TERMINFO_SRC" >&6
+ 
+-	echo "$as_me:5284: checking whether to use hashed database instead of directory/tree" >&5
++	echo "$as_me:5378: checking whether to use hashed database instead of directory/tree" >&5
+ echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
+ 
+ # Check whether --with-hashed-db or --without-hashed-db was given.
+@@ -5291,11 +5385,11 @@
+ else
+   with_hashed_db=no
+ fi;
+-	echo "$as_me:5294: result: $with_hashed_db" >&5
++	echo "$as_me:5388: result: $with_hashed_db" >&5
+ echo "${ECHO_T}$with_hashed_db" >&6
+ fi
+ 
+-echo "$as_me:5298: checking for list of fallback descriptions" >&5
++echo "$as_me:5392: checking for list of fallback descriptions" >&5
+ echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
+ 
+ # Check whether --with-fallbacks or --without-fallbacks was given.
+@@ -5305,11 +5399,11 @@
+ else
+   with_fallback=
+ fi;
+-echo "$as_me:5308: result: $with_fallback" >&5
++echo "$as_me:5402: result: $with_fallback" >&5
+ echo "${ECHO_T}$with_fallback" >&6
+ FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+ 
+-echo "$as_me:5312: checking if you want modern xterm or antique" >&5
++echo "$as_me:5406: checking if you want modern xterm or antique" >&5
+ echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
+ 
+ # Check whether --with-xterm-new or --without-xterm-new was given.
+@@ -5323,7 +5417,7 @@
+ no)	with_xterm_new=xterm-old;;
+ *)	with_xterm_new=xterm-new;;
+ esac
+-echo "$as_me:5326: result: $with_xterm_new" >&5
++echo "$as_me:5420: result: $with_xterm_new" >&5
+ echo "${ECHO_T}$with_xterm_new" >&6
+ WHICH_XTERM=$with_xterm_new
+ 
+@@ -5333,7 +5427,7 @@
+ 	MAKE_TERMINFO="#"
+ else
+ 
+-echo "$as_me:5336: checking for list of terminfo directories" >&5
++echo "$as_me:5430: checking for list of terminfo directories" >&5
+ echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
+ 
+ # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
+@@ -5373,7 +5467,7 @@
+   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:5376: error: expected a pathname, not \"$cf_src_path\"" >&5
++  { { echo "$as_me:5470: error: expected a pathname, not \"$cf_src_path\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -5386,13 +5480,13 @@
+ 
+ eval 'TERMINFO_DIRS="$cf_dst_path"'
+ 
+-echo "$as_me:5389: result: $TERMINFO_DIRS" >&5
++echo "$as_me:5483: result: $TERMINFO_DIRS" >&5
+ echo "${ECHO_T}$TERMINFO_DIRS" >&6
+ test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
+ #define TERMINFO_DIRS "$TERMINFO_DIRS"
+ EOF
+ 
+-echo "$as_me:5395: checking for default terminfo directory" >&5
++echo "$as_me:5489: checking for default terminfo directory" >&5
+ echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
+ 
+ # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
+@@ -5401,7 +5495,8 @@
+ 
+ else
+   withval="${TERMINFO-${datadir}/terminfo}"
+-fi;
++fi; if test -n "${datadir}/terminfo" ; then
++
+ if test "x$prefix" != xNONE; then
+   cf_path_syntax="$prefix"
+ else
+@@ -5427,15 +5522,16 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:5430: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:5525: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+ esac
+ 
++fi
+ TERMINFO="$withval"
+ 
+-echo "$as_me:5438: result: $TERMINFO" >&5
++echo "$as_me:5534: result: $TERMINFO" >&5
+ echo "${ECHO_T}$TERMINFO" >&6
+ cat >>confdefs.h <<EOF
+ #define TERMINFO "$TERMINFO"
+@@ -5445,7 +5541,7 @@
+ 
+ ###	use option --disable-big-core to make tic run on small machines
+ ###	We need 4Mb, check if we can allocate 50% more than that.
+-echo "$as_me:5448: checking if big-core option selected" >&5
++echo "$as_me:5544: checking if big-core option selected" >&5
+ echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
+ 
+ # Check whether --enable-big-core or --disable-big-core was given.
+@@ -5457,7 +5553,7 @@
+   with_big_core=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5460 "configure"
++#line 5556 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -5471,15 +5567,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5474: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5570: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5477: \$? = $ac_status" >&5
++  echo "$as_me:5573: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:5479: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5575: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5482: \$? = $ac_status" >&5
++  echo "$as_me:5578: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   with_big_core=yes
+ else
+@@ -5491,14 +5587,32 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi;
+-echo "$as_me:5494: result: $with_big_core" >&5
++echo "$as_me:5590: result: $with_big_core" >&5
+ echo "${ECHO_T}$with_big_core" >&6
+ test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
+ #define HAVE_BIG_CORE 1
+ EOF
+ 
++### ISO C only guarantees 512-char strings, we have tables which load faster
++### when constructed using "big" strings.
++echo "$as_me:5598: checking if big-strings option selected" >&5
++echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
++
++# Check whether --enable-big-strings or --disable-big-strings was given.
++if test "${enable_big_strings+set}" = set; then
++  enableval="$enable_big_strings"
++  with_big_strings=no
++else
++  with_big_strings=yes
++fi;
++echo "$as_me:5608: result: $with_big_strings" >&5
++echo "${ECHO_T}$with_big_strings" >&6
++
++USE_BIG_STRINGS=0
++test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
++
+ ###	use option --enable-termcap to compile in the termcap fallback support
+-echo "$as_me:5501: checking if you want termcap-fallback support" >&5
++echo "$as_me:5615: checking if you want termcap-fallback support" >&5
+ echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
+ 
+ # Check whether --enable-termcap or --disable-termcap was given.
+@@ -5508,13 +5622,13 @@
+ else
+   with_termcap=no
+ fi;
+-echo "$as_me:5511: result: $with_termcap" >&5
++echo "$as_me:5625: result: $with_termcap" >&5
+ echo "${ECHO_T}$with_termcap" >&6
+ 
+ if test "$with_termcap" != "yes" ; then
+ 	if test "$use_database" = no ; then
+ 		if test -z "$with_fallback" ; then
+-			{ { echo "$as_me:5517: error: You have disabled the database w/o specifying fallbacks" >&5
++			{ { echo "$as_me:5631: error: You have disabled the database w/o specifying fallbacks" >&5
+ echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
+    { (exit 1); exit 1; }; }
+ 		fi
+@@ -5525,11 +5639,17 @@
+ 
+ else
+ 
++if test "$with_ticlib" != no ; then
++	{ { echo "$as_me:5643: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
++echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
++   { (exit 1); exit 1; }; }
++fi
++
+ cat >>confdefs.h <<\EOF
+ #define USE_TERMCAP 1
+ EOF
+ 
+-echo "$as_me:5532: checking for list of termcap files" >&5
++echo "$as_me:5652: checking for list of termcap files" >&5
+ echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
+ 
+ # Check whether --with-termpath or --without-termpath was given.
+@@ -5569,7 +5689,7 @@
+   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:5572: error: expected a pathname, not \"$cf_src_path\"" >&5
++  { { echo "$as_me:5692: error: expected a pathname, not \"$cf_src_path\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -5582,14 +5702,14 @@
+ 
+ eval 'TERMPATH="$cf_dst_path"'
+ 
+-echo "$as_me:5585: result: $TERMPATH" >&5
++echo "$as_me:5705: result: $TERMPATH" >&5
+ echo "${ECHO_T}$TERMPATH" >&6
+ test -n "$TERMPATH" && cat >>confdefs.h <<EOF
+ #define TERMPATH "$TERMPATH"
+ EOF
+ 
+ ###	use option --enable-getcap to use a hacked getcap for reading termcaps
+-echo "$as_me:5592: checking if fast termcap-loader is needed" >&5
++echo "$as_me:5712: checking if fast termcap-loader is needed" >&5
+ echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
+ 
+ # Check whether --enable-getcap or --disable-getcap was given.
+@@ -5599,13 +5719,13 @@
+ else
+   with_getcap=no
+ fi;
+-echo "$as_me:5602: result: $with_getcap" >&5
++echo "$as_me:5722: result: $with_getcap" >&5
+ echo "${ECHO_T}$with_getcap" >&6
+ test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
+ #define USE_GETCAP 1
+ EOF
+ 
+-echo "$as_me:5608: checking if translated termcaps will be cached in ~/.terminfo" >&5
++echo "$as_me:5728: checking if translated termcaps will be cached in ~/.terminfo" >&5
+ echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
+ 
+ # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
+@@ -5615,7 +5735,7 @@
+ else
+   with_getcap_cache=no
+ fi;
+-echo "$as_me:5618: result: $with_getcap_cache" >&5
++echo "$as_me:5738: result: $with_getcap_cache" >&5
+ echo "${ECHO_T}$with_getcap_cache" >&6
+ test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
+ #define USE_GETCAP_CACHE 1
+@@ -5624,7 +5744,7 @@
+ fi
+ 
+ ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
+-echo "$as_me:5627: checking if ~/.terminfo is wanted" >&5
++echo "$as_me:5747: checking if ~/.terminfo is wanted" >&5
+ echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
+ 
+ # Check whether --enable-home-terminfo or --disable-home-terminfo was given.
+@@ -5634,13 +5754,13 @@
+ else
+   with_home_terminfo=yes
+ fi;
+-echo "$as_me:5637: result: $with_home_terminfo" >&5
++echo "$as_me:5757: result: $with_home_terminfo" >&5
+ echo "${ECHO_T}$with_home_terminfo" >&6
+ test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
+ #define USE_HOME_TERMINFO 1
+ EOF
+ 
+-echo "$as_me:5643: checking if you want to use restricted environment when running as root" >&5
++echo "$as_me:5763: checking if you want to use restricted environment when running as root" >&5
+ echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
+ 
+ # Check whether --enable-root-environ or --disable-root-environ was given.
+@@ -5650,7 +5770,7 @@
+ else
+   with_root_environ=yes
+ fi;
+-echo "$as_me:5653: result: $with_root_environ" >&5
++echo "$as_me:5773: result: $with_root_environ" >&5
+ echo "${ECHO_T}$with_root_environ" >&6
+ test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
+ #define USE_ROOT_ENVIRON 1
+@@ -5664,13 +5784,13 @@
+ 	unlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:5667: checking for $ac_func" >&5
++echo "$as_me:5787: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5673 "configure"
++#line 5793 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -5701,16 +5821,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5704: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5824: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5707: \$? = $ac_status" >&5
++  echo "$as_me:5827: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5710: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5830: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5713: \$? = $ac_status" >&5
++  echo "$as_me:5833: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -5720,7 +5840,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5723: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:5843: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -5737,13 +5857,13 @@
+ 		symlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:5740: checking for $ac_func" >&5
++echo "$as_me:5860: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5746 "configure"
++#line 5866 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -5774,16 +5894,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5777: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5897: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5780: \$? = $ac_status" >&5
++  echo "$as_me:5900: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5783: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5903: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5786: \$? = $ac_status" >&5
++  echo "$as_me:5906: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -5793,7 +5913,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5796: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:5916: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -5804,7 +5924,7 @@
+ done
+ 
+ else
+-	echo "$as_me:5807: checking if link/symlink functions work" >&5
++	echo "$as_me:5927: checking if link/symlink functions work" >&5
+ echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
+ if test "${cf_cv_link_funcs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5817,7 +5937,7 @@
+ 			eval 'ac_cv_func_'$cf_func'=error'
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5820 "configure"
++#line 5940 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -5847,15 +5967,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5850: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5970: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5853: \$? = $ac_status" >&5
++  echo "$as_me:5973: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:5855: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5975: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5858: \$? = $ac_status" >&5
++  echo "$as_me:5978: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 			cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
+@@ -5873,7 +5993,7 @@
+ 		test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
+ 
+ fi
+-echo "$as_me:5876: result: $cf_cv_link_funcs" >&5
++echo "$as_me:5996: result: $cf_cv_link_funcs" >&5
+ echo "${ECHO_T}$cf_cv_link_funcs" >&6
+ 	test "$ac_cv_func_link"    = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_LINK 1
+@@ -5891,7 +6011,7 @@
+ # soft links (symbolic links) are useful for some systems where hard links do
+ # not work, or to make it simpler to copy terminfo trees around.
+ if test "$ac_cv_func_symlink" = yes ; then
+-    echo "$as_me:5894: checking if tic should use symbolic links" >&5
++    echo "$as_me:6014: checking if tic should use symbolic links" >&5
+ echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
+ 
+ # Check whether --enable-symlinks or --disable-symlinks was given.
+@@ -5901,21 +6021,21 @@
+ else
+   with_symlinks=no
+ fi;
+-    echo "$as_me:5904: result: $with_symlinks" >&5
++    echo "$as_me:6024: result: $with_symlinks" >&5
+ echo "${ECHO_T}$with_symlinks" >&6
+ fi
+ 
+ # If we have hard links and did not choose to use soft links instead, there is
+ # no reason to make this choice optional - use the hard links.
+ if test "$with_symlinks" = no ; then
+-    echo "$as_me:5911: checking if tic should use hard links" >&5
++    echo "$as_me:6031: checking if tic should use hard links" >&5
+ echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
+     if test "$ac_cv_func_link" = yes ; then
+ 	with_links=yes
+     else
+ 	with_links=no
+     fi
+-    echo "$as_me:5918: result: $with_links" >&5
++    echo "$as_me:6038: result: $with_links" >&5
+ echo "${ECHO_T}$with_links" >&6
+ fi
+ 
+@@ -5928,7 +6048,7 @@
+ EOF
+ 
+ ###   use option --enable-broken-linker to force on use of broken-linker support
+-echo "$as_me:5931: checking if you want broken-linker support code" >&5
++echo "$as_me:6051: checking if you want broken-linker support code" >&5
+ echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
+ 
+ # Check whether --enable-broken_linker or --disable-broken_linker was given.
+@@ -5938,7 +6058,7 @@
+ else
+   with_broken_linker=${BROKEN_LINKER-no}
+ fi;
+-echo "$as_me:5941: result: $with_broken_linker" >&5
++echo "$as_me:6061: result: $with_broken_linker" >&5
+ echo "${ECHO_T}$with_broken_linker" >&6
+ 
+ BROKEN_LINKER=0
+@@ -5958,12 +6078,14 @@
+ 		BROKEN_LINKER=1
+ 		test -n "$verbose" && echo "	cygwin linker is broken anyway" 1>&6
+ 
++echo "${as_me-configure}:6081: testing cygwin linker is broken anyway ..." 1>&5
++
+ 		;;
+ 	esac
+ fi
+ 
+ ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
+-echo "$as_me:5966: checking if tputs should process BSD-style prefix padding" >&5
++echo "$as_me:6088: checking if tputs should process BSD-style prefix padding" >&5
+ echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
+ 
+ # Check whether --enable-bsdpad or --disable-bsdpad was given.
+@@ -5973,7 +6095,7 @@
+ else
+   with_bsdpad=no
+ fi;
+-echo "$as_me:5976: result: $with_bsdpad" >&5
++echo "$as_me:6098: result: $with_bsdpad" >&5
+ echo "${ECHO_T}$with_bsdpad" >&6
+ test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
+ #define BSD_TPUTS 1
+@@ -5990,7 +6112,7 @@
+ 
+ # Check to define _XOPEN_SOURCE "automatically"
+ 
+-echo "$as_me:5993: checking if $CC -U and -D options work together" >&5
++echo "$as_me:6115: checking if $CC -U and -D options work together" >&5
+ echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
+ if test "${cf_cv_cc_u_d_options+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5999,7 +6121,7 @@
+ 	cf_save_CPPFLAGS="$CPPFLAGS"
+ 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6002 "configure"
++#line 6124 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -6018,16 +6140,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6021: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6143: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6024: \$? = $ac_status" >&5
++  echo "$as_me:6146: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6027: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6149: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6030: \$? = $ac_status" >&5
++  echo "$as_me:6152: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_cc_u_d_options=yes
+@@ -6041,7 +6163,7 @@
+ 	CPPFLAGS="$cf_save_CPPFLAGS"
+ 
+ fi
+-echo "$as_me:6044: result: $cf_cv_cc_u_d_options" >&5
++echo "$as_me:6166: result: $cf_cv_cc_u_d_options" >&5
+ echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
+ 
+ cf_XOPEN_SOURCE=500
+@@ -6065,16 +6187,16 @@
+ irix[56].*) #(vi
+ 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ 	;;
+-linux*|gnu*) #(vi
++linux*|gnu*|k*bsd*-gnu) #(vi
+ 
+-echo "$as_me:6070: checking if we must define _GNU_SOURCE" >&5
++echo "$as_me:6192: checking if we must define _GNU_SOURCE" >&5
+ echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_gnu_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6077 "configure"
++#line 6199 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6089,16 +6211,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6092: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6214: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6095: \$? = $ac_status" >&5
++  echo "$as_me:6217: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6098: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6220: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6101: \$? = $ac_status" >&5
++  echo "$as_me:6223: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -6107,7 +6229,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 6110 "configure"
++#line 6232 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6122,16 +6244,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6125: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6247: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6128: \$? = $ac_status" >&5
++  echo "$as_me:6250: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6131: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6253: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6134: \$? = $ac_status" >&5
++  echo "$as_me:6256: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -6146,7 +6268,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:6149: result: $cf_cv_gnu_source" >&5
++echo "$as_me:6271: result: $cf_cv_gnu_source" >&5
+ echo "${ECHO_T}$cf_cv_gnu_source" >&6
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 
+@@ -6173,14 +6295,14 @@
+ 	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+ 	;;
+ *)
+-	echo "$as_me:6176: checking if we should define _XOPEN_SOURCE" >&5
++	echo "$as_me:6298: checking if we should define _XOPEN_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_xopen_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6183 "configure"
++#line 6305 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6195,16 +6317,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6198: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6320: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6201: \$? = $ac_status" >&5
++  echo "$as_me:6323: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6204: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6326: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6207: \$? = $ac_status" >&5
++  echo "$as_me:6329: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -6213,7 +6335,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 6216 "configure"
++#line 6338 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6228,16 +6350,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6231: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6353: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6234: \$? = $ac_status" >&5
++  echo "$as_me:6356: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6237: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6359: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6240: \$? = $ac_status" >&5
++  echo "$as_me:6362: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -6252,7 +6374,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:6255: result: $cf_cv_xopen_source" >&5
++echo "$as_me:6377: result: $cf_cv_xopen_source" >&5
+ echo "${ECHO_T}$cf_cv_xopen_source" >&6
+ 	if test "$cf_cv_xopen_source" != no ; then
+ 
+@@ -6286,16 +6408,16 @@
+ 	sed	-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
+ 		-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?$//g'`
+ 
+-echo "$as_me:6289: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:6411: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+-echo "(line 6295) testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me-configure}:6417: testing if the symbol is already defined go no further ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6298 "configure"
++#line 6420 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6310,16 +6432,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6313: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6435: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6316: \$? = $ac_status" >&5
++  echo "$as_me:6438: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6319: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6441: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6322: \$? = $ac_status" >&5
++  echo "$as_me:6444: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_posix_c_source=no
+ else
+@@ -6340,7 +6462,7 @@
+ 	 esac
+ 	 if test "$cf_want_posix_source" = yes ; then
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 6343 "configure"
++#line 6465 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6355,16 +6477,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6358: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6480: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6361: \$? = $ac_status" >&5
++  echo "$as_me:6483: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6364: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6486: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6367: \$? = $ac_status" >&5
++  echo "$as_me:6489: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6375,15 +6497,15 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 	 fi
+ 
+-echo "(line 6378) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me-configure}:6500: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+ 
+ 	 CFLAGS="$cf_trim_CFLAGS"
+ 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+ 
+-echo "(line 6383) testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me-configure}:6505: testing if the second compile does not leave our definition intact error ..." 1>&5
+ 
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 6386 "configure"
++#line 6508 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -6398,16 +6520,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6401: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6523: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6404: \$? = $ac_status" >&5
++  echo "$as_me:6526: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6407: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6529: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6410: \$? = $ac_status" >&5
++  echo "$as_me:6532: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6423,7 +6545,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:6426: result: $cf_cv_posix_c_source" >&5
++echo "$as_me:6548: result: $cf_cv_posix_c_source" >&5
+ echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+ 
+ if test "$cf_cv_posix_c_source" != no ; then
+@@ -6442,14 +6564,14 @@
+ 
+ # Work around breakage on OS X
+ 
+-echo "$as_me:6445: checking if SIGWINCH is defined" >&5
++echo "$as_me:6567: checking if SIGWINCH is defined" >&5
+ echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
+ if test "${cf_cv_define_sigwinch+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6452 "configure"
++#line 6574 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -6464,23 +6586,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6467: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6589: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6470: \$? = $ac_status" >&5
++  echo "$as_me:6592: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6473: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6595: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6476: \$? = $ac_status" >&5
++  echo "$as_me:6598: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_define_sigwinch=yes
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6483 "configure"
++#line 6605 "configure"
+ #include "confdefs.h"
+ 
+ #undef _XOPEN_SOURCE
+@@ -6498,16 +6620,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6501: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6623: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6504: \$? = $ac_status" >&5
++  echo "$as_me:6626: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6507: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6629: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6510: \$? = $ac_status" >&5
++  echo "$as_me:6632: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_define_sigwinch=maybe
+ else
+@@ -6521,11 +6643,11 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:6524: result: $cf_cv_define_sigwinch" >&5
++echo "$as_me:6646: result: $cf_cv_define_sigwinch" >&5
+ echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
+ 
+ if test "$cf_cv_define_sigwinch" = maybe ; then
+-echo "$as_me:6528: checking for actual SIGWINCH definition" >&5
++echo "$as_me:6650: checking for actual SIGWINCH definition" >&5
+ echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
+ if test "${cf_cv_fixup_sigwinch+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6536,7 +6658,7 @@
+ while test $cf_sigwinch != 1
+ do
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6539 "configure"
++#line 6661 "configure"
+ #include "confdefs.h"
+ 
+ #undef _XOPEN_SOURCE
+@@ -6558,16 +6680,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6561: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6683: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6564: \$? = $ac_status" >&5
++  echo "$as_me:6686: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6567: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6689: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6570: \$? = $ac_status" >&5
++  echo "$as_me:6692: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_fixup_sigwinch=$cf_sigwinch
+ 	 break
+@@ -6581,7 +6703,7 @@
+ done
+ 
+ fi
+-echo "$as_me:6584: result: $cf_cv_fixup_sigwinch" >&5
++echo "$as_me:6706: result: $cf_cv_fixup_sigwinch" >&5
+ echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
+ 
+ 	if test "$cf_cv_fixup_sigwinch" != unknown ; then
+@@ -6591,13 +6713,13 @@
+ 
+ # Checks for CODESET support.
+ 
+-  echo "$as_me:6594: checking for nl_langinfo and CODESET" >&5
++  echo "$as_me:6716: checking for nl_langinfo and CODESET" >&5
+ echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
+ if test "${am_cv_langinfo_codeset+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6600 "configure"
++#line 6722 "configure"
+ #include "confdefs.h"
+ #include <langinfo.h>
+ int
+@@ -6609,16 +6731,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6612: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6734: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6615: \$? = $ac_status" >&5
++  echo "$as_me:6737: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6618: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6740: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6621: \$? = $ac_status" >&5
++  echo "$as_me:6743: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   am_cv_langinfo_codeset=yes
+ else
+@@ -6629,7 +6751,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:6632: result: $am_cv_langinfo_codeset" >&5
++echo "$as_me:6754: result: $am_cv_langinfo_codeset" >&5
+ echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
+   if test $am_cv_langinfo_codeset = yes; then
+ 
+@@ -6643,7 +6765,7 @@
+ NCURSES_OK_WCHAR_T=
+ NCURSES_OK_WINT_T=
+ 
+-echo "$as_me:6646: checking if you want wide-character code" >&5
++echo "$as_me:6768: checking if you want wide-character code" >&5
+ echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
+ 
+ # Check whether --enable-widec or --disable-widec was given.
+@@ -6653,7 +6775,7 @@
+ else
+   with_widec=no
+ fi;
+-echo "$as_me:6656: result: $with_widec" >&5
++echo "$as_me:6778: result: $with_widec" >&5
+ echo "${ECHO_T}$with_widec" >&6
+ if test "$with_widec" = yes ; then
+ 	LIB_SUFFIX="w${LIB_SUFFIX}"
+@@ -6661,10 +6783,10 @@
+ #define USE_WIDEC_SUPPORT 1
+ EOF
+ 
+-echo "$as_me:6664: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
++echo "$as_me:6786: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+ echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6667 "configure"
++#line 6789 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ 
+@@ -6680,16 +6802,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6683: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6805: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6686: \$? = $ac_status" >&5
++  echo "$as_me:6808: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6689: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6811: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6692: \$? = $ac_status" >&5
++  echo "$as_me:6814: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=no
+ else
+@@ -6698,16 +6820,16 @@
+ cf_result=yes
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:6701: result: $cf_result" >&5
++echo "$as_me:6823: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 
+ if test "$cf_result" = yes ; then
+ 	CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+ elif test "x" != "x" ; then
+-	echo "$as_me:6707: checking checking for compatible value versus " >&5
++	echo "$as_me:6829: checking checking for compatible value versus " >&5
+ echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6710 "configure"
++#line 6832 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ 
+@@ -6723,16 +6845,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6726: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6848: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6729: \$? = $ac_status" >&5
++  echo "$as_me:6851: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6732: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6854: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6735: \$? = $ac_status" >&5
++  echo "$as_me:6857: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -6741,7 +6863,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-	echo "$as_me:6744: result: $cf_result" >&5
++	echo "$as_me:6866: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 	if test "$cf_result" = no ; then
+ 		# perhaps we can override it - try...
+@@ -6755,13 +6877,13 @@
+ for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:6758: checking for $ac_func" >&5
++echo "$as_me:6880: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6764 "configure"
++#line 6886 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -6792,16 +6914,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6795: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6917: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6798: \$? = $ac_status" >&5
++  echo "$as_me:6920: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6801: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6923: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6804: \$? = $ac_status" >&5
++  echo "$as_me:6926: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -6811,7 +6933,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6814: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:6936: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -6823,7 +6945,7 @@
+ 
+ 	if test "$ac_cv_func_putwc" != yes ; then
+ 
+-echo "$as_me:6826: checking for putwc in libutf8" >&5
++echo "$as_me:6948: checking for putwc in libutf8" >&5
+ echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
+ if test "${cf_cv_libutf8+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6832,7 +6954,7 @@
+ 	cf_save_LIBS="$LIBS"
+ 	LIBS="-lutf8 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6835 "configure"
++#line 6957 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -6845,16 +6967,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6848: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6970: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6851: \$? = $ac_status" >&5
++  echo "$as_me:6973: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6854: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6976: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6857: \$? = $ac_status" >&5
++  echo "$as_me:6979: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_libutf8=yes
+ else
+@@ -6866,7 +6988,7 @@
+ 	LIBS="$cf_save_LIBS"
+ 
+ fi
+-echo "$as_me:6869: result: $cf_cv_libutf8" >&5
++echo "$as_me:6991: result: $cf_cv_libutf8" >&5
+ echo "${ECHO_T}$cf_cv_libutf8" >&6
+ 
+ if test "$cf_cv_libutf8" = yes ; then
+@@ -6883,14 +7005,14 @@
+ 	fi
+ 
+ # This is needed on Tru64 5.0 to declare mbstate_t
+-echo "$as_me:6886: checking if we must include wchar.h to declare mbstate_t" >&5
++echo "$as_me:7008: checking if we must include wchar.h to declare mbstate_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+ if test "${cf_cv_mbstate_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6893 "configure"
++#line 7015 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -6908,23 +7030,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6911: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7033: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6914: \$? = $ac_status" >&5
++  echo "$as_me:7036: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6917: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7039: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6920: \$? = $ac_status" >&5
++  echo "$as_me:7042: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_mbstate_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6927 "configure"
++#line 7049 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -6943,16 +7065,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6946: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7068: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6949: \$? = $ac_status" >&5
++  echo "$as_me:7071: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6952: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7074: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6955: \$? = $ac_status" >&5
++  echo "$as_me:7077: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_mbstate_t=yes
+ else
+@@ -6964,7 +7086,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:6967: result: $cf_cv_mbstate_t" >&5
++echo "$as_me:7089: result: $cf_cv_mbstate_t" >&5
+ echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+ 
+ if test "$cf_cv_mbstate_t" = yes ; then
+@@ -6981,14 +7103,14 @@
+ fi
+ 
+ # This is needed on Tru64 5.0 to declare wchar_t
+-echo "$as_me:6984: checking if we must include wchar.h to declare wchar_t" >&5
++echo "$as_me:7106: checking if we must include wchar.h to declare wchar_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
+ if test "${cf_cv_wchar_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6991 "configure"
++#line 7113 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -7006,23 +7128,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7009: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7131: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7012: \$? = $ac_status" >&5
++  echo "$as_me:7134: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7015: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7137: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7018: \$? = $ac_status" >&5
++  echo "$as_me:7140: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wchar_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7025 "configure"
++#line 7147 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -7041,16 +7163,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7044: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7166: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7047: \$? = $ac_status" >&5
++  echo "$as_me:7169: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7050: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7172: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7053: \$? = $ac_status" >&5
++  echo "$as_me:7175: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wchar_t=yes
+ else
+@@ -7062,7 +7184,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:7065: result: $cf_cv_wchar_t" >&5
++echo "$as_me:7187: result: $cf_cv_wchar_t" >&5
+ echo "${ECHO_T}$cf_cv_wchar_t" >&6
+ 
+ if test "$cf_cv_wchar_t" = yes ; then
+@@ -7084,14 +7206,14 @@
+ fi
+ 
+ # This is needed on Tru64 5.0 to declare wint_t
+-echo "$as_me:7087: checking if we must include wchar.h to declare wint_t" >&5
++echo "$as_me:7209: checking if we must include wchar.h to declare wint_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
+ if test "${cf_cv_wint_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7094 "configure"
++#line 7216 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -7109,23 +7231,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7112: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7234: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7115: \$? = $ac_status" >&5
++  echo "$as_me:7237: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7118: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7240: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7121: \$? = $ac_status" >&5
++  echo "$as_me:7243: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wint_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7128 "configure"
++#line 7250 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -7144,16 +7266,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7147: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7269: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7150: \$? = $ac_status" >&5
++  echo "$as_me:7272: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7153: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7275: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7156: \$? = $ac_status" >&5
++  echo "$as_me:7278: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wint_t=yes
+ else
+@@ -7165,7 +7287,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:7168: result: $cf_cv_wint_t" >&5
++echo "$as_me:7290: result: $cf_cv_wint_t" >&5
+ echo "${ECHO_T}$cf_cv_wint_t" >&6
+ 
+ if test "$cf_cv_wint_t" = yes ; then
+@@ -7204,7 +7326,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:7207: checking whether to enable _LP64 definition in curses.h" >&5
++echo "$as_me:7329: checking whether to enable _LP64 definition in curses.h" >&5
+ echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
+ 
+ # Check whether --enable-lp64 or --disable-lp64 was given.
+@@ -7214,7 +7336,7 @@
+ else
+   with_lp64=$default_with_lp64
+ fi;
+-echo "$as_me:7217: result: $with_lp64" >&5
++echo "$as_me:7339: result: $with_lp64" >&5
+ echo "${ECHO_T}$with_lp64" >&6
+ 
+ if test "$with_lp64" = yes ; then
+@@ -7230,7 +7352,7 @@
+ fi;
+ if test "$enable_largefile" != no; then
+ 
+-  echo "$as_me:7233: checking for special C compiler options needed for large files" >&5
++  echo "$as_me:7355: checking for special C compiler options needed for large files" >&5
+ echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7242,7 +7364,7 @@
+      	 # IRIX 6.2 and later do not support large files by default,
+      	 # so use the C compiler's -n32 option if that helps.
+          cat >conftest.$ac_ext <<_ACEOF
+-#line 7245 "configure"
++#line 7367 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -7262,16 +7384,16 @@
+ }
+ _ACEOF
+      	 rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7265: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7387: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7268: \$? = $ac_status" >&5
++  echo "$as_me:7390: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7271: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7393: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7274: \$? = $ac_status" >&5
++  echo "$as_me:7396: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7281,16 +7403,16 @@
+ rm -f conftest.$ac_objext
+      	 CC="$CC -n32"
+      	 rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7284: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7406: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7287: \$? = $ac_status" >&5
++  echo "$as_me:7409: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7290: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7412: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7293: \$? = $ac_status" >&5
++  echo "$as_me:7415: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_largefile_CC=' -n32'; break
+ else
+@@ -7304,13 +7426,13 @@
+        rm -f conftest.$ac_ext
+     fi
+ fi
+-echo "$as_me:7307: result: $ac_cv_sys_largefile_CC" >&5
++echo "$as_me:7429: result: $ac_cv_sys_largefile_CC" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+   if test "$ac_cv_sys_largefile_CC" != no; then
+     CC=$CC$ac_cv_sys_largefile_CC
+   fi
+ 
+-  echo "$as_me:7313: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++  echo "$as_me:7435: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7318,7 +7440,7 @@
+   while :; do
+   ac_cv_sys_file_offset_bits=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7321 "configure"
++#line 7443 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -7338,16 +7460,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7341: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7463: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7344: \$? = $ac_status" >&5
++  echo "$as_me:7466: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7347: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7469: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7350: \$? = $ac_status" >&5
++  echo "$as_me:7472: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7356,7 +7478,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7359 "configure"
++#line 7481 "configure"
+ #include "confdefs.h"
+ #define _FILE_OFFSET_BITS 64
+ #include <sys/types.h>
+@@ -7377,16 +7499,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7380: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7502: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7383: \$? = $ac_status" >&5
++  echo "$as_me:7505: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7386: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7508: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7389: \$? = $ac_status" >&5
++  echo "$as_me:7511: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_file_offset_bits=64; break
+ else
+@@ -7397,7 +7519,7 @@
+   break
+ done
+ fi
+-echo "$as_me:7400: result: $ac_cv_sys_file_offset_bits" >&5
++echo "$as_me:7522: result: $ac_cv_sys_file_offset_bits" >&5
+ echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+ if test "$ac_cv_sys_file_offset_bits" != no; then
+ 
+@@ -7407,7 +7529,7 @@
+ 
+ fi
+ rm -f conftest*
+-  echo "$as_me:7410: checking for _LARGE_FILES value needed for large files" >&5
++  echo "$as_me:7532: checking for _LARGE_FILES value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_large_files+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7415,7 +7537,7 @@
+   while :; do
+   ac_cv_sys_large_files=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7418 "configure"
++#line 7540 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -7435,16 +7557,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7438: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7560: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7441: \$? = $ac_status" >&5
++  echo "$as_me:7563: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7444: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7566: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7447: \$? = $ac_status" >&5
++  echo "$as_me:7569: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7453,7 +7575,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7456 "configure"
++#line 7578 "configure"
+ #include "confdefs.h"
+ #define _LARGE_FILES 1
+ #include <sys/types.h>
+@@ -7474,16 +7596,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7477: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7599: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7480: \$? = $ac_status" >&5
++  echo "$as_me:7602: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7483: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7605: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7486: \$? = $ac_status" >&5
++  echo "$as_me:7608: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_large_files=1; break
+ else
+@@ -7494,7 +7616,7 @@
+   break
+ done
+ fi
+-echo "$as_me:7497: result: $ac_cv_sys_large_files" >&5
++echo "$as_me:7619: result: $ac_cv_sys_large_files" >&5
+ echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+ if test "$ac_cv_sys_large_files" != no; then
+ 
+@@ -7507,7 +7629,7 @@
+ fi
+ 
+     if test "$enable_largefile" != no ; then
+-	echo "$as_me:7510: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++	echo "$as_me:7632: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7515,7 +7637,7 @@
+   while :; do
+   ac_cv_sys_largefile_source=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7518 "configure"
++#line 7640 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7527,16 +7649,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7530: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7652: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7533: \$? = $ac_status" >&5
++  echo "$as_me:7655: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7536: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7658: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7539: \$? = $ac_status" >&5
++  echo "$as_me:7661: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7545,7 +7667,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7548 "configure"
++#line 7670 "configure"
+ #include "confdefs.h"
+ #define _LARGEFILE_SOURCE 1
+ #include <stdio.h>
+@@ -7558,16 +7680,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7561: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7683: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7564: \$? = $ac_status" >&5
++  echo "$as_me:7686: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7567: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7689: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7570: \$? = $ac_status" >&5
++  echo "$as_me:7692: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_largefile_source=1; break
+ else
+@@ -7578,7 +7700,7 @@
+   break
+ done
+ fi
+-echo "$as_me:7581: result: $ac_cv_sys_largefile_source" >&5
++echo "$as_me:7703: result: $ac_cv_sys_largefile_source" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+ if test "$ac_cv_sys_largefile_source" != no; then
+ 
+@@ -7592,13 +7714,13 @@
+ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+ # in glibc 2.1.3, but that breaks too many other things.
+ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-echo "$as_me:7595: checking for fseeko" >&5
++echo "$as_me:7717: checking for fseeko" >&5
+ echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+ if test "${ac_cv_func_fseeko+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7601 "configure"
++#line 7723 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7610,16 +7732,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7613: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7735: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7616: \$? = $ac_status" >&5
++  echo "$as_me:7738: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7619: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7741: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7622: \$? = $ac_status" >&5
++  echo "$as_me:7744: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_fseeko=yes
+ else
+@@ -7629,7 +7751,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:7632: result: $ac_cv_func_fseeko" >&5
++echo "$as_me:7754: result: $ac_cv_func_fseeko" >&5
+ echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+ if test $ac_cv_func_fseeko = yes; then
+ 
+@@ -7648,15 +7770,16 @@
+ 	# the config.h
+ 	test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+ 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
++	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
+ 
+-	echo "$as_me:7652: checking whether to use struct dirent64" >&5
++	echo "$as_me:7775: checking whether to use struct dirent64" >&5
+ echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
+ if test "${cf_cv_struct_dirent64+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 7659 "configure"
++#line 7782 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -7677,16 +7800,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7680: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7803: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7683: \$? = $ac_status" >&5
++  echo "$as_me:7806: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7686: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7809: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7689: \$? = $ac_status" >&5
++  echo "$as_me:7812: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_struct_dirent64=yes
+ else
+@@ -7697,7 +7820,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:7700: result: $cf_cv_struct_dirent64" >&5
++echo "$as_me:7823: result: $cf_cv_struct_dirent64" >&5
+ echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+ 	test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_STRUCT_DIRENT64 1
+@@ -7706,7 +7829,7 @@
+     fi
+ 
+ ###   use option --disable-tparm-varargs to make tparm() conform to X/Open
+-echo "$as_me:7709: checking if you want tparm not to use X/Open fixed-parameter list" >&5
++echo "$as_me:7832: checking if you want tparm not to use X/Open fixed-parameter list" >&5
+ echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
+ 
+ # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
+@@ -7716,13 +7839,13 @@
+ else
+   with_tparm_varargs=yes
+ fi;
+-echo "$as_me:7719: result: $with_tparm_varargs" >&5
++echo "$as_me:7842: result: $with_tparm_varargs" >&5
+ echo "${ECHO_T}$with_tparm_varargs" >&6
+ NCURSES_TPARM_VARARGS=0
+ test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
+ 
+ ###   use option --with-bool to override bool's type
+-echo "$as_me:7725: checking for type of bool" >&5
++echo "$as_me:7848: checking for type of bool" >&5
+ echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
+ 
+ # Check whether --with-bool or --without-bool was given.
+@@ -7732,10 +7855,10 @@
+ else
+   NCURSES_BOOL=auto
+ fi;
+-echo "$as_me:7735: result: $NCURSES_BOOL" >&5
++echo "$as_me:7858: result: $NCURSES_BOOL" >&5
+ echo "${ECHO_T}$NCURSES_BOOL" >&6
+ 
+-echo "$as_me:7738: checking for alternate terminal capabilities file" >&5
++echo "$as_me:7861: checking for alternate terminal capabilities file" >&5
+ echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
+ 
+ # Check whether --with-caps or --without-caps was given.
+@@ -7746,11 +7869,11 @@
+   TERMINFO_CAPS=Caps
+ fi;
+ test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
+-echo "$as_me:7749: result: $TERMINFO_CAPS" >&5
++echo "$as_me:7872: result: $TERMINFO_CAPS" >&5
+ echo "${ECHO_T}$TERMINFO_CAPS" >&6
+ 
+ ###   use option --with-chtype to override chtype's type
+-echo "$as_me:7753: checking for type of chtype" >&5
++echo "$as_me:7876: checking for type of chtype" >&5
+ echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+ 
+ # Check whether --with-chtype or --without-chtype was given.
+@@ -7760,11 +7883,11 @@
+ else
+   NCURSES_CHTYPE=auto
+ fi;
+-echo "$as_me:7763: result: $NCURSES_CHTYPE" >&5
++echo "$as_me:7886: result: $NCURSES_CHTYPE" >&5
+ echo "${ECHO_T}$NCURSES_CHTYPE" >&6
+ 
+ ###   use option --with-ospeed to override ospeed's type
+-echo "$as_me:7767: checking for type of ospeed" >&5
++echo "$as_me:7890: checking for type of ospeed" >&5
+ echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
+ 
+ # Check whether --with-ospeed or --without-ospeed was given.
+@@ -7774,11 +7897,11 @@
+ else
+   NCURSES_OSPEED=short
+ fi;
+-echo "$as_me:7777: result: $NCURSES_OSPEED" >&5
++echo "$as_me:7900: result: $NCURSES_OSPEED" >&5
+ echo "${ECHO_T}$NCURSES_OSPEED" >&6
+ 
+ ###   use option --with-mmask-t to override mmask_t's type
+-echo "$as_me:7781: checking for type of mmask_t" >&5
++echo "$as_me:7904: checking for type of mmask_t" >&5
+ echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
+ 
+ # Check whether --with-mmask-t or --without-mmask-t was given.
+@@ -7788,11 +7911,11 @@
+ else
+   NCURSES_MMASK_T=auto
+ fi;
+-echo "$as_me:7791: result: $NCURSES_MMASK_T" >&5
++echo "$as_me:7914: result: $NCURSES_MMASK_T" >&5
+ echo "${ECHO_T}$NCURSES_MMASK_T" >&6
+ 
+ ### Enable compiling-in rcs id's
+-echo "$as_me:7795: checking if RCS identifiers should be compiled-in" >&5
++echo "$as_me:7918: checking if RCS identifiers should be compiled-in" >&5
+ echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+ 
+ # Check whether --with-rcs-ids or --without-rcs-ids was given.
+@@ -7802,7 +7925,7 @@
+ else
+   with_rcs_ids=no
+ fi;
+-echo "$as_me:7805: result: $with_rcs_ids" >&5
++echo "$as_me:7928: result: $with_rcs_ids" >&5
+ echo "${ECHO_T}$with_rcs_ids" >&6
+ test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
+ #define USE_RCS_IDS 1
+@@ -7810,7 +7933,7 @@
+ 
+ ###############################################################################
+ 
+-echo "$as_me:7813: checking format of man-pages" >&5
++echo "$as_me:7936: checking format of man-pages" >&5
+ echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
+ 
+ # Check whether --with-manpage-format or --without-manpage-format was given.
+@@ -7899,14 +8022,14 @@
+   ;;
+ esac
+ 
+-echo "$as_me:7902: result: $MANPAGE_FORMAT" >&5
++echo "$as_me:8025: result: $MANPAGE_FORMAT" >&5
+ echo "${ECHO_T}$MANPAGE_FORMAT" >&6
+ if test -n "$cf_unknown" ; then
+-  { echo "$as_me:7905: WARNING: Unexpected manpage-format $cf_unknown" >&5
++  { echo "$as_me:8028: WARNING: Unexpected manpage-format $cf_unknown" >&5
+ echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+ fi
+ 
+-echo "$as_me:7909: checking for manpage renaming" >&5
++echo "$as_me:8032: checking for manpage renaming" >&5
+ echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
+ 
+ # Check whether --with-manpage-renames or --without-manpage-renames was given.
+@@ -7934,7 +8057,7 @@
+   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
+     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
+   elif test ! -f $MANPAGE_RENAMES ; then
+-    { { echo "$as_me:7937: error: not a filename: $MANPAGE_RENAMES" >&5
++    { { echo "$as_me:8060: error: not a filename: $MANPAGE_RENAMES" >&5
+ echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
+    { (exit 1); exit 1; }; }
+   fi
+@@ -7948,10 +8071,10 @@
+   fi
+ fi
+ 
+-echo "$as_me:7951: result: $MANPAGE_RENAMES" >&5
++echo "$as_me:8074: result: $MANPAGE_RENAMES" >&5
+ echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+ 
+-echo "$as_me:7954: checking if manpage aliases will be installed" >&5
++echo "$as_me:8077: checking if manpage aliases will be installed" >&5
+ echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
+ 
+ # Check whether --with-manpage-aliases or --without-manpage-aliases was given.
+@@ -7962,7 +8085,7 @@
+   MANPAGE_ALIASES=yes
+ fi;
+ 
+-echo "$as_me:7965: result: $MANPAGE_ALIASES" >&5
++echo "$as_me:8088: result: $MANPAGE_ALIASES" >&5
+ echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+ 
+ if test "$LN_S" = "ln -s"; then
+@@ -7973,7 +8096,7 @@
+ 
+ MANPAGE_SYMLINKS=no
+ if test "$MANPAGE_ALIASES" = yes ; then
+-echo "$as_me:7976: checking if manpage symlinks should be used" >&5
++echo "$as_me:8099: checking if manpage symlinks should be used" >&5
+ echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
+ 
+ # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
+@@ -7986,17 +8109,17 @@
+ 
+ if test "$$cf_use_symlinks" = no; then
+ if test "$MANPAGE_SYMLINKS" = yes ; then
+-	{ echo "$as_me:7989: WARNING: cannot make symlinks" >&5
++	{ echo "$as_me:8112: WARNING: cannot make symlinks" >&5
+ echo "$as_me: WARNING: cannot make symlinks" >&2;}
+ 	MANPAGE_SYMLINKS=no
+ fi
+ fi
+ 
+-echo "$as_me:7995: result: $MANPAGE_SYMLINKS" >&5
++echo "$as_me:8118: result: $MANPAGE_SYMLINKS" >&5
+ echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
+ fi
+ 
+-echo "$as_me:7999: checking for manpage tbl" >&5
++echo "$as_me:8122: checking for manpage tbl" >&5
+ echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
+ 
+ # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
+@@ -8007,7 +8130,7 @@
+   MANPAGE_TBL=no
+ fi;
+ 
+-echo "$as_me:8010: result: $MANPAGE_TBL" >&5
++echo "$as_me:8133: result: $MANPAGE_TBL" >&5
+ echo "${ECHO_T}$MANPAGE_TBL" >&6
+ 
+   if test "$prefix" = "NONE" ; then
+@@ -8047,6 +8170,7 @@
+ esac
+ 
+ cf_edit_man=./edit_man.sh
++cf_man_alias=`pwd`/man_alias.sed
+ 
+ cat >$cf_edit_man <<CF_EOF
+ #! /bin/sh
+@@ -8062,7 +8186,7 @@
+ NCURSES_OSPEED="$NCURSES_OSPEED"
+ TERMINFO="$TERMINFO"
+ 
+-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
++MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
+ 
+ INSTALL="$INSTALL"
+ INSTALL_DATA="$INSTALL_DATA"
+@@ -8110,8 +8234,34 @@
+ 		\$MKDIRS \$cf_subdir\$section
+ 	fi
+ 	fi
+-	aliases=
+-	cf_source=\`basename \$i\`
++
++	# replace variables in man page
++	if test ! -f $cf_man_alias ; then
++cat >>$cf_man_alias <<-CF_EOF2
++		s,@DATADIR@,\$datadir,g
++		s,@TERMINFO@,\$TERMINFO,g
++		s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
++		s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
++		s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
++		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
++CF_EOF
++
++	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
++	do
++		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++		cf_name=`echo $cf_name|sed "$program_transform_name"`
++cat >>$cf_edit_man <<-CF_EOF
++		s,@$cf_NAME@,$cf_name,
++CF_EOF
++	done
++
++cat >>$cf_edit_man <<CF_EOF
++CF_EOF2
++		echo "...made $cf_man_alias"
++	fi
++
++	aliases=
++	cf_source=\`basename \$i\`
+ 	inalias=\$cf_source
+ 	test ! -f \$inalias && inalias="\$srcdir/\$inalias"
+ 	if test ! -f \$inalias ; then
+@@ -8122,7 +8272,7 @@
+ 
+ if test "$MANPAGE_ALIASES" != no ; then
+ cat >>$cf_edit_man <<CF_EOF
+-	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
++	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
+ CF_EOF
+ fi
+ 
+@@ -8143,34 +8293,13 @@
+ 		cf_target="\$cf_source"
+ 	fi
+ 	cf_target="\$cf_subdir\${section}/\${cf_target}"
+-CF_EOF
+-fi
+-
+-	# replace variables in man page
+ 
+-	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+-	do
+-cat >>$cf_edit_man <<CF_EOF
+-	prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
+-CF_EOF
+-	done
+-
+-cat >>$cf_edit_man <<CF_EOF
+-	sed	-e "s,@DATADIR@,\$datadir," \\
+-		-e "s,@TERMINFO@,\$TERMINFO," \\
+-		-e "s,@NCURSES_MAJOR@,\$NCURSES_MAJOR," \\
+-		-e "s,@NCURSES_MINOR@,\$NCURSES_MINOR," \\
+-		-e "s,@NCURSES_PATCH@,\$NCURSES_PATCH," \\
+-		-e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
+ CF_EOF
++fi
+ 
+-	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+-	do
+-		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ cat >>$cf_edit_man <<CF_EOF
+-		-e "s,@$cf_NAME@,\$prog_$cf_name," \\
++	sed	-f $cf_man_alias \\
+ CF_EOF
+-	done
+ 
+ if test -f $MANPAGE_RENAMES ; then
+ cat >>$cf_edit_man <<CF_EOF
+@@ -8231,6 +8360,7 @@
+ 	if test \$verb = installing ; then
+ 		echo \$verb \$cf_target
+ 		\$INSTALL_DATA \$TMP \$cf_target
++		test -d \$cf_subdir\${section} &&
+ 		test -n "\$aliases" && (
+ 			cd \$cf_subdir\${section} && (
+ 				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
+@@ -8272,8 +8402,11 @@
+ 			)
+ 		)
+ 	elif test \$verb = removing ; then
+-		echo \$verb \$cf_target
+-		rm -f \$cf_target
++		test -f \$cf_target && (
++			echo \$verb \$cf_target
++			rm -f \$cf_target
++		)
++		test -d \$cf_subdir\${section} &&
+ 		test -n "\$aliases" && (
+ 			cd \$cf_subdir\${section} && (
+ 				for cf_alias in \$aliases
+@@ -8308,7 +8441,7 @@
+ ###############################################################################
+ 
+ ### Note that some functions (such as const) are normally disabled anyway.
+-echo "$as_me:8311: checking if you want to build with function extensions" >&5
++echo "$as_me:8444: checking if you want to build with function extensions" >&5
+ echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+@@ -8318,7 +8451,7 @@
+ else
+   with_ext_funcs=yes
+ fi;
+-echo "$as_me:8321: result: $with_ext_funcs" >&5
++echo "$as_me:8454: result: $with_ext_funcs" >&5
+ echo "${ECHO_T}$with_ext_funcs" >&6
+ if test "$with_ext_funcs" = yes ; then
+ 	NCURSES_EXT_FUNCS=1
+@@ -8355,7 +8488,7 @@
+ fi
+ 
+ ###   use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:8358: checking for extended use of const keyword" >&5
++echo "$as_me:8491: checking for extended use of const keyword" >&5
+ echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+ 
+ # Check whether --enable-const or --disable-const was given.
+@@ -8365,14 +8498,14 @@
+ else
+   with_ext_const=no
+ fi;
+-echo "$as_me:8368: result: $with_ext_const" >&5
++echo "$as_me:8501: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+ if test "$with_ext_const" = yes ; then
+ 	NCURSES_CONST=const
+ fi
+ 
+-echo "$as_me:8375: checking if you want \$NCURSES_NO_PADDING code" >&5
++echo "$as_me:8508: checking if you want \$NCURSES_NO_PADDING code" >&5
+ echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
+ 
+ # Check whether --enable-no-padding or --disable-no-padding was given.
+@@ -8382,19 +8515,19 @@
+ else
+   with_no_padding=$with_ext_funcs
+ fi;
+-echo "$as_me:8385: result: $with_no_padding" >&5
++echo "$as_me:8518: result: $with_no_padding" >&5
+ echo "${ECHO_T}$with_no_padding" >&6
+ test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
+ #define NCURSES_NO_PADDING 1
+ EOF
+ 
+-echo "$as_me:8391: checking for ANSI C header files" >&5
++echo "$as_me:8524: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8397 "configure"
++#line 8530 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -8402,13 +8535,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:8405: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:8538: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:8411: \$? = $ac_status" >&5
++  echo "$as_me:8544: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -8430,7 +8563,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8433 "configure"
++#line 8566 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -8448,7 +8581,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8451 "configure"
++#line 8584 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -8469,7 +8602,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8472 "configure"
++#line 8605 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -8495,15 +8628,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8498: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8631: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8501: \$? = $ac_status" >&5
++  echo "$as_me:8634: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:8503: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8636: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8506: \$? = $ac_status" >&5
++  echo "$as_me:8639: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8516,7 +8649,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:8519: result: $ac_cv_header_stdc" >&5
++echo "$as_me:8652: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -8532,28 +8665,28 @@
+                   inttypes.h stdint.h unistd.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:8535: checking for $ac_header" >&5
++echo "$as_me:8668: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8541 "configure"
++#line 8674 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8547: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8680: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8550: \$? = $ac_status" >&5
++  echo "$as_me:8683: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8553: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8686: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8556: \$? = $ac_status" >&5
++  echo "$as_me:8689: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Header=yes"
+ else
+@@ -8563,7 +8696,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8566: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:8699: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -8573,13 +8706,13 @@
+ fi
+ done
+ 
+-echo "$as_me:8576: checking for signed char" >&5
++echo "$as_me:8709: checking for signed char" >&5
+ echo $ECHO_N "checking for signed char... $ECHO_C" >&6
+ if test "${ac_cv_type_signed_char+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8582 "configure"
++#line 8715 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8594,16 +8727,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8730: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8600: \$? = $ac_status" >&5
++  echo "$as_me:8733: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8603: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8736: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8606: \$? = $ac_status" >&5
++  echo "$as_me:8739: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signed_char=yes
+ else
+@@ -8613,10 +8746,10 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8616: result: $ac_cv_type_signed_char" >&5
++echo "$as_me:8749: result: $ac_cv_type_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_type_signed_char" >&6
+ 
+-echo "$as_me:8619: checking size of signed char" >&5
++echo "$as_me:8752: checking size of signed char" >&5
+ echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_signed_char+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8625,7 +8758,7 @@
+   if test "$cross_compiling" = yes; then
+   # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8628 "configure"
++#line 8761 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8637,21 +8770,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8640: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8773: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8643: \$? = $ac_status" >&5
++  echo "$as_me:8776: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8646: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8779: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8649: \$? = $ac_status" >&5
++  echo "$as_me:8782: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_lo=0 ac_mid=0
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 8654 "configure"
++#line 8787 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8663,16 +8796,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8666: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8799: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8669: \$? = $ac_status" >&5
++  echo "$as_me:8802: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8672: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8805: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8675: \$? = $ac_status" >&5
++  echo "$as_me:8808: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_hi=$ac_mid; break
+ else
+@@ -8688,7 +8821,7 @@
+ ac_hi=-1 ac_mid=-1
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 8691 "configure"
++#line 8824 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8700,16 +8833,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8703: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8836: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8706: \$? = $ac_status" >&5
++  echo "$as_me:8839: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8709: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8842: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8712: \$? = $ac_status" >&5
++  echo "$as_me:8845: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_lo=$ac_mid; break
+ else
+@@ -8725,7 +8858,7 @@
+ while test "x$ac_lo" != "x$ac_hi"; do
+   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8728 "configure"
++#line 8861 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8737,16 +8870,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8740: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8873: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8743: \$? = $ac_status" >&5
++  echo "$as_me:8876: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8746: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8879: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8749: \$? = $ac_status" >&5
++  echo "$as_me:8882: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_hi=$ac_mid
+ else
+@@ -8759,12 +8892,12 @@
+ ac_cv_sizeof_signed_char=$ac_lo
+ else
+   if test "$cross_compiling" = yes; then
+-  { { echo "$as_me:8762: error: cannot run test program while cross compiling" >&5
++  { { echo "$as_me:8895: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8767 "configure"
++#line 8900 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -8780,15 +8913,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8916: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8786: \$? = $ac_status" >&5
++  echo "$as_me:8919: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:8788: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8921: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8791: \$? = $ac_status" >&5
++  echo "$as_me:8924: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sizeof_signed_char=`cat conftest.val`
+ else
+@@ -8804,7 +8937,7 @@
+   ac_cv_sizeof_signed_char=0
+ fi
+ fi
+-echo "$as_me:8807: result: $ac_cv_sizeof_signed_char" >&5
++echo "$as_me:8940: result: $ac_cv_sizeof_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
+ cat >>confdefs.h <<EOF
+ #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
+@@ -8815,7 +8948,7 @@
+ else
+ 	NCURSES_SBOOL="char"
+ fi
+-echo "$as_me:8818: checking if you want to use signed Boolean array in term.h" >&5
++echo "$as_me:8951: checking if you want to use signed Boolean array in term.h" >&5
+ echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
+ 
+ # Check whether --enable-signed-char or --disable-signed-char was given.
+@@ -8825,12 +8958,12 @@
+ else
+   with_signed_char=no
+ fi;
+-echo "$as_me:8828: result: $with_signed_char" >&5
++echo "$as_me:8961: result: $with_signed_char" >&5
+ echo "${ECHO_T}$with_signed_char" >&6
+ test "$with_signed_char" != yes && NCURSES_SBOOL="char"
+ 
+ ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
+-echo "$as_me:8833: checking if you want SIGWINCH handler" >&5
++echo "$as_me:8966: checking if you want SIGWINCH handler" >&5
+ echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
+ 
+ # Check whether --enable-sigwinch or --disable-sigwinch was given.
+@@ -8840,14 +8973,14 @@
+ else
+   with_sigwinch=$with_ext_funcs
+ fi;
+-echo "$as_me:8843: result: $with_sigwinch" >&5
++echo "$as_me:8976: result: $with_sigwinch" >&5
+ echo "${ECHO_T}$with_sigwinch" >&6
+ test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SIGWINCH 1
+ EOF
+ 
+ ###   use option --enable-tcap-names to allow user to define new capabilities
+-echo "$as_me:8850: checking if you want user-definable terminal capabilities like termcap" >&5
++echo "$as_me:8983: checking if you want user-definable terminal capabilities like termcap" >&5
+ echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
+ 
+ # Check whether --enable-tcap-names or --disable-tcap-names was given.
+@@ -8857,7 +8990,7 @@
+ else
+   with_tcap_names=$with_ext_funcs
+ fi;
+-echo "$as_me:8860: result: $with_tcap_names" >&5
++echo "$as_me:8993: result: $with_tcap_names" >&5
+ echo "${ECHO_T}$with_tcap_names" >&6
+ NCURSES_XNAMES=0
+ test "$with_tcap_names" = yes && NCURSES_XNAMES=1
+@@ -8865,7 +8998,7 @@
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+ 
+-echo "$as_me:8868: checking if you want all development code" >&5
++echo "$as_me:9001: checking if you want all development code" >&5
+ echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+ 
+ # Check whether --with-develop or --without-develop was given.
+@@ -8875,11 +9008,11 @@
+ else
+   with_develop=no
+ fi;
+-echo "$as_me:8878: result: $with_develop" >&5
++echo "$as_me:9011: result: $with_develop" >&5
+ echo "${ECHO_T}$with_develop" >&6
+ 
+ ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
+-echo "$as_me:8882: checking if you want hard-tabs code" >&5
++echo "$as_me:9015: checking if you want hard-tabs code" >&5
+ echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+ 
+ # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
+@@ -8889,14 +9022,14 @@
+ else
+   enable_hard_tabs=$with_develop
+ fi;
+-echo "$as_me:8892: result: $enable_hard_tabs" >&5
++echo "$as_me:9025: result: $enable_hard_tabs" >&5
+ echo "${ECHO_T}$enable_hard_tabs" >&6
+ test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HARD_TABS 1
+ EOF
+ 
+ ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+-echo "$as_me:8899: checking if you want limited support for xmc" >&5
++echo "$as_me:9032: checking if you want limited support for xmc" >&5
+ echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+ 
+ # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
+@@ -8906,7 +9039,7 @@
+ else
+   enable_xmc_glitch=$with_develop
+ fi;
+-echo "$as_me:8909: result: $enable_xmc_glitch" >&5
++echo "$as_me:9042: result: $enable_xmc_glitch" >&5
+ echo "${ECHO_T}$enable_xmc_glitch" >&6
+ test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_XMC_SUPPORT 1
+@@ -8915,7 +9048,7 @@
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+ 
+-echo "$as_me:8918: checking if you do not want to assume colors are white-on-black" >&5
++echo "$as_me:9051: checking if you do not want to assume colors are white-on-black" >&5
+ echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
+ 
+ # Check whether --enable-assumed-color or --disable-assumed-color was given.
+@@ -8925,14 +9058,14 @@
+ else
+   with_assumed_color=yes
+ fi;
+-echo "$as_me:8928: result: $with_assumed_color" >&5
++echo "$as_me:9061: result: $with_assumed_color" >&5
+ echo "${ECHO_T}$with_assumed_color" >&6
+ test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
+ #define USE_ASSUMED_COLOR 1
+ EOF
+ 
+ ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
+-echo "$as_me:8935: checking if you want hashmap scrolling-optimization code" >&5
++echo "$as_me:9068: checking if you want hashmap scrolling-optimization code" >&5
+ echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+ 
+ # Check whether --enable-hashmap or --disable-hashmap was given.
+@@ -8942,14 +9075,14 @@
+ else
+   with_hashmap=yes
+ fi;
+-echo "$as_me:8945: result: $with_hashmap" >&5
++echo "$as_me:9078: result: $with_hashmap" >&5
+ echo "${ECHO_T}$with_hashmap" >&6
+ test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HASHMAP 1
+ EOF
+ 
+ ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+-echo "$as_me:8952: checking if you want colorfgbg code" >&5
++echo "$as_me:9085: checking if you want colorfgbg code" >&5
+ echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
+ 
+ # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
+@@ -8959,14 +9092,14 @@
+ else
+   with_colorfgbg=no
+ fi;
+-echo "$as_me:8962: result: $with_colorfgbg" >&5
++echo "$as_me:9095: result: $with_colorfgbg" >&5
+ echo "${ECHO_T}$with_colorfgbg" >&6
+ test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+ #define USE_COLORFGBG 1
+ EOF
+ 
+ ###   use option --enable-ext-colors to turn on use of colors beyond 16.
+-echo "$as_me:8969: checking if you want to use experimental extended colors" >&5
++echo "$as_me:9102: checking if you want to use experimental extended colors" >&5
+ echo $ECHO_N "checking if you want to use experimental extended colors... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-colors or --disable-ext-colors was given.
+@@ -8976,13 +9109,14 @@
+ else
+   with_ext_colors=no
+ fi;
+-echo "$as_me:8979: result: $with_ext_colors" >&5
++echo "$as_me:9112: result: $with_ext_colors" >&5
+ echo "${ECHO_T}$with_ext_colors" >&6
+ NCURSES_EXT_COLORS=0
+ if test "$with_ext_colors" = yes ; then
+ 	if test "$with_widec" != yes ; then
+-		{ echo "$as_me:8984: WARNING: This option applies only to wide-character library" >&5
+-echo "$as_me: WARNING: This option applies only to wide-character library" >&2;}
++		{ { echo "$as_me:9117: error: This option applies only to wide-character library" >&5
++echo "$as_me: error: This option applies only to wide-character library" >&2;}
++   { (exit 1); exit 1; }; }
+ 	else
+ 		# cannot be ABI 5 since it changes sizeof(cchar_t)
+ 
+@@ -8991,7 +9125,7 @@
+ 	5.*)
+ 		cf_cv_rel_version=6.0
+ 		cf_cv_abi_version=6
+-		{ echo "$as_me:8994: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++		{ echo "$as_me:9128: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ 		;;
+ 	esac
+@@ -9006,7 +9140,7 @@
+ fi
+ 
+ ###   use option --enable-ext-mouse to modify coding to support 5-button mice
+-echo "$as_me:9009: checking if you want to use experimental extended mouse encoding" >&5
++echo "$as_me:9143: checking if you want to use experimental extended mouse encoding" >&5
+ echo $ECHO_N "checking if you want to use experimental extended mouse encoding... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+@@ -9016,7 +9150,7 @@
+ else
+   with_ext_mouse=no
+ fi;
+-echo "$as_me:9019: result: $with_ext_mouse" >&5
++echo "$as_me:9153: result: $with_ext_mouse" >&5
+ echo "${ECHO_T}$with_ext_mouse" >&6
+ NCURSES_MOUSE_VERSION=1
+ if test "$with_ext_mouse" = yes ; then
+@@ -9027,7 +9161,7 @@
+ 	5.*)
+ 		cf_cv_rel_version=6.0
+ 		cf_cv_abi_version=6
+-		{ echo "$as_me:9030: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++		{ echo "$as_me:9164: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ 		;;
+ 	esac
+@@ -9035,7 +9169,49 @@
+ 
+ fi
+ 
+-echo "$as_me:9038: checking if you want experimental safe-sprintf code" >&5
++# Reentrant code has to be opaque; there's little advantage to making ncurses
++# opaque outside of that, so there is no --enable-opaque option.
++echo "$as_me:9174: checking if you want experimental reentrant code" >&5
++echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
++
++# Check whether --enable-reentrant or --disable-reentrant was given.
++if test "${enable_reentrant+set}" = set; then
++  enableval="$enable_reentrant"
++  with_reentrant=$enableval
++else
++  with_reentrant=no
++fi;
++echo "$as_me:9184: result: $with_reentrant" >&5
++echo "${ECHO_T}$with_reentrant" >&6
++if test "$with_reentrant" = yes ; then
++	cf_cv_enable_reentrant=1
++	cf_cv_enable_opaque="NCURSES_INTERNALS"
++	NCURSES_OPAQUE=1
++	NCURSES_SIZE_T=int
++	LIB_SUFFIX="t${LIB_SUFFIX}"
++	cat >>confdefs.h <<\EOF
++#define USE_REENTRANT 1
++EOF
++
++if test "${with_abi_version+set}" != set; then
++	case $cf_cv_rel_version in
++	5.*)
++		cf_cv_rel_version=6.0
++		cf_cv_abi_version=6
++		{ echo "$as_me:9201: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
++		;;
++	esac
++fi
++
++else
++	cf_cv_enable_reentrant=0
++	cf_cv_enable_opaque="NCURSES_OPAQUE"
++	NCURSES_OPAQUE=0
++	NCURSES_SIZE_T=short
++fi
++
++echo "$as_me:9214: checking if you want experimental safe-sprintf code" >&5
+ echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
+ 
+ # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
+@@ -9045,7 +9221,7 @@
+ else
+   with_safe_sprintf=no
+ fi;
+-echo "$as_me:9048: result: $with_safe_sprintf" >&5
++echo "$as_me:9224: result: $with_safe_sprintf" >&5
+ echo "${ECHO_T}$with_safe_sprintf" >&6
+ test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SAFE_SPRINTF 1
+@@ -9054,7 +9230,7 @@
+ ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+ # when hashmap is used scroll hints are useless
+ if test "$with_hashmap" = no ; then
+-echo "$as_me:9057: checking if you want to experiment without scrolling-hints code" >&5
++echo "$as_me:9233: checking if you want to experiment without scrolling-hints code" >&5
+ echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
+ 
+ # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
+@@ -9064,7 +9240,7 @@
+ else
+   with_scroll_hints=yes
+ fi;
+-echo "$as_me:9067: result: $with_scroll_hints" >&5
++echo "$as_me:9243: result: $with_scroll_hints" >&5
+ echo "${ECHO_T}$with_scroll_hints" >&6
+ test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SCROLL_HINTS 1
+@@ -9072,7 +9248,7 @@
+ 
+ fi
+ 
+-echo "$as_me:9075: checking if you want experimental wgetch-events code" >&5
++echo "$as_me:9251: checking if you want experimental wgetch-events code" >&5
+ echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
+ 
+ # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
+@@ -9082,7 +9258,7 @@
+ else
+   with_wgetch_events=no
+ fi;
+-echo "$as_me:9085: result: $with_wgetch_events" >&5
++echo "$as_me:9261: result: $with_wgetch_events" >&5
+ echo "${ECHO_T}$with_wgetch_events" >&6
+ test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
+ #define NCURSES_WGETCH_EVENTS 1
+@@ -9091,7 +9267,7 @@
+ ###############################################################################
+ 
+ ###	use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:9094: checking if you want to display full commands during build" >&5
++echo "$as_me:9270: checking if you want to display full commands during build" >&5
+ echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
+ 
+ # Check whether --enable-echo or --disable-echo was given.
+@@ -9106,12 +9282,13 @@
+ else
+ 	ECHO_LINK='@ echo linking $@ ... ;'
+ 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
++	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
+ fi
+-echo "$as_me:9110: result: $with_echo" >&5
++echo "$as_me:9287: result: $with_echo" >&5
+ echo "${ECHO_T}$with_echo" >&6
+ 
+ ###	use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:9114: checking if you want to see compiler warnings" >&5
++echo "$as_me:9291: checking if you want to see compiler warnings" >&5
+ echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
+ 
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -9119,10 +9296,10 @@
+   enableval="$enable_warnings"
+   with_warnings=$enableval
+ fi;
+-echo "$as_me:9122: result: $with_warnings" >&5
++echo "$as_me:9299: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+ 
+-if test -n "$with_warnings"; then
++if test "x$with_warnings" = "xyes"; then
+  	ADAFLAGS="$ADAFLAGS -gnatg"
+ 
+ INTEL_COMPILER=no
+@@ -9130,12 +9307,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:9133: checking if this is really Intel C compiler" >&5
++		echo "$as_me:9310: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$CFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 9138 "configure"
++#line 9315 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -9152,16 +9329,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9155: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9332: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9158: \$? = $ac_status" >&5
++  echo "$as_me:9335: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:9161: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9338: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9164: \$? = $ac_status" >&5
++  echo "$as_me:9341: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_COMPILER=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -9172,14 +9349,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:9175: result: $INTEL_COMPILER" >&5
++		echo "$as_me:9352: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ 		;;
+ 	esac
+ fi
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 9182 "configure"
++#line 9359 "${as_me-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -9197,11 +9374,11 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #269: invalid format string conversion
+ 
+-	{ echo "$as_me:9200: checking for $CC warning options..." >&5
++	{ echo "$as_me:9377: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-Wall"
+-	for cf_opt in  \
++	for cf_opt in \
+ 		wd1419 \
+ 		wd1682 \
+ 		wd1683 \
+@@ -9214,12 +9391,12 @@
+ 		wd981
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:9217: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9394: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9220: \$? = $ac_status" >&5
++  echo "$as_me:9397: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9222: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9399: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ 		fi
+@@ -9228,7 +9405,7 @@
+ 
+ elif test "$GCC" = yes
+ then
+-	{ echo "$as_me:9231: checking for $CC warning options..." >&5
++	{ echo "$as_me:9408: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-W -Wall"
+@@ -9245,15 +9422,15 @@
+ 		Wpointer-arith \
+ 		Wshadow \
+ 		Wstrict-prototypes \
+-		Wundef $cf_warn_CONST
++		Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:9251: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9428: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9254: \$? = $ac_status" >&5
++  echo "$as_me:9431: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9256: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9433: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			case $cf_opt in #(vi
+ 			Wcast-qual) #(vi
+@@ -9264,6 +9441,8 @@
+ 				3.3*)
+ 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+ 
++echo "${as_me-configure}:9444: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++
+ 					continue;;
+ 				esac
+ 				;;
+@@ -9282,12 +9461,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:9285: checking if this is really Intel C++ compiler" >&5
++		echo "$as_me:9464: checking if this is really Intel C++ compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CXXFLAGS"
+ 		CXXFLAGS="$CXXFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 9290 "configure"
++#line 9469 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -9304,16 +9483,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9307: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9486: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9310: \$? = $ac_status" >&5
++  echo "$as_me:9489: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:9313: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9492: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9316: \$? = $ac_status" >&5
++  echo "$as_me:9495: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_CPLUSPLUS=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -9324,7 +9503,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CXXFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:9327: result: $INTEL_CPLUSPLUS" >&5
++		echo "$as_me:9506: result: $INTEL_CPLUSPLUS" >&5
+ echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
+ 		;;
+ 	esac
+@@ -9338,7 +9517,7 @@
+ ac_main_return=return
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 9341 "configure"
++#line 9520 "configure"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -9356,7 +9535,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #269: invalid format string conversion
+ 
+-	{ echo "$as_me:9359: checking for $CC warning options..." >&5
++	{ echo "$as_me:9538: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CXXFLAGS="$CXXFLAGS"
+ 	EXTRA_CXXFLAGS="-Wall"
+@@ -9373,12 +9552,12 @@
+ 		wd981
+ 	do
+ 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:9376: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9555: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9379: \$? = $ac_status" >&5
++  echo "$as_me:9558: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9381: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9560: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ 		fi
+@@ -9387,7 +9566,7 @@
+ 
+ elif test "$GXX" = yes
+ then
+-	{ echo "$as_me:9390: checking for $CXX warning options..." >&5
++	{ echo "$as_me:9569: checking for $CXX warning options..." >&5
+ echo "$as_me: checking for $CXX warning options..." >&6;}
+ 	cf_save_CXXFLAGS="$CXXFLAGS"
+ 	EXTRA_CXXFLAGS="-W -Wall"
+@@ -9416,16 +9595,16 @@
+ 		Wundef $cf_gxx_extra_warnings Wno-unused
+ 	do
+ 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+-		if { (eval echo "$as_me:9419: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9598: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9422: \$? = $ac_status" >&5
++  echo "$as_me:9601: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9424: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9603: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ 		else
+-			test -n "$verbose" && echo "$as_me:9428: result: ... no -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9607: result: ... no -$cf_opt" >&5
+ echo "${ECHO_T}... no -$cf_opt" >&6
+ 		fi
+ 	done
+@@ -9461,10 +9640,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+-	{ echo "$as_me:9464: checking for $CC __attribute__ directives..." >&5
++	{ echo "$as_me:9643: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 9467 "configure"
++#line 9646 "${as_me-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -9502,12 +9681,12 @@
+ EOF
+ 			;;
+ 		esac
+-		if { (eval echo "$as_me:9505: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9684: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9508: \$? = $ac_status" >&5
++  echo "$as_me:9687: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9510: result: ... $cf_attribute" >&5
++			test -n "$verbose" && echo "$as_me:9689: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ 			cat conftest.h >>confdefs.h
+ 		fi
+@@ -9519,7 +9698,7 @@
+ fi
+ 
+ ###	use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:9522: checking if you want to enable runtime assertions" >&5
++echo "$as_me:9701: checking if you want to enable runtime assertions" >&5
+ echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
+ 
+ # Check whether --enable-assertions or --disable-assertions was given.
+@@ -9529,7 +9708,7 @@
+ else
+   with_assertions=no
+ fi;
+-echo "$as_me:9532: result: $with_assertions" >&5
++echo "$as_me:9711: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+@@ -9547,7 +9726,7 @@
+ 
+ ###	use option --disable-leaks to suppress "permanent" leaks, for testing
+ 
+-echo "$as_me:9550: checking if you want to use dmalloc for testing" >&5
++echo "$as_me:9729: checking if you want to use dmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dmalloc or --without-dmalloc was given.
+@@ -9563,7 +9742,7 @@
+ else
+   with_dmalloc=
+ fi;
+-echo "$as_me:9566: result: ${with_dmalloc:-no}" >&5
++echo "$as_me:9745: result: ${with_dmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -9647,23 +9826,23 @@
+ esac
+ 
+ if test "$with_dmalloc" = yes ; then
+-	echo "$as_me:9650: checking for dmalloc.h" >&5
++	echo "$as_me:9829: checking for dmalloc.h" >&5
+ echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9656 "configure"
++#line 9835 "configure"
+ #include "confdefs.h"
+ #include <dmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:9660: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9839: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:9666: \$? = $ac_status" >&5
++  echo "$as_me:9845: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9682,11 +9861,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9685: result: $ac_cv_header_dmalloc_h" >&5
++echo "$as_me:9864: result: $ac_cv_header_dmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+ if test $ac_cv_header_dmalloc_h = yes; then
+ 
+-echo "$as_me:9689: checking for dmalloc_debug in -ldmalloc" >&5
++echo "$as_me:9868: checking for dmalloc_debug in -ldmalloc" >&5
+ echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9694,7 +9873,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9697 "configure"
++#line 9876 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9713,16 +9892,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9716: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9895: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9719: \$? = $ac_status" >&5
++  echo "$as_me:9898: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9722: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9901: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9725: \$? = $ac_status" >&5
++  echo "$as_me:9904: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+@@ -9733,7 +9912,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9736: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "$as_me:9915: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+ echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
+ if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
+   cat >>confdefs.h <<EOF
+@@ -9748,7 +9927,7 @@
+ 
+ fi
+ 
+-echo "$as_me:9751: checking if you want to use dbmalloc for testing" >&5
++echo "$as_me:9930: checking if you want to use dbmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dbmalloc or --without-dbmalloc was given.
+@@ -9764,7 +9943,7 @@
+ else
+   with_dbmalloc=
+ fi;
+-echo "$as_me:9767: result: ${with_dbmalloc:-no}" >&5
++echo "$as_me:9946: result: ${with_dbmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dbmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -9848,23 +10027,23 @@
+ esac
+ 
+ if test "$with_dbmalloc" = yes ; then
+-	echo "$as_me:9851: checking for dbmalloc.h" >&5
++	echo "$as_me:10030: checking for dbmalloc.h" >&5
+ echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9857 "configure"
++#line 10036 "configure"
+ #include "confdefs.h"
+ #include <dbmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:9861: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10040: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:9867: \$? = $ac_status" >&5
++  echo "$as_me:10046: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9883,11 +10062,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9886: result: $ac_cv_header_dbmalloc_h" >&5
++echo "$as_me:10065: result: $ac_cv_header_dbmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+ if test $ac_cv_header_dbmalloc_h = yes; then
+ 
+-echo "$as_me:9890: checking for debug_malloc in -ldbmalloc" >&5
++echo "$as_me:10069: checking for debug_malloc in -ldbmalloc" >&5
+ echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9895,7 +10074,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldbmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9898 "configure"
++#line 10077 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9914,16 +10093,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9917: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10096: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9920: \$? = $ac_status" >&5
++  echo "$as_me:10099: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9923: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10102: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9926: \$? = $ac_status" >&5
++  echo "$as_me:10105: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+@@ -9934,7 +10113,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9937: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "$as_me:10116: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+ echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
+ if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
+   cat >>confdefs.h <<EOF
+@@ -9949,7 +10128,7 @@
+ 
+ fi
+ 
+-echo "$as_me:9952: checking if you want to use valgrind for testing" >&5
++echo "$as_me:10131: checking if you want to use valgrind for testing" >&5
+ echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-valgrind or --without-valgrind was given.
+@@ -9965,7 +10144,7 @@
+ else
+   with_valgrind=
+ fi;
+-echo "$as_me:9968: result: ${with_valgrind:-no}" >&5
++echo "$as_me:10147: result: ${with_valgrind:-no}" >&5
+ echo "${ECHO_T}${with_valgrind:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -10048,7 +10227,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:10051: checking if you want to perform memory-leak testing" >&5
++echo "$as_me:10230: checking if you want to perform memory-leak testing" >&5
+ echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
+ 
+ # Check whether --enable-leaks or --disable-leaks was given.
+@@ -10058,7 +10237,7 @@
+ else
+   : ${with_no_leaks:=no}
+ fi;
+-echo "$as_me:10061: result: $with_no_leaks" >&5
++echo "$as_me:10240: result: $with_no_leaks" >&5
+ echo "${ECHO_T}$with_no_leaks" >&6
+ 
+ if test "$with_no_leaks" = yes ; then
+@@ -10103,7 +10282,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:10106: checking whether to add trace feature to all models" >&5
++echo "$as_me:10285: checking whether to add trace feature to all models" >&5
+ echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
+ 
+ # Check whether --with-trace or --without-trace was given.
+@@ -10113,7 +10292,7 @@
+ else
+   cf_with_trace=$cf_all_traces
+ fi;
+-echo "$as_me:10116: result: $cf_with_trace" >&5
++echo "$as_me:10295: result: $cf_with_trace" >&5
+ echo "${ECHO_T}$cf_with_trace" >&6
+ 
+ if test "$cf_with_trace" = yes ; then
+@@ -10194,13 +10373,13 @@
+ fi
+ 
+ ###	Checks for libraries.
+-echo "$as_me:10197: checking for gettimeofday" >&5
++echo "$as_me:10376: checking for gettimeofday" >&5
+ echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+ if test "${ac_cv_func_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10203 "configure"
++#line 10382 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char gettimeofday (); below.  */
+@@ -10231,16 +10410,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10234: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10413: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10237: \$? = $ac_status" >&5
++  echo "$as_me:10416: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10240: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10419: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10243: \$? = $ac_status" >&5
++  echo "$as_me:10422: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_gettimeofday=yes
+ else
+@@ -10250,7 +10429,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10253: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:10432: result: $ac_cv_func_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+ if test $ac_cv_func_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -10259,7 +10438,7 @@
+ 
+ else
+ 
+-echo "$as_me:10262: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:10441: checking for gettimeofday in -lbsd" >&5
+ echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10267,7 +10446,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10270 "configure"
++#line 10449 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10286,16 +10465,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10289: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10468: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10292: \$? = $ac_status" >&5
++  echo "$as_me:10471: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10295: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10474: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10298: \$? = $ac_status" >&5
++  echo "$as_me:10477: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -10306,7 +10485,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10309: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:10488: result: $ac_cv_lib_bsd_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+ if test $ac_cv_lib_bsd_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -10318,14 +10497,14 @@
+ 
+ fi
+ 
+-echo "$as_me:10321: checking if -lm needed for math functions" >&5
++echo "$as_me:10500: checking if -lm needed for math functions" >&5
+ echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
+ if test "${cf_cv_need_libm+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 10328 "configure"
++#line 10507 "configure"
+ #include "confdefs.h"
+ 
+ 	#include <stdio.h>
+@@ -10340,16 +10519,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10343: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10522: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10346: \$? = $ac_status" >&5
++  echo "$as_me:10525: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10349: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10528: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10352: \$? = $ac_status" >&5
++  echo "$as_me:10531: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_need_libm=no
+ else
+@@ -10359,7 +10538,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10362: result: $cf_cv_need_libm" >&5
++echo "$as_me:10541: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+@@ -10367,13 +10546,13 @@
+ fi
+ 
+ ###	Checks for header files.
+-echo "$as_me:10370: checking for ANSI C header files" >&5
++echo "$as_me:10549: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10376 "configure"
++#line 10555 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -10381,13 +10560,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:10384: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10563: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:10390: \$? = $ac_status" >&5
++  echo "$as_me:10569: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10409,7 +10588,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10412 "configure"
++#line 10591 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -10427,7 +10606,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10430 "configure"
++#line 10609 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -10448,7 +10627,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10451 "configure"
++#line 10630 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -10474,15 +10653,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10477: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10656: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10480: \$? = $ac_status" >&5
++  echo "$as_me:10659: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10482: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10661: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10485: \$? = $ac_status" >&5
++  echo "$as_me:10664: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -10495,7 +10674,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:10498: result: $ac_cv_header_stdc" >&5
++echo "$as_me:10677: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -10508,13 +10687,13 @@
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:10511: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:10690: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10517 "configure"
++#line 10696 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -10529,16 +10708,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10532: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10711: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10535: \$? = $ac_status" >&5
++  echo "$as_me:10714: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10538: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10717: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10541: \$? = $ac_status" >&5
++  echo "$as_me:10720: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Header=yes"
+ else
+@@ -10548,7 +10727,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10551: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10730: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -10561,7 +10740,7 @@
+ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+-  echo "$as_me:10564: checking for opendir in -ldir" >&5
++  echo "$as_me:10743: checking for opendir in -ldir" >&5
+ echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+ if test "${ac_cv_lib_dir_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10569,7 +10748,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10572 "configure"
++#line 10751 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10588,16 +10767,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10591: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10770: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10594: \$? = $ac_status" >&5
++  echo "$as_me:10773: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10597: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10776: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10600: \$? = $ac_status" >&5
++  echo "$as_me:10779: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dir_opendir=yes
+ else
+@@ -10608,14 +10787,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10611: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:10790: result: $ac_cv_lib_dir_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+ if test $ac_cv_lib_dir_opendir = yes; then
+   LIBS="$LIBS -ldir"
+ fi
+ 
+ else
+-  echo "$as_me:10618: checking for opendir in -lx" >&5
++  echo "$as_me:10797: checking for opendir in -lx" >&5
+ echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+ if test "${ac_cv_lib_x_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10623,7 +10802,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10626 "configure"
++#line 10805 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10642,16 +10821,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10645: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10824: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10648: \$? = $ac_status" >&5
++  echo "$as_me:10827: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10651: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10830: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10654: \$? = $ac_status" >&5
++  echo "$as_me:10833: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_x_opendir=yes
+ else
+@@ -10662,7 +10841,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10665: result: $ac_cv_lib_x_opendir" >&5
++echo "$as_me:10844: result: $ac_cv_lib_x_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+ if test $ac_cv_lib_x_opendir = yes; then
+   LIBS="$LIBS -lx"
+@@ -10670,13 +10849,13 @@
+ 
+ fi
+ 
+-echo "$as_me:10673: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:10852: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10679 "configure"
++#line 10858 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -10692,16 +10871,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10695: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10874: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10698: \$? = $ac_status" >&5
++  echo "$as_me:10877: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10701: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10880: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10704: \$? = $ac_status" >&5
++  echo "$as_me:10883: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_header_time=yes
+ else
+@@ -10711,7 +10890,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10714: result: $ac_cv_header_time" >&5
++echo "$as_me:10893: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+ 
+@@ -10721,14 +10900,14 @@
+ 
+ fi
+ 
+-echo "$as_me:10724: checking for regular-expression headers" >&5
++echo "$as_me:10903: checking for regular-expression headers" >&5
+ echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
+ if test "${cf_cv_regex+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10731 "configure"
++#line 10910 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <regex.h>
+@@ -10746,16 +10925,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10749: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10928: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10752: \$? = $ac_status" >&5
++  echo "$as_me:10931: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10755: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10934: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10758: \$? = $ac_status" >&5
++  echo "$as_me:10937: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_regex="regex.h"
+ else
+@@ -10763,7 +10942,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 10766 "configure"
++#line 10945 "configure"
+ #include "confdefs.h"
+ #include <regexp.h>
+ int
+@@ -10778,16 +10957,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10781: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10960: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10784: \$? = $ac_status" >&5
++  echo "$as_me:10963: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10787: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10966: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10790: \$? = $ac_status" >&5
++  echo "$as_me:10969: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_regex="regexp.h"
+ else
+@@ -10797,7 +10976,7 @@
+ 		cf_save_LIBS="$LIBS"
+ 		LIBS="-lgen $LIBS"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 10800 "configure"
++#line 10979 "configure"
+ #include "confdefs.h"
+ #include <regexpr.h>
+ int
+@@ -10812,16 +10991,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10815: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10994: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10818: \$? = $ac_status" >&5
++  echo "$as_me:10997: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10821: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11000: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10824: \$? = $ac_status" >&5
++  echo "$as_me:11003: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_regex="regexpr.h"
+ else
+@@ -10837,7 +11016,7 @@
+ 
+ fi
+ 
+-echo "$as_me:10840: result: $cf_cv_regex" >&5
++echo "$as_me:11019: result: $cf_cv_regex" >&5
+ echo "${ECHO_T}$cf_cv_regex" >&6
+ case $cf_cv_regex in
+ 	regex.h)   cat >>confdefs.h <<\EOF
+@@ -10873,23 +11052,23 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:10876: checking for $ac_header" >&5
++echo "$as_me:11055: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10882 "configure"
++#line 11061 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:10886: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:11065: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:10892: \$? = $ac_status" >&5
++  echo "$as_me:11071: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10908,7 +11087,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:10911: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:11090: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -10922,7 +11101,7 @@
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+ if test "$ISC" = yes ; then
+ 
+-echo "$as_me:10925: checking for main in -lcposix" >&5
++echo "$as_me:11104: checking for main in -lcposix" >&5
+ echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
+ if test "${ac_cv_lib_cposix_main+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10930,7 +11109,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lcposix  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10933 "configure"
++#line 11112 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -10942,16 +11121,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10945: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11124: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10948: \$? = $ac_status" >&5
++  echo "$as_me:11127: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10951: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11130: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10954: \$? = $ac_status" >&5
++  echo "$as_me:11133: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_cposix_main=yes
+ else
+@@ -10962,7 +11141,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10965: result: $ac_cv_lib_cposix_main" >&5
++echo "$as_me:11144: result: $ac_cv_lib_cposix_main" >&5
+ echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
+ if test $ac_cv_lib_cposix_main = yes; then
+   cat >>confdefs.h <<EOF
+@@ -10973,7 +11152,7 @@
+ 
+ fi
+ 
+-	echo "$as_me:10976: checking for bzero in -linet" >&5
++	echo "$as_me:11155: checking for bzero in -linet" >&5
+ echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
+ if test "${ac_cv_lib_inet_bzero+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10981,7 +11160,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-linet  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10984 "configure"
++#line 11163 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -11000,16 +11179,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11003: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11182: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11006: \$? = $ac_status" >&5
++  echo "$as_me:11185: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11009: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11188: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11012: \$? = $ac_status" >&5
++  echo "$as_me:11191: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_inet_bzero=yes
+ else
+@@ -11020,21 +11199,21 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11023: result: $ac_cv_lib_inet_bzero" >&5
++echo "$as_me:11202: result: $ac_cv_lib_inet_bzero" >&5
+ echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
+ if test $ac_cv_lib_inet_bzero = yes; then
+   LIBS="$LIBS -linet"
+ fi
+ fi
+ 
+-echo "$as_me:11030: checking if sys/time.h works with sys/select.h" >&5
++echo "$as_me:11209: checking if sys/time.h works with sys/select.h" >&5
+ echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
+ if test "${cf_cv_sys_time_select+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11037 "configure"
++#line 11216 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -11054,16 +11233,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11057: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11236: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11060: \$? = $ac_status" >&5
++  echo "$as_me:11239: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11063: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11242: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11066: \$? = $ac_status" >&5
++  echo "$as_me:11245: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sys_time_select=yes
+ else
+@@ -11075,7 +11254,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11078: result: $cf_cv_sys_time_select" >&5
++echo "$as_me:11257: result: $cf_cv_sys_time_select" >&5
+ echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+ test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_SYS_TIME_SELECT 1
+@@ -11089,7 +11268,7 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+ 
+-echo "$as_me:11092: checking for $CC option to accept ANSI C" >&5
++echo "$as_me:11271: checking for $CC option to accept ANSI C" >&5
+ echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11097,7 +11276,7 @@
+   ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11100 "configure"
++#line 11279 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -11146,16 +11325,16 @@
+ do
+   CC="$ac_save_CC $ac_arg"
+   rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11149: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11328: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11152: \$? = $ac_status" >&5
++  echo "$as_me:11331: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11155: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11334: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11158: \$? = $ac_status" >&5
++  echo "$as_me:11337: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -11172,21 +11351,21 @@
+ 
+ case "x$ac_cv_prog_cc_stdc" in
+   x|xno)
+-    echo "$as_me:11175: result: none needed" >&5
++    echo "$as_me:11354: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+   *)
+-    echo "$as_me:11178: result: $ac_cv_prog_cc_stdc" >&5
++    echo "$as_me:11357: result: $ac_cv_prog_cc_stdc" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+     CC="$CC $ac_cv_prog_cc_stdc" ;;
+ esac
+ 
+-echo "$as_me:11183: checking for an ANSI C-conforming const" >&5
++echo "$as_me:11362: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11189 "configure"
++#line 11368 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -11244,16 +11423,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11247: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11426: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11250: \$? = $ac_status" >&5
++  echo "$as_me:11429: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11253: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11432: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11256: \$? = $ac_status" >&5
++  echo "$as_me:11435: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_const=yes
+ else
+@@ -11263,7 +11442,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:11266: result: $ac_cv_c_const" >&5
++echo "$as_me:11445: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+ 
+@@ -11273,7 +11452,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11276: checking for inline" >&5
++echo "$as_me:11455: checking for inline" >&5
+ echo $ECHO_N "checking for inline... $ECHO_C" >&6
+ if test "${ac_cv_c_inline+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11281,7 +11460,7 @@
+   ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11284 "configure"
++#line 11463 "configure"
+ #include "confdefs.h"
+ #ifndef __cplusplus
+ static $ac_kw int static_foo () {return 0; }
+@@ -11290,16 +11469,16 @@
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11293: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11472: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11296: \$? = $ac_status" >&5
++  echo "$as_me:11475: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11299: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11478: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11302: \$? = $ac_status" >&5
++  echo "$as_me:11481: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_inline=$ac_kw; break
+ else
+@@ -11310,7 +11489,7 @@
+ done
+ 
+ fi
+-echo "$as_me:11313: result: $ac_cv_c_inline" >&5
++echo "$as_me:11492: result: $ac_cv_c_inline" >&5
+ echo "${ECHO_T}$ac_cv_c_inline" >&6
+ case $ac_cv_c_inline in
+   inline | yes) ;;
+@@ -11327,16 +11506,197 @@
+ 
+ NCURSES_INLINE=
+ if test "$ac_cv_c_inline" != no ; then
+-	cat >>confdefs.h <<\EOF
+-#define CC_HAS_INLINE_FUNCS 1
+-EOF
++  NCURSES_INLINE=inline
++  if test "$INTEL_COMPILER" = yes
++  then
++    :
++  elif test "$GCC" = yes
++  then
++    echo "$as_me:11515: checking if gcc supports options to tune inlining" >&5
++echo $ECHO_N "checking if gcc supports options to tune inlining... $ECHO_C" >&6
++if test "${cf_cv_gcc_inline+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++      cf_save_CFLAGS=$CFLAGS
++      CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
++      cat >conftest.$ac_ext <<_ACEOF
++#line 11524 "configure"
++#include "confdefs.h"
++inline int foo(void) { return 1; }
++int
++main ()
++{
++${cf_cv_main_return:-return} foo()
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:11536: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:11539: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:11542: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:11545: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  cf_cv_gcc_inline=yes
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_gcc_inline=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++      CFLAGS=$cf_save_CFLAGS
++
++fi
++echo "$as_me:11557: result: $cf_cv_gcc_inline" >&5
++echo "${ECHO_T}$cf_cv_gcc_inline" >&6
++    if test "$cf_cv_gcc_inline" = yes ; then
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in --param max-inline-insns-single=1200
++do
++case $cf_fix_cppflags in
++no)
++	case $cf_add_cflags in #(vi
++	-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++		case $cf_add_cflags in
++		-D*)
++			cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++			&& test -z "${cf_tst_cflags}" \
++			&& cf_fix_cppflags=yes
++
++			if test $cf_fix_cppflags = yes ; then
++				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++				continue
++			elif test "${cf_tst_cflags}" = "\"'" ; then
++				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++				continue
++			fi
++			;;
++		esac
++		case "$CPPFLAGS" in
++		*$cf_add_cflags) #(vi
++			;;
++		*) #(vi
++			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++			;;
++		esac
++		;;
++	*)
++		cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++		;;
++	esac
++	;;
++yes)
++	cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ 
+-	NCURSES_INLINE=inline
++	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++	&& test -z "${cf_tst_cflags}" \
++	&& cf_fix_cppflags=no
++	;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++	CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++    fi
++  fi
++fi
++
++echo "$as_me:11633: checking for signal global datatype" >&5
++echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
++if test "${cf_cv_sig_atomic_t+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++	for cf_type in \
++		"volatile sig_atomic_t" \
++		"sig_atomic_t" \
++		"int"
++	do
++	cat >conftest.$ac_ext <<_ACEOF
++#line 11645 "configure"
++#include "confdefs.h"
++
++#include <sys/types.h>
++#include <signal.h>
++#include <stdio.h>
++
++extern $cf_type x;
++$cf_type x;
++static void handler(int sig)
++{
++	x = 5;
++}
++int
++main ()
++{
++signal(SIGINT, handler);
++		 x = 1
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:11668: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:11671: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:11674: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:11677: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  cf_cv_sig_atomic_t=$cf_type
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_sig_atomic_t=no
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++		test "$cf_cv_sig_atomic_t" != no && break
++	done
++
++fi
++
++echo "$as_me:11691: result: $cf_cv_sig_atomic_t" >&5
++echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
++test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
++#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
++EOF
+ 
+ if test $NCURSES_CHTYPE = auto ; then
+ 
+-echo "$as_me:11339: checking for type of chtype" >&5
++echo "$as_me:11699: checking for type of chtype" >&5
+ echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+ if test "${cf_cv_typeof_chtype+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11346,7 +11706,7 @@
+   cf_cv_typeof_chtype=long
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11349 "configure"
++#line 11709 "configure"
+ #include "confdefs.h"
+ 
+ #define WANT_BITS 31
+@@ -11381,15 +11741,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:11384: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11744: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11387: \$? = $ac_status" >&5
++  echo "$as_me:11747: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:11389: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11749: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11392: \$? = $ac_status" >&5
++  echo "$as_me:11752: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_typeof_chtype=`cat cf_test.out`
+ else
+@@ -11404,7 +11764,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11407: result: $cf_cv_typeof_chtype" >&5
++echo "$as_me:11767: result: $cf_cv_typeof_chtype" >&5
+ echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
+ 
+ cat >>confdefs.h <<EOF
+@@ -11414,15 +11774,16 @@
+ else
+ 	cf_cv_typeof_chtype=$NCURSES_CHTYPE
+ fi
++test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
+ 
+-echo "$as_me:11418: checking if unsigned literals are legal" >&5
++echo "$as_me:11779: checking if unsigned literals are legal" >&5
+ echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
+ if test "${cf_cv_unsigned_literals+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 11425 "configure"
++#line 11786 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -11434,16 +11795,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11437: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11798: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11440: \$? = $ac_status" >&5
++  echo "$as_me:11801: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11443: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11804: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11446: \$? = $ac_status" >&5
++  echo "$as_me:11807: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_unsigned_literals=yes
+ else
+@@ -11455,29 +11816,30 @@
+ 
+ fi
+ 
+-echo "$as_me:11458: result: $cf_cv_unsigned_literals" >&5
++echo "$as_me:11819: result: $cf_cv_unsigned_literals" >&5
+ echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+ 
+ cf_cv_1UL="1"
+-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
+-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
++test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
++test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
+ 
+ if test $NCURSES_MMASK_T = auto ; then
+ 	cf_cv_typeof_mmask_t=long
+ else
+ 	cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+ fi
++test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
+ 
+ ###	Checks for external-data
+ 
+-echo "$as_me:11473: checking if external errno is declared" >&5
++echo "$as_me:11835: checking if external errno is declared" >&5
+ echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
+ if test "${cf_cv_dcl_errno+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 11480 "configure"
++#line 11842 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_STDLIB_H
+@@ -11495,16 +11857,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11498: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11860: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11501: \$? = $ac_status" >&5
++  echo "$as_me:11863: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11504: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11866: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11507: \$? = $ac_status" >&5
++  echo "$as_me:11869: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_dcl_errno=yes
+ else
+@@ -11515,7 +11877,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:11518: result: $cf_cv_dcl_errno" >&5
++echo "$as_me:11880: result: $cf_cv_dcl_errno" >&5
+ echo "${ECHO_T}$cf_cv_dcl_errno" >&6
+ 
+ if test "$cf_cv_dcl_errno" = no ; then
+@@ -11530,14 +11892,14 @@
+ 
+ # It's possible (for near-UNIX clones) that the data doesn't exist
+ 
+-echo "$as_me:11533: checking if external errno exists" >&5
++echo "$as_me:11895: checking if external errno exists" >&5
+ echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
+ if test "${cf_cv_have_errno+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 11540 "configure"
++#line 11902 "configure"
+ #include "confdefs.h"
+ 
+ #undef errno
+@@ -11552,16 +11914,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11555: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11917: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11558: \$? = $ac_status" >&5
++  echo "$as_me:11920: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11561: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11923: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11564: \$? = $ac_status" >&5
++  echo "$as_me:11926: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_errno=yes
+ else
+@@ -11572,7 +11934,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:11575: result: $cf_cv_have_errno" >&5
++echo "$as_me:11937: result: $cf_cv_have_errno" >&5
+ echo "${ECHO_T}$cf_cv_have_errno" >&6
+ 
+ if test "$cf_cv_have_errno" = yes ; then
+@@ -11585,7 +11947,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11588: checking if data-only library module links" >&5
++echo "$as_me:11950: checking if data-only library module links" >&5
+ echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
+ if test "${cf_cv_link_dataonly+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11593,20 +11955,20 @@
+ 
+ 	rm -f conftest.a
+ 	cat >conftest.$ac_ext <<EOF
+-#line 11596 "configure"
++#line 11958 "configure"
+ int	testdata[3] = { 123, 456, 789 };
+ EOF
+-	if { (eval echo "$as_me:11599: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:11961: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11602: \$? = $ac_status" >&5
++  echo "$as_me:11964: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 		mv conftest.o data.o && \
+ 		( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
+ 	fi
+ 	rm -f conftest.$ac_ext data.o
+ 	cat >conftest.$ac_ext <<EOF
+-#line 11609 "configure"
++#line 11971 "configure"
+ int	testfunc()
+ {
+ #if defined(NeXT)
+@@ -11619,10 +11981,10 @@
+ #endif
+ }
+ EOF
+-	if { (eval echo "$as_me:11622: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:11984: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11625: \$? = $ac_status" >&5
++  echo "$as_me:11987: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+ 		mv conftest.o func.o && \
+ 		( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
+@@ -11635,7 +11997,7 @@
+   cf_cv_link_dataonly=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11638 "configure"
++#line 12000 "configure"
+ #include "confdefs.h"
+ 
+ 	int main()
+@@ -11646,15 +12008,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:11649: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12011: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11652: \$? = $ac_status" >&5
++  echo "$as_me:12014: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:11654: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12016: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11657: \$? = $ac_status" >&5
++  echo "$as_me:12019: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_link_dataonly=yes
+ else
+@@ -11669,7 +12031,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11672: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:12034: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+ 
+ if test "$cf_cv_link_dataonly" = no ; then
+@@ -11704,13 +12066,13 @@
+ 
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:11707: checking for $ac_func" >&5
++echo "$as_me:12069: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11713 "configure"
++#line 12075 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -11741,16 +12103,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11744: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12106: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11747: \$? = $ac_status" >&5
++  echo "$as_me:12109: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11750: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12112: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11753: \$? = $ac_status" >&5
++  echo "$as_me:12115: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -11760,7 +12122,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11763: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:12125: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -11772,14 +12134,14 @@
+ 
+ if test "$with_getcap" = "yes" ; then
+ 
+-echo "$as_me:11775: checking for terminal-capability database functions" >&5
++echo "$as_me:12137: checking for terminal-capability database functions" >&5
+ echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
+ if test "${cf_cv_cgetent+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11782 "configure"
++#line 12144 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -11799,16 +12161,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11802: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12164: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11805: \$? = $ac_status" >&5
++  echo "$as_me:12167: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11808: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12170: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11811: \$? = $ac_status" >&5
++  echo "$as_me:12173: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cgetent=yes
+ else
+@@ -11820,7 +12182,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11823: result: $cf_cv_cgetent" >&5
++echo "$as_me:12185: result: $cf_cv_cgetent" >&5
+ echo "${ECHO_T}$cf_cv_cgetent" >&6
+ test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_BSD_CGETENT 1
+@@ -11828,14 +12190,14 @@
+ 
+ fi
+ 
+-echo "$as_me:11831: checking for isascii" >&5
++echo "$as_me:12193: checking for isascii" >&5
+ echo $ECHO_N "checking for isascii... $ECHO_C" >&6
+ if test "${cf_cv_have_isascii+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 11838 "configure"
++#line 12200 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ int
+@@ -11847,16 +12209,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11850: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12212: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11853: \$? = $ac_status" >&5
++  echo "$as_me:12215: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11856: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12218: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11859: \$? = $ac_status" >&5
++  echo "$as_me:12221: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_isascii=yes
+ else
+@@ -11867,17 +12229,17 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:11870: result: $cf_cv_have_isascii" >&5
++echo "$as_me:12232: result: $cf_cv_have_isascii" >&5
+ echo "${ECHO_T}$cf_cv_have_isascii" >&6
+ test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_ISASCII 1
+ EOF
+ 
+ if test "$ac_cv_func_sigaction" = yes; then
+-echo "$as_me:11877: checking whether sigaction needs _POSIX_SOURCE" >&5
++echo "$as_me:12239: checking whether sigaction needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11880 "configure"
++#line 12242 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -11891,16 +12253,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11894: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12256: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11897: \$? = $ac_status" >&5
++  echo "$as_me:12259: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11900: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12262: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11903: \$? = $ac_status" >&5
++  echo "$as_me:12265: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   sigact_bad=no
+ else
+@@ -11908,7 +12270,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11911 "configure"
++#line 12273 "configure"
+ #include "confdefs.h"
+ 
+ #define _POSIX_SOURCE
+@@ -11923,16 +12285,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11926: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12288: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11929: \$? = $ac_status" >&5
++  echo "$as_me:12291: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11932: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12294: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11935: \$? = $ac_status" >&5
++  echo "$as_me:12297: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   sigact_bad=yes
+ 	 cat >>confdefs.h <<\EOF
+@@ -11947,11 +12309,11 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:11950: result: $sigact_bad" >&5
++echo "$as_me:12312: result: $sigact_bad" >&5
+ echo "${ECHO_T}$sigact_bad" >&6
+ fi
+ 
+-echo "$as_me:11954: checking if nanosleep really works" >&5
++echo "$as_me:12316: checking if nanosleep really works" >&5
+ echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
+ if test "${cf_cv_func_nanosleep+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11961,7 +12323,7 @@
+   cf_cv_func_nanosleep=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11964 "configure"
++#line 12326 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -11986,15 +12348,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:11989: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12351: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11992: \$? = $ac_status" >&5
++  echo "$as_me:12354: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:11994: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12356: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11997: \$? = $ac_status" >&5
++  echo "$as_me:12359: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_nanosleep=yes
+ else
+@@ -12006,7 +12368,7 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:12009: result: $cf_cv_func_nanosleep" >&5
++echo "$as_me:12371: result: $cf_cv_func_nanosleep" >&5
+ echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
+ 
+ test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
+@@ -12020,23 +12382,23 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12023: checking for $ac_header" >&5
++echo "$as_me:12385: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12029 "configure"
++#line 12391 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:12033: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12395: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12039: \$? = $ac_status" >&5
++  echo "$as_me:12401: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12055,7 +12417,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12058: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:12420: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12070,23 +12432,23 @@
+ for ac_header in sys/termio.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12073: checking for $ac_header" >&5
++echo "$as_me:12435: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12079 "configure"
++#line 12441 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:12083: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12445: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12089: \$? = $ac_status" >&5
++  echo "$as_me:12451: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12105,7 +12467,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12108: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:12470: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12123,10 +12485,10 @@
+ 	*)	termios_bad=maybe ;;
+ 	esac
+ 	if test "$termios_bad" = maybe ; then
+-	echo "$as_me:12126: checking whether termios.h needs _POSIX_SOURCE" >&5
++	echo "$as_me:12488: checking whether termios.h needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 12129 "configure"
++#line 12491 "configure"
+ #include "confdefs.h"
+ #include <termios.h>
+ int
+@@ -12138,16 +12500,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12141: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12503: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12144: \$? = $ac_status" >&5
++  echo "$as_me:12506: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12147: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12509: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12150: \$? = $ac_status" >&5
++  echo "$as_me:12512: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   termios_bad=no
+ else
+@@ -12155,7 +12517,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 12158 "configure"
++#line 12520 "configure"
+ #include "confdefs.h"
+ 
+ #define _POSIX_SOURCE
+@@ -12169,16 +12531,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12172: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12534: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12175: \$? = $ac_status" >&5
++  echo "$as_me:12537: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12178: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12540: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12181: \$? = $ac_status" >&5
++  echo "$as_me:12543: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   termios_bad=unknown
+ else
+@@ -12193,19 +12555,19 @@
+ 
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-	echo "$as_me:12196: result: $termios_bad" >&5
++	echo "$as_me:12558: result: $termios_bad" >&5
+ echo "${ECHO_T}$termios_bad" >&6
+ 	fi
+ fi
+ 
+-echo "$as_me:12201: checking for tcgetattr" >&5
++echo "$as_me:12563: checking for tcgetattr" >&5
+ echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
+ if test "${cf_cv_have_tcgetattr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12208 "configure"
++#line 12570 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -12233,16 +12595,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12236: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12598: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12239: \$? = $ac_status" >&5
++  echo "$as_me:12601: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12242: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12604: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12245: \$? = $ac_status" >&5
++  echo "$as_me:12607: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_tcgetattr=yes
+ else
+@@ -12252,20 +12614,20 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12255: result: $cf_cv_have_tcgetattr" >&5
++echo "$as_me:12617: result: $cf_cv_have_tcgetattr" >&5
+ echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
+ test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TCGETATTR 1
+ EOF
+ 
+-echo "$as_me:12261: checking for vsscanf function or workaround" >&5
++echo "$as_me:12623: checking for vsscanf function or workaround" >&5
+ echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
+ if test "${cf_cv_func_vsscanf+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12268 "configure"
++#line 12630 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -12281,16 +12643,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12284: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12646: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12287: \$? = $ac_status" >&5
++  echo "$as_me:12649: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12290: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12652: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12293: \$? = $ac_status" >&5
++  echo "$as_me:12655: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=vsscanf
+ else
+@@ -12298,7 +12660,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12301 "configure"
++#line 12663 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -12320,16 +12682,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12323: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12685: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12326: \$? = $ac_status" >&5
++  echo "$as_me:12688: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12329: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12691: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12332: \$? = $ac_status" >&5
++  echo "$as_me:12694: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=vfscanf
+ else
+@@ -12337,7 +12699,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12340 "configure"
++#line 12702 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -12359,16 +12721,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12362: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12724: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12365: \$? = $ac_status" >&5
++  echo "$as_me:12727: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12368: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12730: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12371: \$? = $ac_status" >&5
++  echo "$as_me:12733: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=_doscan
+ else
+@@ -12383,7 +12745,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12386: result: $cf_cv_func_vsscanf" >&5
++echo "$as_me:12748: result: $cf_cv_func_vsscanf" >&5
+ echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
+ 
+ case $cf_cv_func_vsscanf in #(vi
+@@ -12401,7 +12763,7 @@
+ ;;
+ esac
+ 
+-echo "$as_me:12404: checking for working mkstemp" >&5
++echo "$as_me:12766: checking for working mkstemp" >&5
+ echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
+ if test "${cf_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12409,13 +12771,13 @@
+ 
+ rm -f conftest*
+ if test "$cross_compiling" = yes; then
+-  echo "$as_me:12412: checking for mkstemp" >&5
++  echo "$as_me:12774: checking for mkstemp" >&5
+ echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
+ if test "${ac_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12418 "configure"
++#line 12780 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char mkstemp (); below.  */
+@@ -12446,16 +12808,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12449: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12811: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12452: \$? = $ac_status" >&5
++  echo "$as_me:12814: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12455: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12817: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12458: \$? = $ac_status" >&5
++  echo "$as_me:12820: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_mkstemp=yes
+ else
+@@ -12465,12 +12827,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12468: result: $ac_cv_func_mkstemp" >&5
++echo "$as_me:12830: result: $ac_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12473 "configure"
++#line 12835 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -12508,15 +12870,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12511: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12873: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12514: \$? = $ac_status" >&5
++  echo "$as_me:12876: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:12516: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12878: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12519: \$? = $ac_status" >&5
++  echo "$as_me:12881: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_mkstemp=yes
+ 
+@@ -12531,7 +12893,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:12534: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:12896: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
+ if test "$cf_cv_func_mkstemp" = yes ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -12549,21 +12911,21 @@
+ fi
+ 
+ if test "$cross_compiling" = yes ; then
+-	{ echo "$as_me:12552: WARNING: cross compiling: assume setvbuf params not reversed" >&5
++	{ echo "$as_me:12914: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+ echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
+ else
+-	echo "$as_me:12555: checking whether setvbuf arguments are reversed" >&5
++	echo "$as_me:12917: checking whether setvbuf arguments are reversed" >&5
+ echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
+ if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test "$cross_compiling" = yes; then
+-  { { echo "$as_me:12561: error: cannot run test program while cross compiling" >&5
++  { { echo "$as_me:12923: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12566 "configure"
++#line 12928 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+@@ -12580,15 +12942,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12583: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12945: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12586: \$? = $ac_status" >&5
++  echo "$as_me:12948: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:12588: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12950: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12591: \$? = $ac_status" >&5
++  echo "$as_me:12953: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_setvbuf_reversed=yes
+ else
+@@ -12601,7 +12963,7 @@
+ fi
+ rm -f core core.* *.core
+ fi
+-echo "$as_me:12604: result: $ac_cv_func_setvbuf_reversed" >&5
++echo "$as_me:12966: result: $ac_cv_func_setvbuf_reversed" >&5
+ echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
+ if test $ac_cv_func_setvbuf_reversed = yes; then
+ 
+@@ -12612,13 +12974,13 @@
+ fi
+ 
+ fi
+-echo "$as_me:12615: checking return type of signal handlers" >&5
++echo "$as_me:12977: checking return type of signal handlers" >&5
+ echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+ if test "${ac_cv_type_signal+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12621 "configure"
++#line 12983 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -12640,16 +13002,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12643: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13005: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12646: \$? = $ac_status" >&5
++  echo "$as_me:13008: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12649: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13011: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12652: \$? = $ac_status" >&5
++  echo "$as_me:13014: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signal=void
+ else
+@@ -12659,21 +13021,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12662: result: $ac_cv_type_signal" >&5
++echo "$as_me:13024: result: $ac_cv_type_signal" >&5
+ echo "${ECHO_T}$ac_cv_type_signal" >&6
+ 
+ cat >>confdefs.h <<EOF
+ #define RETSIGTYPE $ac_cv_type_signal
+ EOF
+ 
+-echo "$as_me:12669: checking for type sigaction_t" >&5
++echo "$as_me:13031: checking for type sigaction_t" >&5
+ echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
+ if test "${cf_cv_type_sigaction+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 12676 "configure"
++#line 13038 "configure"
+ #include "confdefs.h"
+ 
+ #include <signal.h>
+@@ -12686,16 +13048,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12689: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13051: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12692: \$? = $ac_status" >&5
++  echo "$as_me:13054: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12695: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13057: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12698: \$? = $ac_status" >&5
++  echo "$as_me:13060: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_sigaction=yes
+ else
+@@ -12706,13 +13068,13 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+-echo "$as_me:12709: result: $cf_cv_type_sigaction" >&5
++echo "$as_me:13071: result: $cf_cv_type_sigaction" >&5
+ echo "${ECHO_T}$cf_cv_type_sigaction" >&6
+ test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TYPE_SIGACTION 1
+ EOF
+ 
+-echo "$as_me:12715: checking declaration of size-change" >&5
++echo "$as_me:13077: checking declaration of size-change" >&5
+ echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
+ if test "${cf_cv_sizechange+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12727,7 +13089,7 @@
+     CPPFLAGS="$cf_save_CPPFLAGS"
+     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 12730 "configure"
++#line 13092 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #ifdef HAVE_TERMIOS_H
+@@ -12771,16 +13133,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12774: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13136: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12777: \$? = $ac_status" >&5
++  echo "$as_me:13139: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12780: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13142: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12783: \$? = $ac_status" >&5
++  echo "$as_me:13145: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sizechange=yes
+ else
+@@ -12799,7 +13161,7 @@
+ done
+ 
+ fi
+-echo "$as_me:12802: result: $cf_cv_sizechange" >&5
++echo "$as_me:13164: result: $cf_cv_sizechange" >&5
+ echo "${ECHO_T}$cf_cv_sizechange" >&6
+ if test "$cf_cv_sizechange" != no ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -12816,13 +13178,13 @@
+ 	esac
+ fi
+ 
+-echo "$as_me:12819: checking for memmove" >&5
++echo "$as_me:13181: checking for memmove" >&5
+ echo $ECHO_N "checking for memmove... $ECHO_C" >&6
+ if test "${ac_cv_func_memmove+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12825 "configure"
++#line 13187 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char memmove (); below.  */
+@@ -12853,16 +13215,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12856: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13218: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12859: \$? = $ac_status" >&5
++  echo "$as_me:13221: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12862: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13224: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12865: \$? = $ac_status" >&5
++  echo "$as_me:13227: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_memmove=yes
+ else
+@@ -12872,19 +13234,19 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12875: result: $ac_cv_func_memmove" >&5
++echo "$as_me:13237: result: $ac_cv_func_memmove" >&5
+ echo "${ECHO_T}$ac_cv_func_memmove" >&6
+ if test $ac_cv_func_memmove = yes; then
+   :
+ else
+ 
+-echo "$as_me:12881: checking for bcopy" >&5
++echo "$as_me:13243: checking for bcopy" >&5
+ echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
+ if test "${ac_cv_func_bcopy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12887 "configure"
++#line 13249 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char bcopy (); below.  */
+@@ -12915,16 +13277,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12918: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13280: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12921: \$? = $ac_status" >&5
++  echo "$as_me:13283: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12924: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13286: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12927: \$? = $ac_status" >&5
++  echo "$as_me:13289: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_bcopy=yes
+ else
+@@ -12934,11 +13296,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12937: result: $ac_cv_func_bcopy" >&5
++echo "$as_me:13299: result: $ac_cv_func_bcopy" >&5
+ echo "${ECHO_T}$ac_cv_func_bcopy" >&6
+ if test $ac_cv_func_bcopy = yes; then
+ 
+-	echo "$as_me:12941: checking if bcopy does overlapping moves" >&5
++	echo "$as_me:13303: checking if bcopy does overlapping moves" >&5
+ echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
+ if test "${cf_cv_good_bcopy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12948,7 +13310,7 @@
+   cf_cv_good_bcopy=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12951 "configure"
++#line 13313 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -12962,15 +13324,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12965: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13327: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12968: \$? = $ac_status" >&5
++  echo "$as_me:13330: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:12970: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13332: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12973: \$? = $ac_status" >&5
++  echo "$as_me:13335: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_good_bcopy=yes
+ else
+@@ -12983,7 +13345,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:12986: result: $cf_cv_good_bcopy" >&5
++echo "$as_me:13348: result: $cf_cv_good_bcopy" >&5
+ echo "${ECHO_T}$cf_cv_good_bcopy" >&6
+ 
+ else
+@@ -13004,7 +13366,7 @@
+ 
+ fi
+ 
+-echo "$as_me:13007: checking if poll really works" >&5
++echo "$as_me:13369: checking if poll really works" >&5
+ echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
+ if test "${cf_cv_working_poll+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13014,7 +13376,7 @@
+   cf_cv_working_poll=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13017 "configure"
++#line 13379 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -13035,15 +13397,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13038: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13400: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13041: \$? = $ac_status" >&5
++  echo "$as_me:13403: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:13043: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13405: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13046: \$? = $ac_status" >&5
++  echo "$as_me:13408: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_working_poll=yes
+ else
+@@ -13055,7 +13417,7 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:13058: result: $cf_cv_working_poll" >&5
++echo "$as_me:13420: result: $cf_cv_working_poll" >&5
+ echo "${ECHO_T}$cf_cv_working_poll" >&6
+ test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
+ #define HAVE_WORKING_POLL 1
+@@ -13066,23 +13428,132 @@
+ #define USE_HASHED_DB 1
+ EOF
+ 
+-echo "$as_me:13069: checking for db.h" >&5
++case $with_hashed_db in #(vi
++yes|*able*) #(vi
++    ;;
++*)
++    if test -d "$with_hashed_db" ; then
++
++if test -n "$with_hashed_db/include" ; then
++  for cf_add_incdir in $with_hashed_db/include
++  do
++	while test $cf_add_incdir != /usr/include
++	do
++	  if test -d $cf_add_incdir
++	  then
++		cf_have_incdir=no
++		if test -n "$CFLAGS$CPPFLAGS" ; then
++		  # a loop is needed to ensure we can add subdirs of existing dirs
++		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++			  cf_have_incdir=yes; break
++			fi
++		  done
++		fi
++
++		if test "$cf_have_incdir" = no ; then
++          if test "$cf_add_incdir" = /usr/local/include ; then
++			if test "$GCC" = yes
++			then
++			  cf_save_CPPFLAGS=$CPPFLAGS
++			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++			  cat >conftest.$ac_ext <<_ACEOF
++#line 13461 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int
++main ()
++{
++printf("Hello")
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13473: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:13476: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:13479: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:13482: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  :
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_have_incdir=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++			  CPPFLAGS=$cf_save_CPPFLAGS
++			fi
++		  fi
++		fi
++
++		if test "$cf_have_incdir" = no ; then
++		  echo "$as_me:13497: result: adding $cf_add_incdir to include-path" >&5
++echo "${ECHO_T}adding $cf_add_incdir to include-path" >&6
++		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
++
++          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++          test "$cf_top_incdir" = "$cf_add_incdir" && break
++          cf_add_incdir="$cf_top_incdir"
++		else
++		  break
++		fi
++	  fi
++	done
++  done
++fi
++
++if test -n "$with_hashed_db/lib" ; then
++  for cf_add_libdir in $with_hashed_db/lib
++  do
++    if test $cf_add_libdir = /usr/lib ; then
++      :
++    elif test -d $cf_add_libdir
++    then
++      cf_have_libdir=no
++      if test -n "$LDFLAGS$LIBS" ; then
++        # a loop is needed to ensure we can add subdirs of existing dirs
++        for cf_test_libdir in $LDFLAGS $LIBS ; do
++          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++            cf_have_libdir=yes; break
++          fi
++        done
++      fi
++      if test "$cf_have_libdir" = no ; then
++        echo "$as_me:13529: result: adding $cf_add_libdir to library-path" >&5
++echo "${ECHO_T}adding $cf_add_libdir to library-path" >&6
++        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++      fi
++    fi
++  done
++fi
++
++    fi
++esac
++
++echo "$as_me:13540: checking for db.h" >&5
+ echo $ECHO_N "checking for db.h... $ECHO_C" >&6
+ if test "${ac_cv_header_db_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13075 "configure"
++#line 13546 "configure"
+ #include "confdefs.h"
+ #include <db.h>
+ _ACEOF
+-if { (eval echo "$as_me:13079: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:13550: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13085: \$? = $ac_status" >&5
++  echo "$as_me:13556: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -13101,11 +13572,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:13104: result: $ac_cv_header_db_h" >&5
++echo "$as_me:13575: result: $ac_cv_header_db_h" >&5
+ echo "${ECHO_T}$ac_cv_header_db_h" >&6
+ if test $ac_cv_header_db_h = yes; then
+ 
+-echo "$as_me:13108: checking for version of db" >&5
++echo "$as_me:13579: checking for version of db" >&5
+ echo $ECHO_N "checking for version of db... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13113,13 +13584,13 @@
+ 
+ cf_cv_hashed_db_version=unknown
+ 
+-for cf_db_version in 1 2 3 4
++for cf_db_version in 1 2 3 4 5
+ do
+ 
+-echo "(line 13119) testing checking for db version $cf_db_version ..." 1>&5
++echo "${as_me-configure}:13590: testing checking for db version $cf_db_version ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13122 "configure"
++#line 13593 "configure"
+ #include "confdefs.h"
+ 
+ $ac_includes_default
+@@ -13149,16 +13620,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13152: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13623: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13155: \$? = $ac_status" >&5
++  echo "$as_me:13626: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13158: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13629: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13161: \$? = $ac_status" >&5
++  echo "$as_me:13632: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_hashed_db_version=$cf_db_version
+@@ -13172,33 +13643,33 @@
+ done
+ 
+ fi
+-echo "$as_me:13175: result: $cf_cv_hashed_db_version" >&5
++echo "$as_me:13646: result: $cf_cv_hashed_db_version" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
+ 
+ if test "$cf_cv_hashed_db_version" = unknown ; then
+-	{ { echo "$as_me:13179: error: Cannot determine version of db" >&5
++	{ { echo "$as_me:13650: error: Cannot determine version of db" >&5
+ echo "$as_me: error: Cannot determine version of db" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+ 
+-echo "$as_me:13184: checking for db libraries" >&5
++echo "$as_me:13655: checking for db libraries" >&5
+ echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_libs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cf_cv_hashed_db_libs=unknown
+-for cf_db_libs in db$cf_cv_hashed_db_version db ''
++for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
+ do
+ 	cf_save_libs="$LIBS"
+ 	if test -n "$cf_db_libs"; then
+ 		LIBS="-l$cf_db_libs $LIBS"
+ 	fi
+ 
+-echo "(line 13198) testing checking for library "$cf_db_libs" ..." 1>&5
++echo "${as_me-configure}:13669: testing checking for library "$cf_db_libs" ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13201 "configure"
++#line 13672 "configure"
+ #include "confdefs.h"
+ 
+ $ac_includes_default
+@@ -13253,16 +13724,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13256: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13727: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13259: \$? = $ac_status" >&5
++  echo "$as_me:13730: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13262: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13733: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13265: \$? = $ac_status" >&5
++  echo "$as_me:13736: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	if test -n "$cf_db_libs" ; then
+@@ -13282,11 +13753,11 @@
+ done
+ 
+ fi
+-echo "$as_me:13285: result: $cf_cv_hashed_db_libs" >&5
++echo "$as_me:13756: result: $cf_cv_hashed_db_libs" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
+ 
+ 	if test "$cf_cv_hashed_db_libs" = unknown ; then
+-		{ { echo "$as_me:13289: error: Cannot determine library for db" >&5
++		{ { echo "$as_me:13760: error: Cannot determine library for db" >&5
+ echo "$as_me: error: Cannot determine library for db" >&2;}
+    { (exit 1); exit 1; }; }
+ 	elif test "$cf_cv_hashed_db_libs" != default ; then
+@@ -13296,7 +13767,7 @@
+ 
+ else
+ 
+-	{ { echo "$as_me:13299: error: Cannot find db.h" >&5
++	{ { echo "$as_me:13770: error: Cannot find db.h" >&5
+ echo "$as_me: error: Cannot find db.h" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+@@ -13311,7 +13782,7 @@
+ 
+ # Just in case, check if the C compiler has a bool type.
+ 
+-echo "$as_me:13314: checking if we should include stdbool.h" >&5
++echo "$as_me:13785: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+ 
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -13319,7 +13790,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13322 "configure"
++#line 13793 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -13331,23 +13802,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13334: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13805: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13337: \$? = $ac_status" >&5
++  echo "$as_me:13808: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13340: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13811: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13343: \$? = $ac_status" >&5
++  echo "$as_me:13814: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=0
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13350 "configure"
++#line 13821 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef __BEOS__
+@@ -13363,16 +13834,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13366: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13837: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13369: \$? = $ac_status" >&5
++  echo "$as_me:13840: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13372: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13843: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13375: \$? = $ac_status" >&5
++  echo "$as_me:13846: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=1
+ else
+@@ -13386,13 +13857,13 @@
+ fi
+ 
+ if test "$cf_cv_header_stdbool_h" = 1
+-then	echo "$as_me:13389: result: yes" >&5
++then	echo "$as_me:13860: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:13391: result: no" >&5
++else	echo "$as_me:13862: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:13395: checking for builtin bool type" >&5
++echo "$as_me:13866: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+ 
+ if test "${cf_cv_cc_bool_type+set}" = set; then
+@@ -13400,7 +13871,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13403 "configure"
++#line 13874 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -13415,16 +13886,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13418: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13889: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13421: \$? = $ac_status" >&5
++  echo "$as_me:13892: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13424: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13895: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13427: \$? = $ac_status" >&5
++  echo "$as_me:13898: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cc_bool_type=1
+ else
+@@ -13437,9 +13908,9 @@
+ fi
+ 
+ if test "$cf_cv_cc_bool_type" = 1
+-then	echo "$as_me:13440: result: yes" >&5
++then	echo "$as_me:13911: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:13442: result: no" >&5
++else	echo "$as_me:13913: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -13461,7 +13932,7 @@
+ 	cf_stdcpp_libname=stdc++
+ 	;;
+ esac
+-echo "$as_me:13464: checking for library $cf_stdcpp_libname" >&5
++echo "$as_me:13935: checking for library $cf_stdcpp_libname" >&5
+ echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
+ if test "${cf_cv_libstdcpp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13470,7 +13941,7 @@
+ 	cf_save="$LIBS"
+ 	LIBS="$LIBS -l$cf_stdcpp_libname"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13473 "configure"
++#line 13944 "configure"
+ #include "confdefs.h"
+ 
+ #include <strstream.h>
+@@ -13486,16 +13957,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13489: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13960: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13492: \$? = $ac_status" >&5
++  echo "$as_me:13963: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13495: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13966: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13498: \$? = $ac_status" >&5
++  echo "$as_me:13969: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_libstdcpp=yes
+ else
+@@ -13507,12 +13978,12 @@
+ 	LIBS="$cf_save"
+ 
+ fi
+-echo "$as_me:13510: result: $cf_cv_libstdcpp" >&5
++echo "$as_me:13981: result: $cf_cv_libstdcpp" >&5
+ echo "${ECHO_T}$cf_cv_libstdcpp" >&6
+ test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
+ fi
+ 
+-	echo "$as_me:13515: checking whether $CXX understands -c and -o together" >&5
++	echo "$as_me:13986: checking whether $CXX understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CXX_c_o+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13528,15 +13999,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:13531: \"$ac_try\"") >&5
++if { (eval echo "$as_me:14002: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13534: \$? = $ac_status" >&5
++  echo "$as_me:14005: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-  test -f conftest2.$ac_objext && { (eval echo "$as_me:13536: \"$ac_try\"") >&5
++  test -f conftest2.$ac_objext && { (eval echo "$as_me:14007: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13539: \$? = $ac_status" >&5
++  echo "$as_me:14010: \$? = $ac_status" >&5
+   (exit $ac_status); };
+ then
+   eval cf_cv_prog_CXX_c_o=yes
+@@ -13547,10 +14018,10 @@
+ 
+ fi
+ if test $cf_cv_prog_CXX_c_o = yes; then
+-  echo "$as_me:13550: result: yes" >&5
++  echo "$as_me:14021: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-  echo "$as_me:13553: result: no" >&5
++  echo "$as_me:14024: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -13570,12 +14041,12 @@
+ 	;;
+ esac
+ if test "$GXX" = yes; then
+-	echo "$as_me:13573: checking for lib$cf_gpp_libname" >&5
++	echo "$as_me:14044: checking for lib$cf_gpp_libname" >&5
+ echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
+ 	cf_save="$LIBS"
+ 	LIBS="$LIBS -l$cf_gpp_libname"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13578 "configure"
++#line 14049 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_gpp_libname/builtin.h>
+@@ -13589,16 +14060,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13592: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14063: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13595: \$? = $ac_status" >&5
++  echo "$as_me:14066: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13598: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14069: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13601: \$? = $ac_status" >&5
++  echo "$as_me:14072: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cxx_library=yes
+ 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
+@@ -13617,7 +14088,7 @@
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13620 "configure"
++#line 14091 "configure"
+ #include "confdefs.h"
+ 
+ #include <builtin.h>
+@@ -13631,16 +14102,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13634: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14105: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13637: \$? = $ac_status" >&5
++  echo "$as_me:14108: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13640: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14111: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13643: \$? = $ac_status" >&5
++  echo "$as_me:14114: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cxx_library=yes
+ 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
+@@ -13657,7 +14128,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 	LIBS="$cf_save"
+-	echo "$as_me:13660: result: $cf_cxx_library" >&5
++	echo "$as_me:14131: result: $cf_cxx_library" >&5
+ echo "${ECHO_T}$cf_cxx_library" >&6
+ fi
+ 
+@@ -13673,7 +14144,7 @@
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:13676: checking how to run the C++ preprocessor" >&5
++echo "$as_me:14147: checking how to run the C++ preprocessor" >&5
+ echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+ if test -z "$CXXCPP"; then
+   if test "${ac_cv_prog_CXXCPP+set}" = set; then
+@@ -13690,18 +14161,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13693 "configure"
++#line 14164 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:13698: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14169: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13704: \$? = $ac_status" >&5
++  echo "$as_me:14175: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -13724,17 +14195,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13727 "configure"
++#line 14198 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:13731: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14202: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13737: \$? = $ac_status" >&5
++  echo "$as_me:14208: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -13771,7 +14242,7 @@
+ else
+   ac_cv_prog_CXXCPP=$CXXCPP
+ fi
+-echo "$as_me:13774: result: $CXXCPP" >&5
++echo "$as_me:14245: result: $CXXCPP" >&5
+ echo "${ECHO_T}$CXXCPP" >&6
+ ac_preproc_ok=false
+ for ac_cxx_preproc_warn_flag in '' yes
+@@ -13781,18 +14252,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13784 "configure"
++#line 14255 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:13789: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14260: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13795: \$? = $ac_status" >&5
++  echo "$as_me:14266: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -13815,17 +14286,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13818 "configure"
++#line 14289 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:13822: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14293: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13828: \$? = $ac_status" >&5
++  echo "$as_me:14299: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -13853,7 +14324,7 @@
+ if $ac_preproc_ok; then
+   :
+ else
+-  { { echo "$as_me:13856: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
++  { { echo "$as_me:14327: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -13865,26 +14336,26 @@
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ ac_main_return=return
+ 
+-for ac_header in typeinfo
++for ac_header in iostream typeinfo
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13871: checking for $ac_header" >&5
++echo "$as_me:14342: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13877 "configure"
++#line 14348 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:13881: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14352: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13887: \$? = $ac_status" >&5
++  echo "$as_me:14358: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -13903,7 +14374,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:13906: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:14377: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -13913,7 +14384,7 @@
+ fi
+ done
+ 
+-echo "$as_me:13916: checking if we should include stdbool.h" >&5
++echo "$as_me:14387: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+ 
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -13921,7 +14392,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13924 "configure"
++#line 14395 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -13933,23 +14404,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13936: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14407: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13939: \$? = $ac_status" >&5
++  echo "$as_me:14410: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13942: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14413: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13945: \$? = $ac_status" >&5
++  echo "$as_me:14416: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=0
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13952 "configure"
++#line 14423 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef __BEOS__
+@@ -13965,16 +14436,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13968: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14439: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13971: \$? = $ac_status" >&5
++  echo "$as_me:14442: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13974: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14445: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13977: \$? = $ac_status" >&5
++  echo "$as_me:14448: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=1
+ else
+@@ -13988,13 +14459,13 @@
+ fi
+ 
+ if test "$cf_cv_header_stdbool_h" = 1
+-then	echo "$as_me:13991: result: yes" >&5
++then	echo "$as_me:14462: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:13993: result: no" >&5
++else	echo "$as_me:14464: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:13997: checking for builtin bool type" >&5
++echo "$as_me:14468: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+ 
+ if test "${cf_cv_builtin_bool+set}" = set; then
+@@ -14002,7 +14473,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14005 "configure"
++#line 14476 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -14017,16 +14488,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14020: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14491: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14023: \$? = $ac_status" >&5
++  echo "$as_me:14494: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14026: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14497: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14029: \$? = $ac_status" >&5
++  echo "$as_me:14500: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_builtin_bool=1
+ else
+@@ -14039,13 +14510,13 @@
+ fi
+ 
+ if test "$cf_cv_builtin_bool" = 1
+-then	echo "$as_me:14042: result: yes" >&5
++then	echo "$as_me:14513: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:14044: result: no" >&5
++else	echo "$as_me:14515: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:14048: checking for size of bool" >&5
++echo "$as_me:14519: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14056,7 +14527,7 @@
+   cf_cv_type_of_bool=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14059 "configure"
++#line 14530 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14098,15 +14569,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14101: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14572: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14104: \$? = $ac_status" >&5
++  echo "$as_me:14575: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14106: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14577: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14109: \$? = $ac_status" >&5
++  echo "$as_me:14580: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_of_bool=`cat cf_test.out`
+ 		 if test -z "$cf_cv_type_of_bool"; then
+@@ -14124,18 +14595,18 @@
+ fi
+ 
+ 	rm -f cf_test.out
+-echo "$as_me:14127: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:14598: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ 	case .$NCURSES_BOOL in #(vi
+ 	.auto|.) NCURSES_BOOL=unsigned;;
+ 	esac
+-	{ echo "$as_me:14133: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++	{ echo "$as_me:14604: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ 	cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+ 
+-echo "$as_me:14138: checking for special defines needed for etip.h" >&5
++echo "$as_me:14609: checking for special defines needed for etip.h" >&5
+ echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ cf_result="none"
+@@ -14147,7 +14618,7 @@
+ 	test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
+ 	test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14150 "configure"
++#line 14621 "configure"
+ #include "confdefs.h"
+ 
+ #include <etip.h.in>
+@@ -14161,16 +14632,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14164: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14635: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14167: \$? = $ac_status" >&5
++  echo "$as_me:14638: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14170: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14641: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14173: \$? = $ac_status" >&5
++  echo "$as_me:14644: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	test -n "$cf_math" && cat >>confdefs.h <<EOF
+@@ -14191,12 +14662,12 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ done
+-echo "$as_me:14194: result: $cf_result" >&5
++echo "$as_me:14665: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ CXXFLAGS="$cf_save_CXXFLAGS"
+ 
+ if test -n "$CXX"; then
+-echo "$as_me:14199: checking if $CXX accepts parameter initialization" >&5
++echo "$as_me:14670: checking if $CXX accepts parameter initialization" >&5
+ echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
+ if test "${cf_cv_cpp_param_init+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14213,7 +14684,7 @@
+   cf_cv_cpp_param_init=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14216 "configure"
++#line 14687 "configure"
+ #include "confdefs.h"
+ 
+ class TEST {
+@@ -14232,15 +14703,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14235: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14706: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14238: \$? = $ac_status" >&5
++  echo "$as_me:14709: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14240: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14711: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14243: \$? = $ac_status" >&5
++  echo "$as_me:14714: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cpp_param_init=yes
+ else
+@@ -14259,7 +14730,7 @@
+ ac_main_return=return
+ 
+ fi
+-echo "$as_me:14262: result: $cf_cv_cpp_param_init" >&5
++echo "$as_me:14733: result: $cf_cv_cpp_param_init" >&5
+ echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
+ fi
+ test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
+@@ -14268,7 +14739,7 @@
+ 
+ if test -n "$CXX"; then
+ 
+-echo "$as_me:14271: checking if $CXX accepts static_cast" >&5
++echo "$as_me:14742: checking if $CXX accepts static_cast" >&5
+ echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
+ if test "${cf_cv_cpp_static_cast+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14282,7 +14753,7 @@
+ ac_main_return=return
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14285 "configure"
++#line 14756 "configure"
+ #include "confdefs.h"
+ 
+ class NCursesPanel
+@@ -14326,16 +14797,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14329: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14800: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14332: \$? = $ac_status" >&5
++  echo "$as_me:14803: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14335: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14806: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14338: \$? = $ac_status" >&5
++  echo "$as_me:14809: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cpp_static_cast=yes
+ else
+@@ -14353,7 +14824,7 @@
+ ac_main_return=return
+ 
+ fi
+-echo "$as_me:14356: result: $cf_cv_cpp_static_cast" >&5
++echo "$as_me:14827: result: $cf_cv_cpp_static_cast" >&5
+ echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
+ 
+ fi
+@@ -14362,189 +14833,6 @@
+ #define CPP_HAS_STATIC_CAST 1
+ EOF
+ 
+-if test -n "$CXX"; then
+-
+-ac_ext=cc
+-ac_cpp='$CXXCPP $CPPFLAGS'
+-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+-ac_main_return=return
+-
+-for ac_header in strstream.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:14377: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 14383 "configure"
+-#include "confdefs.h"
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:14387: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  egrep -v '^ *\+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:14393: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_cxx_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  eval "$as_ac_Header=yes"
+-else
+-  echo "$as_me: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi
+-echo "$as_me:14412: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
+-
+-fi
+-done
+-
+-echo "$as_me:14422: checking if $CXX supports vscan function" >&5
+-echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6
+-if test "${cf_cv_cpp_vscan_func+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-	for cf_vscan_func in strstream strstream_cast stdio
+-	do
+-	case $cf_vscan_func in #(vi
+-	stdio)		cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi
+-	strstream)	cf_vscan_defs=USE_STRSTREAM_VSCAN ;;
+-	strstream_cast)	cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
+-	esac
+-	cat >conftest.$ac_ext <<_ACEOF
+-#line 14436 "configure"
+-#include "confdefs.h"
+-
+-#include <stdio.h>
+-#include <stdarg.h>
+-#define $cf_vscan_defs 1
+-#if defined(USE_STDIO_VSCAN)
+-#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN)
+-#include <strstream.h>
+-#endif
+-
+-int scanw(const char* fmt, ...)
+-{
+-    int result = -1;
+-    char buf[BUFSIZ];
+-
+-    va_list args;
+-    va_start(args, fmt);
+-#if defined(USE_STDIO_VSCAN)
+-    if (::vsscanf(buf, fmt, args) != -1)
+-	result = 0;
+-#elif defined(USE_STRSTREAM_VSCAN)
+-    strstreambuf ss(buf, sizeof(buf));
+-    if (ss.vscan(fmt, args) != -1)
+-	result = 0;
+-#elif defined(USE_STRSTREAM_VSCAN_CAST)
+-    strstreambuf ss(buf, sizeof(buf));
+-    if (ss.vscan(fmt, (_IO_va_list)args) != -1)
+-	result = 0;
+-#else
+-#error case $cf_vscan_func failed
+-#endif
+-    va_end(args);
+-    return result;
+-}
+-
+-int
+-main ()
+-{
+-int tmp, foo = scanw("%d", &tmp)
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14481: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:14484: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14487: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:14490: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  cf_cv_cpp_vscan_func=$cf_vscan_func; break
+-else
+-  echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_cv_cpp_vscan_func=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-	test "$cf_cv_cpp_vscan_func" != no && break
+-	done
+-
+-fi
+-echo "$as_me:14503: result: $cf_cv_cpp_vscan_func" >&5
+-echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
+-
+-ac_ext=cc
+-ac_cpp='$CXXCPP $CPPFLAGS'
+-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+-ac_main_return=return
+-
+-fi
+-
+-case $cf_cv_cpp_vscan_func in #(vi
+-stdio) #(vi
+-	cat >>confdefs.h <<\EOF
+-#define CPP_HAS_VSCAN_FUNC 1
+-EOF
+-
+-	cat >>confdefs.h <<\EOF
+-#define USE_STDIO_VSCAN 1
+-EOF
+-
+-	;;
+-strstream)
+-	cat >>confdefs.h <<\EOF
+-#define CPP_HAS_VSCAN_FUNC 1
+-EOF
+-
+-	cat >>confdefs.h <<\EOF
+-#define USE_STRSTREAM_VSCAN 1
+-EOF
+-
+-	;;
+-strstream_cast)
+-	cat >>confdefs.h <<\EOF
+-#define CPP_HAS_VSCAN_FUNC 1
+-EOF
+-
+-	cat >>confdefs.h <<\EOF
+-#define USE_STRSTREAM_VSCAN_CAST 1
+-EOF
+-
+-	;;
+-esac
+-
+ 	CXX_AR='$(AR)'
+ 	CXX_AR_OPTS='$(AR_OPTS)'
+ 	case $cf_cv_system_name in #(vi
+@@ -14584,7 +14872,7 @@
+ 	else
+ 		if test "$cf_cv_header_stdbool_h" = 1 ; then
+ 
+-echo "$as_me:14587: checking for size of bool" >&5
++echo "$as_me:14875: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14595,7 +14883,7 @@
+   cf_cv_type_of_bool=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14598 "configure"
++#line 14886 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14637,15 +14925,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14640: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14928: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14643: \$? = $ac_status" >&5
++  echo "$as_me:14931: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14645: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14933: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14648: \$? = $ac_status" >&5
++  echo "$as_me:14936: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_of_bool=`cat cf_test.out`
+ 		 if test -z "$cf_cv_type_of_bool"; then
+@@ -14663,25 +14951,25 @@
+ fi
+ 
+ 	rm -f cf_test.out
+-echo "$as_me:14666: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:14954: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ 	case .$NCURSES_BOOL in #(vi
+ 	.auto|.) NCURSES_BOOL=unsigned;;
+ 	esac
+-	{ echo "$as_me:14672: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++	{ echo "$as_me:14960: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ 	cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+ 
+ 		else
+-			echo "$as_me:14678: checking for fallback type of bool" >&5
++			echo "$as_me:14966: checking for fallback type of bool" >&5
+ echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
+ 			case "$host_cpu" in #(vi
+ 			i?86)	cf_cv_type_of_bool=char	;; #(vi
+ 			*)	cf_cv_type_of_bool=int	;;
+ 			esac
+-			echo "$as_me:14684: result: $cf_cv_type_of_bool" >&5
++			echo "$as_me:14972: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ 		fi
+ 	fi
+@@ -14707,11 +14995,20 @@
+ fi
+ 
+ if test -f "${srcdir}/Ada95/Makefile.in" ; then
++
++if test "$cf_with_ada" != "no" ; then
++    if test "$with_libtool" != "no"; then
++	{ echo "$as_me:15001: WARNING: libtool does not support Ada - disabling feature" >&5
++echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
++	cf_with_ada=no
++    fi
++fi
++
+ if test "$cf_with_ada" != "no" ; then
+ cf_ada_make=gnatmake
+ # Extract the first word of "$cf_ada_make", so it can be a program name with args.
+ set dummy $cf_ada_make; ac_word=$2
+-echo "$as_me:14714: checking for $ac_word" >&5
++echo "$as_me:15011: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_gnat_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14726,7 +15023,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:14729: found $ac_dir/$ac_word" >&5
++echo "$as_me:15026: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -14735,10 +15032,10 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+-  echo "$as_me:14738: result: $gnat_exists" >&5
++  echo "$as_me:15035: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+-  echo "$as_me:14741: result: no" >&5
++  echo "$as_me:15038: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -14746,11 +15043,11 @@
+    cf_ada_make=
+ else
+ 
+-echo "$as_me:14749: checking for gnat version" >&5
++echo "$as_me:15046: checking for gnat version" >&5
+ echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
+ cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
+   sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
+-echo "$as_me:14753: result: $cf_gnat_version" >&5
++echo "$as_me:15050: result: $cf_gnat_version" >&5
+ echo "${ECHO_T}$cf_gnat_version" >&6
+ 
+ case $cf_gnat_version in
+@@ -14773,7 +15070,7 @@
+ 
+    # Extract the first word of "m4", so it can be a program name with args.
+ set dummy m4; ac_word=$2
+-echo "$as_me:14776: checking for $ac_word" >&5
++echo "$as_me:15073: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_M4_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14788,7 +15085,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:14791: found $ac_dir/$ac_word" >&5
++echo "$as_me:15088: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -14797,10 +15094,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+-  echo "$as_me:14800: result: $M4_exists" >&5
++  echo "$as_me:15097: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+-  echo "$as_me:14803: result: no" >&5
++  echo "$as_me:15100: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -14809,7 +15106,7 @@
+       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
+    fi
+    if test "$cf_cv_prog_gnat_correct" = yes; then
+-      echo "$as_me:14812: checking if GNAT works" >&5
++      echo "$as_me:15109: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+ 
+ rm -f conftest*
+@@ -14837,14 +15134,14 @@
+ fi
+ rm -f conftest*
+ 
+-      echo "$as_me:14840: result: $cf_cv_prog_gnat_correct" >&5
++      echo "$as_me:15137: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+    fi
+ fi
+ if test	"$cf_cv_prog_gnat_correct" = yes; then
+    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
+ 
+-   echo "$as_me:14847: checking if GNAT pragma Unreferenced works" >&5
++   echo "$as_me:15144: checking if GNAT pragma Unreferenced works" >&5
+ echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+ 
+ rm -f conftest*
+@@ -14871,7 +15168,7 @@
+ fi
+ rm -f conftest*
+ 
+-   echo "$as_me:14874: result: $cf_cv_pragma_unreferenced" >&5
++   echo "$as_me:15171: result: $cf_cv_pragma_unreferenced" >&5
+ echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+ 
+    # if the pragma is supported, use it (needed in the Trace code).
+@@ -14897,7 +15194,8 @@
+ 
+ else
+   withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
+-fi;
++fi; if test -n "$prefix/lib/ada/adainclude" ; then
++
+ if test "x$prefix" != xNONE; then
+   cf_path_syntax="$prefix"
+ else
+@@ -14923,12 +15221,13 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:14926: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:15224: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+ esac
+ 
++fi
+ ADA_INCLUDE="$withval"
+ 
+ # Check whether --with-ada-objects or --without-ada-objects was given.
+@@ -14937,7 +15236,8 @@
+ 
+ else
+   withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}"
+-fi;
++fi; if test -n "$prefix/lib/ada/adalib" ; then
++
+ if test "x$prefix" != xNONE; then
+   cf_path_syntax="$prefix"
+ else
+@@ -14963,34 +15263,57 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:14966: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:15266: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+ esac
+ 
++fi
+ ADA_OBJECTS="$withval"
+ 
+ fi
+ fi
++else
++   cf_with_ada=no
+ fi
+ 
+-### Construct the library-subsets, if any, from this set of keywords:
+-### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
+-echo "$as_me:14980: checking for library subsets" >&5
++### Construct the ncurses library-subsets, if any, from this set of keywords:
++###	none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
++###
++### ticlib modules may be a separate library, otherwise contained in termlib.
++### termlib modules may be a separate library, otherwise contained in ncurses.
++###
++### The of "+" or " " between the tokens controls the way the script
++### chooses to split module lists into libraries.
++###
++### (see CF_LIB_RULES).
++echo "$as_me:15291: checking for library subsets" >&5
+ echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
++LIB_SUBSETS=
++
++if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
++	LIB_SUBSETS="${LIB_SUBSETS}ticlib"
++	if test "$with_ticlib" != no ; then
++		LIB_SUBSETS="${LIB_SUBSETS} "
++	else
++		LIB_SUBSETS="${LIB_SUBSETS}+"
++	fi
++fi
++
++LIB_SUBSETS="${LIB_SUBSETS}termlib"
++test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+ if test "$with_termlib" != no ; then
+-	LIB_SUBSETS="termlib"
+-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+ 	LIB_SUBSETS="${LIB_SUBSETS} "
+ else
+-	LIB_SUBSETS="termlib+"
+-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
++	LIB_SUBSETS="${LIB_SUBSETS}+"
+ fi
++
+ LIB_SUBSETS="${LIB_SUBSETS}base"
+ test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+ test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+-echo "$as_me:14993: result: $LIB_SUBSETS" >&5
++
++echo "$as_me:15316: result: $LIB_SUBSETS" >&5
+ echo "${ECHO_T}$LIB_SUBSETS" >&6
+ 
+ ### Construct the list of include-directories to be generated
+@@ -15028,7 +15351,7 @@
+ fi
+ 
+ ### Build up pieces for makefile rules
+-echo "$as_me:15031: checking default library suffix" >&5
++echo "$as_me:15354: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -15039,10 +15362,10 @@
+ 	shared)  DFT_ARG_SUFFIX=''   ;;
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:15042: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:15365: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+ 
+-echo "$as_me:15045: checking default library-dependency suffix" >&5
++echo "$as_me:15368: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -15064,17 +15387,19 @@
+ 		esac
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
++DFT_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ if test $DFT_LWR_MODEL = shared ; then
+ 	case $cf_cv_system_name in #(vi
+ 	cygwin*)
+ 		DFT_DEP_SUFFIX=".dll.a"
++		DFT_LIB_SUFFIX=".dll"
+ 		;;
+ 	esac
+ fi
+-echo "$as_me:15074: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:15399: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+ 
+-echo "$as_me:15077: checking default object directory" >&5
++echo "$as_me:15402: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -15090,12 +15415,12 @@
+ 			DFT_OBJ_SUBDIR='obj_s' ;;
+ 		esac
+ 	esac
+-echo "$as_me:15093: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:15418: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+ 
+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
+ if test "$cf_with_cxx" = yes ; then
+-echo "$as_me:15098: checking c++ library-dependency suffix" >&5
++echo "$as_me:15423: checking c++ library-dependency suffix" >&5
+ echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
+ if test "$with_libtool" != "no"; then
+ 	CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+@@ -15121,21 +15446,60 @@
+ 	esac
+ 	test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
+ fi
+-echo "$as_me:15124: result: $CXX_LIB_SUFFIX" >&5
++echo "$as_me:15449: result: $CXX_LIB_SUFFIX" >&5
+ echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
+ 
+ fi
+ 
++# do not want -ldl in build except as needed for -lncurses dependency
++if test "$with_dlsym" = yes ; then
++if test $DFT_LWR_MODEL = shared || \
++   test $DFT_LWR_MODEL = libtool ; then
++
++# remove dl library from $LIBS
++LIBS=`echo "$LIBS" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
++
++fi
++fi
+ ### Set up low-level terminfo dependencies for makefiles.
+-TINFO_LIST="$SHLIB_LIST"
++
++# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
++# do not need libdl
++TICS_LIST=
++if test "$with_dlsym" = yes ; then
++
++# remove dl library from $SHLIB_LIST
++TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
++
++fi
++
++if test "$with_ticlib" != no ; then
++
++	if test "$with_ticlib" != yes ; then
++		TICS_NAME=$with_ticlib
++		TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
++		TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
++		TICS_LIB_SUFFIX="${with_ticlib}"
++	else
++		TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
++		TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
++		TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
++	fi
++	TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
++else
++	TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++fi
++
+ if test "$with_termlib" != no ; then
+ 
+ 	if test "$with_termlib" != yes ; then
+ 		TINFO_NAME=$with_termlib
++		TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_LIB_SUFFIX="${with_termlib}"
+ 	else
++		TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+ 		TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+ 		TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+ 		TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+@@ -15150,22 +15514,81 @@
+ 	else
+ 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
++		TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ 		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ 	fi
+ else
++	# the next lines are needed for linking libtic over libncurses
++	TINFO_NAME=${LIB_NAME}
++	TINFO_SUFFIX=${DFT_LIB_SUFFIX}
++	TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
++	TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++
+ 	TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
+ 
++if test "$DFT_LWR_MODEL" = shared ; then
++	case $cf_cv_system_name in #(vi
++	cygwin*)
++		# "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
++		TINFO_SUFFIX=.dll
++		;;
++	esac
++fi
++
++if test "$with_dlsym" = yes ; then
++
++# remove dl library from $TICS_LIST
++TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ 	]//g' -e 's/-ldl$//'`
++
++fi
++
+ # needed for Ada95
+ TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+ 
+-echo "$as_me:15163: checking where we will install curses.h" >&5
++case $DFT_LWR_MODEL in
++normal|debug|profile)
++
++if test "$GCC" = yes ; then
++	LDFLAGS_STATIC=-static
++	LDFLAGS_SHARED=-dynamic
++else
++	case $cf_cv_system_name in #(
++	aix[45]*) 	#( from ld manpage
++		LDFLAGS_STATIC=-bstatic
++		LDFLAGS_SHARED=-bdynamic
++		;;
++	hpux*)		#( from ld manpage for hpux10.20, hpux11.11
++		# We could also use just "archive" and "shared".
++		LDFLAGS_STATIC=-Wl,-a,archive_shared
++		LDFLAGS_SHARED=-Wl,-a,shared_archive
++		;;
++	irix*)		#( from ld manpage IRIX64
++		LDFLAGS_STATIC=-Bstatic
++		LDFLAGS_SHARED=-Bdynamic
++		;;
++	osf[45]*)	#( from ld manpage osf4.0d, osf5.1
++		# alternative "-oldstyle_liblookup" (not in cc manpage)
++		LDFLAGS_STATIC=-noso
++		LDFLAGS_SHARED=-so_archive
++		;;
++	solaris2*)
++		LDFLAGS_STATIC=-Bstatic
++		LDFLAGS_SHARED=-Bdynamic
++		;;
++	esac
++fi
++
++	;;
++esac
++
++echo "$as_me:15586: checking where we will install curses.h" >&5
+ echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
+ test "$with_overwrite" = no && \
+ test "x$includedir" = 'x${prefix}/include' && \
+ 	includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
+-echo "$as_me:15168: result: $includedir" >&5
++echo "$as_me:15591: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ 
+ ### Resolve a conflict between normal and wide-curses by forcing applications
+@@ -15173,11 +15596,14 @@
+ if test "$with_overwrite" != no ; then
+ if test "$NCURSES_LIBUTF8" = 1 ; then
+ 	NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+-	{ echo "$as_me:15176: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
++	{ echo "$as_me:15599: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+ echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
+ fi
+ fi
+ 
++# used to separate tack out of the tree
++NCURSES_TREE=
++
+ ### predefined stuff for the test programs
+ cat >>confdefs.h <<\EOF
+ #define HAVE_SLK_COLOR 1
+@@ -15186,7 +15612,7 @@
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+ 
+-echo "$as_me:15189: checking for src modules" >&5
++echo "$as_me:15615: checking for src modules" >&5
+ echo $ECHO_N "checking for src modules... $ECHO_C" >&6
+ 
+ # dependencies and linker-arguments for test-programs
+@@ -15249,7 +15675,7 @@
+ 		fi
+ 	fi
+ done
+-echo "$as_me:15252: result: $cf_cv_src_modules" >&5
++echo "$as_me:15678: result: $cf_cv_src_modules" >&5
+ echo "${ECHO_T}$cf_cv_src_modules" >&6
+ 
+ TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+@@ -15284,6 +15710,10 @@
+ 
+ fi
+ 
++if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
++   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
++fi
++
+ DIRS_TO_MAKE="lib"
+ for cf_item in $cf_list_models
+ do
+@@ -15391,6 +15821,79 @@
+ 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+ 
++### If we're building with rpath, try to link non-standard libs that way too.
++if test "$DFT_LWR_MODEL" = "shared"; then
++
++echo "$as_me:15827: checking for updated LDFLAGS" >&5
++echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
++if test -n "$LDFLAGS" ; then
++echo "$as_me:15830: result: maybe" >&5
++echo "${ECHO_T}maybe" >&6
++test -n "$verbose" && echo "	...checking LDFLAGS $LDFLAGS" 1>&6
++
++echo "${as_me-configure}:15834: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
++
++test -n "$verbose" && echo "	...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
++
++echo "${as_me-configure}:15838: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
++
++case "$EXTRA_LDFLAGS" in #(vi
++-Wl,-rpath,*) #(vi
++    cf_rpath_hack="-Wl,-rpath,"
++    ;;
++-R\ *)
++    cf_rpath_hack="-R "
++    ;;
++-R*)
++    cf_rpath_hack="-R"
++    ;;
++*)
++    cf_rpath_hack=
++    ;;
++esac
++if test -n "$cf_rpath_hack" ; then
++    cf_rpath_dst=
++    for cf_rpath_src in $LDFLAGS
++    do
++        test -n "$verbose" && echo "	Filtering $cf_rpath_src" 1>&6
++
++echo "${as_me-configure}:15860: testing Filtering $cf_rpath_src ..." 1>&5
++
++        case $cf_rpath_src in #(vi
++        -L*) #(vi
++            if test "$cf_rpath_hack" = "-R " ; then
++                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
++            else
++                cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
++            fi
++            test -n "$verbose" && echo "	...Filter $cf_rpath_tmp" 1>&6
++
++echo "${as_me-configure}:15871: testing ...Filter $cf_rpath_tmp ..." 1>&5
++
++            EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
++            ;;
++        *)
++            cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
++            ;;
++        esac
++    done
++    LDFLAGS=$cf_rpath_dst
++    test -n "$verbose" && echo "	...checked LDFLAGS $LDFLAGS" 1>&6
++
++echo "${as_me-configure}:15883: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
++
++    test -n "$verbose" && echo "	...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
++
++echo "${as_me-configure}:15887: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
++
++fi
++else
++echo "$as_me:15891: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++
+ ### Define substitutions for header files to avoid name-pollution
+ 
+ if test "$cf_cv_have_tcgetattr" = yes ; then
+@@ -15495,7 +15998,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:15498: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:16001: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -15671,7 +16174,7 @@
+     echo "$ac_cs_version"; exit 0 ;;
+   --he | --h)
+     # Conflict between --help and --header
+-    { { echo "$as_me:15674: error: ambiguous option: $1
++    { { echo "$as_me:16177: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15690,7 +16193,7 @@
+     ac_need_defaults=false;;
+ 
+   # This is an error.
+-  -*) { { echo "$as_me:15693: error: unrecognized option: $1
++  -*) { { echo "$as_me:16196: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15747,13 +16250,19 @@
+ TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+ TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
+ TINFO_NAME="$TINFO_NAME"
++TINFO_SUFFIX="$TINFO_SUFFIX"
++TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
++TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
++TICS_NAME="$TICS_NAME"
+ WITH_CURSES_H="$with_curses_h"
+ WITH_ECHO="$with_echo"
+ WITH_OVERWRITE="$with_overwrite"
+ cf_LIST_MODELS="$cf_list_models"
+ cf_cv_abi_version="$cf_cv_abi_version"
++cf_cv_do_relink="$cf_cv_do_relink"
+ cf_cv_do_symlinks="$cf_cv_do_symlinks"
+ cf_cv_enable_lp64="$cf_cv_enable_lp64"
++cf_cv_enable_opaque="$cf_cv_enable_opaque"
+ cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+ cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
+ cf_cv_rel_version="$cf_cv_rel_version"
+@@ -15780,7 +16289,7 @@
+   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+   "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+-  *) { { echo "$as_me:15783: error: invalid argument: $ac_config_target" >&5
++  *) { { echo "$as_me:16292: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+    { (exit 1); exit 1; }; };;
+   esac
+@@ -15928,6 +16437,7 @@
+ s,@cf_list_models@,$cf_list_models,;t t
+ s,@LIBTOOL@,$LIBTOOL,;t t
+ s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
++s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
+ s,@LIB_CREATE@,$LIB_CREATE,;t t
+ s,@LIB_OBJECT@,$LIB_OBJECT,;t t
+ s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
+@@ -15939,6 +16449,7 @@
+ s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t
+ s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
+ s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
++s,@TICS_NAME@,$TICS_NAME,;t t
+ s,@TINFO_NAME@,$TINFO_NAME,;t t
+ s,@LIB_NAME@,$LIB_NAME,;t t
+ s,@LIB_PREFIX@,$LIB_PREFIX,;t t
+@@ -15961,6 +16472,7 @@
+ s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
+ s,@TERMINFO@,$TERMINFO,;t t
+ s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
++s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t
+ s,@TERMPATH@,$TERMPATH,;t t
+ s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
+ s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
+@@ -15983,6 +16495,10 @@
+ s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
+ s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
+ s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
++s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
++s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t
++s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
++s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
+ s,@ECHO_LINK@,$ECHO_LINK,;t t
+ s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+ s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
+@@ -16015,14 +16531,22 @@
+ s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
+ s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t
+ s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t
++s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t
++s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t
++s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t
++s,@TICS_ARGS@,$TICS_ARGS,;t t
+ s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
+ s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
+ s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
+ s,@TINFO_ARGS@,$TINFO_ARGS,;t t
+ s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
++s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t
++s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t
+ s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
++s,@TICS_LIST@,$TICS_LIST,;t t
+ s,@TINFO_LIST@,$TINFO_LIST,;t t
+ s,@SHLIB_LIST@,$SHLIB_LIST,;t t
++s,@NCURSES_TREE@,$NCURSES_TREE,;t t
+ s,@TEST_ARGS@,$TEST_ARGS,;t t
+ s,@TEST_DEPS@,$TEST_DEPS,;t t
+ s,@TEST_ARG2@,$TEST_ARG2,;t t
+@@ -16146,7 +16670,7 @@
+   esac
+ 
+   if test x"$ac_file" != x-; then
+-    { echo "$as_me:16149: creating $ac_file" >&5
++    { echo "$as_me:16673: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+     rm -f "$ac_file"
+   fi
+@@ -16164,7 +16688,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:16167: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:16691: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -16177,7 +16701,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:16180: error: cannot find input file: $f" >&5
++           { { echo "$as_me:16704: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -16243,7 +16767,7 @@
+   * )   ac_file_in=$ac_file.in ;;
+   esac
+ 
+-  test x"$ac_file" != x- && { echo "$as_me:16246: creating $ac_file" >&5
++  test x"$ac_file" != x- && { echo "$as_me:16770: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ 
+   # First look for the input files in the build tree, otherwise in the
+@@ -16254,7 +16778,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:16257: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:16781: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -16267,7 +16791,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:16270: error: cannot find input file: $f" >&5
++           { { echo "$as_me:16794: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -16325,7 +16849,7 @@
+   rm -f $tmp/in
+   if test x"$ac_file" != x-; then
+     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+-      { echo "$as_me:16328: $ac_file is unchanged" >&5
++      { echo "$as_me:16852: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+@@ -16400,7 +16924,6 @@
+ 		continue
+ 	elif test -f $srcdir/$cf_dir/modules; then
+ 
+-		IMPORT_LIB=
+ 		SHARED_LIB=
+ 		LIBS_TO_MAKE=
+ 		for cf_item in $cf_LIST_MODELS
+@@ -16467,9 +16990,7 @@
+ 			# use autodetected ${cf_prefix} for import lib and static lib, but
+ 			# use 'cyg' prefix for shared lib.
+ 			if test $cf_cv_shlib_version = cygdll ; then
+-				SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
+-				IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
+-				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
++				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
+ 				continue
+ 			fi
+ 			fi
+@@ -16478,17 +16999,34 @@
+ 
+ 		if test $cf_dir = ncurses ; then
+ 			cf_subsets="$LIB_SUBSETS"
+-			cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
+-			if test "$cf_termlib" != "$cf_subsets" ; then
+-				cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
+-				LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
+-			fi
++			cf_r_parts="$cf_subsets"
++
++			while test -n "$cf_r_parts"
++			do
++				cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
++				cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[^ ]* //'`
++				if test "$cf_l_parts" != "$cf_r_parts" ; then
++					case $cf_l_parts in #(vi
++					*termlib*) #(vi
++						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
++						;;
++					*ticlib*)
++						cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
++						;;
++					*)
++						break
++						;;
++					esac
++					LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++				else
++					break
++				fi
++			done
+ 		else
+ 			cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
+ 		fi
+ 
+ 		sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
+-		    -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
+ 		    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
+ 			$cf_dir/Makefile >$cf_dir/Makefile.out
+ 		mv $cf_dir/Makefile.out $cf_dir/Makefile
+@@ -16546,13 +17084,20 @@
+ 				case $cf_subset in
+ 				*base*)
+ 					;;
+-				termlib*)
++				*termlib*)
+ 					cf_libname=$TINFO_LIB_SUFFIX
+ 					if test -n "${DFT_ARG_SUFFIX}" ; then
+ 						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+ 						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+ 					fi
+-				;;
++					;;
++				ticlib*)
++					cf_libname=$TICS_LIB_SUFFIX
++					if test -n "${DFT_ARG_SUFFIX}" ; then
++						# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
++						cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
++					fi
++					;;
+ 				esac
+ 			fi
+ 
+@@ -16593,8 +17138,11 @@
+ 				prefix=$cf_prefix \
+ 				suffix=$cf_suffix \
+ 				subset=$cf_subset \
++				TermlibRoot=$TINFO_NAME \
++				TermlibSuffix=$TINFO_SUFFIX \
+ 				ShlibVer=$cf_cv_shlib_version \
+ 				ShlibVerInfix=$cf_cv_shlib_version_infix \
++				ReLink=${cf_cv_do_relink-no} \
+ 				DoLinks=$cf_cv_do_symlinks \
+ 				rmSoLocs=$cf_cv_rm_so_locs \
+ 				ldconfig="$LDCONFIG" \
+@@ -16681,8 +17229,8 @@
+ 
+ cat >> Makefile <<CF_EOF
+ 
+-install.data \\
+-uninstall.data ::
++install.libs uninstall.libs \\
++install.data uninstall.data ::
+ $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \$@
+ 
+ install.man \\
+@@ -16691,7 +17239,7 @@
+ 
+ distclean ::
+ 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
+-	rm -f headers.sh headers.sed
++	rm -f headers.sh headers.sed mk_shared_lib.sh
+ 	rm -rf \${DIRS_TO_MAKE}
+ CF_EOF
+ 
+@@ -16795,41 +17343,10 @@
+ 	fi
+ 
+ 	if test -f $srcdir/$cf_dir/headers; then
+-	cat >>$cf_dir/Makefile <<CF_EOF
+-\${DESTDIR}\${includedir} :
+-	sh \${srcdir}/../mkinstalldirs \$@
+-
+-install \\
+-install.libs \\
+-install.includes :: \${AUTO_SRC} \${DESTDIR}\${includedir} \\
+-CF_EOF
+-		j=""
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			test -n "$j" && echo "		$j \\" >>$cf_dir/Makefile
+-			j=$i
+-		done
+-
+-		echo "		$j" >>$cf_dir/Makefile
+-
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			echo "	@ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile
+-			test $i = curses.h && test $WITH_CURSES_H = yes && echo "	@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile
+-		done
+-
+-	cat >>$cf_dir/Makefile <<CF_EOF
+-
+-uninstall \\
+-uninstall.libs \\
+-uninstall.includes ::
+-CF_EOF
+-		for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
+-		do
+-			i=`basename $i`
+-			echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile
+-			test $i = curses.h && echo "	-@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile
+-		done
++		$AWK -f $srcdir/mk-hdr.awk \
++			subset="$LIB_SUBSETS" \
++			compat="$WITH_CURSES_H" \
++			$srcdir/$cf_dir/headers >>$cf_dir/Makefile
+ 	fi
+ 
+ 	if test -f $srcdir/$cf_dir/modules; then
+Index: configure.in
+Prereq:  1.383 
+--- ncurses-5.6/configure.in	2006-12-17 01:26:06.000000000 +0000
++++ ncurses-5.6-20071201/configure.in	2007-11-24 22:42:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ dnl                                                                          *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a  *
+ dnl copy of this software and associated documentation files (the            *
+@@ -28,14 +28,14 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: configure.in,v 1.383 2006/12/17 01:26:06 tom Exp $
++dnl $Id: configure.in,v 1.429 2007/11/24 22:42:43 tom Exp $
+ dnl Process this file with autoconf to produce a configure script.
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+ AC_PREREQ(2.13.20020210)
+-AC_REVISION($Revision: 1.383 $)
++AC_REVISION($Revision: 1.429 $)
+ AC_INIT(ncurses/base/lib_initscr.c)
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+ 
+@@ -150,13 +150,28 @@
+ CF_PROG_LINT
+ AC_PROG_LN_S
+ 
++AC_SYS_LONG_FILE_NAMES
++
++AC_MSG_CHECKING(if we should assume mixed-case filenames)
++AC_ARG_ENABLE(mixed-case,
++	[  --enable-mixed-case     tic should assume mixed-case filenames],
++	[enable_mixedcase=$enableval],
++	[enable_mixedcase=auto])
++AC_MSG_RESULT($enable_mixedcase)
++if test "$enable_mixedcase" = "auto" ; then
++    CF_MIXEDCASE_FILENAMES
++else
++    cf_cv_mixedcase=$enable_mixedcase
++    if test "$enable_mixedcase" = "yes" ; then
++        AC_DEFINE(MIXEDCASE_FILENAMES)
++    fi
++fi
++
++# do this after mixed-case option (tags/TAGS is not as important as tic).
+ AC_PROG_MAKE_SET
+ CF_MAKE_TAGS
+ CF_MAKEFLAGS
+ 
+-AC_SYS_LONG_FILE_NAMES
+-CF_MIXEDCASE_FILENAMES
+-
+ dnl These are standard among *NIX systems, but not when cross-compiling
+ AC_CHECK_TOOL(RANLIB, ranlib, ':')
+ AC_CHECK_TOOL(LD, ld, ld)
+@@ -255,6 +270,9 @@
+ AC_SUBST(DFT_LWR_MODEL)dnl	the default model ("normal")
+ AC_SUBST(DFT_UPR_MODEL)dnl	the default model ("NORMAL")
+ 
++TICS_NAME=tic
++AC_SUBST(TICS_NAME)
++
+ TINFO_NAME=tinfo
+ AC_SUBST(TINFO_NAME)
+ 
+@@ -280,6 +298,13 @@
+ 	[with_termlib=no])
+ AC_MSG_RESULT($with_termlib)
+ 
++AC_MSG_CHECKING(if you want to build a separate tic library)
++AC_ARG_WITH(ticlib,
++	[  --with-ticlib           generate separate tic library],
++	[with_ticlib=$withval],
++	[with_ticlib=no])
++AC_MSG_RESULT($with_ticlib)
++
+ ### Checks for special libraries, must be done up-front.
+ SHLIB_LIST=""
+ CF_WITH_GPM
+@@ -304,9 +329,7 @@
+ 		SHLIB_LIST="-lgpm $SHLIB_LIST"
+ 	fi
+ 	AC_DEFINE(HAVE_LIBGPM)
+-	AC_CHECK_LIB(gpm,Gpm_Wgetch,[
+-		AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
+-	])
++	CF_CHECK_GPM_WGETCH
+ fi
+ 
+ CF_WITH_SYSMOUSE
+@@ -336,12 +359,22 @@
+ AC_SUBST(LD_MODEL)dnl		the type of link (e.g., -g or -pg)
+ AC_MSG_RESULT($LD_MODEL)
+ 
++case $DFT_LWR_MODEL in
++shared)
+ AC_MSG_CHECKING(if rpath option should be used)
+ AC_ARG_ENABLE(rpath,
+ [  --enable-rpath          use rpath option when generating shared libraries],
+ [cf_cv_ld_rpath=$enableval],
+ [cf_cv_ld_rpath=no])
+ AC_MSG_RESULT($cf_cv_ld_rpath)
++AC_MSG_CHECKING(if shared libraries should be relinked during install)
++AC_ARG_ENABLE(relink,
++[  --disable-relink        relink shared libraries during install],
++[cf_cv_do_relink=$enableval],
++[cf_cv_do_relink=yes])
++AC_MSG_RESULT($cf_cv_do_relink)
++	;;
++esac
+ 
+ CF_SHARED_OPTS
+ if test "$CC_SHARED_OPTS" = "unknown"; then
+@@ -470,6 +503,19 @@
+ AC_MSG_RESULT($with_big_core)
+ test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
+ 
++### ISO C only guarantees 512-char strings, we have tables which load faster
++### when constructed using "big" strings.
++AC_MSG_CHECKING(if big-strings option selected)
++AC_ARG_ENABLE(big-strings,
++	[  --disable-big-strings   assume compiler has only standard-size strings],
++	[with_big_strings=no],
++	[with_big_strings=yes])
++AC_MSG_RESULT($with_big_strings)
++
++USE_BIG_STRINGS=0
++test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
++AC_SUBST(USE_BIG_STRINGS)
++
+ ###	use option --enable-termcap to compile in the termcap fallback support
+ AC_MSG_CHECKING(if you want termcap-fallback support)
+ AC_ARG_ENABLE(termcap,
+@@ -487,6 +533,10 @@
+ 	AC_DEFINE(PURE_TERMINFO)
+ else
+ 
++if test "$with_ticlib" != no ; then
++	AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
++fi
++
+ AC_DEFINE(USE_TERMCAP)
+ AC_MSG_CHECKING(for list of termcap files)
+ CF_WITH_PATHLIST(termpath,
+@@ -683,7 +733,7 @@
+ 
+ CF_LARGEFILE
+ 
+-###   use option --disable-tparm-varargs to make tparm() conform to X/Open 
++###   use option --disable-tparm-varargs to make tparm() conform to X/Open
+ AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
+ AC_ARG_ENABLE(tparm-varargs,
+ 	[  --disable-tparm-varargs compile tparm() without varargs interface],
+@@ -802,7 +852,7 @@
+ fi
+ AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
+ AC_ARG_ENABLE(signed-char,
+-	[  --enable-signed-char    compile with SIGWINCH handler],
++	[  --enable-signed-char    compile using signed Boolean's in term.h],
+ 	[with_signed_char=$enableval],
+ 	[with_signed_char=no])
+ AC_MSG_RESULT($with_signed_char)
+@@ -895,7 +945,7 @@
+ NCURSES_EXT_COLORS=0
+ if test "$with_ext_colors" = yes ; then
+ 	if test "$with_widec" != yes ; then
+-		AC_MSG_WARN(This option applies only to wide-character library)
++		AC_MSG_ERROR(This option applies only to wide-character library)
+ 	else
+ 		# cannot be ABI 5 since it changes sizeof(cchar_t)
+ 		CF_NCURSES_ABI_6
+@@ -919,6 +969,33 @@
+ fi
+ AC_SUBST(NCURSES_MOUSE_VERSION)
+ 
++# Reentrant code has to be opaque; there's little advantage to making ncurses
++# opaque outside of that, so there is no --enable-opaque option.
++AC_MSG_CHECKING(if you want experimental reentrant code)
++AC_ARG_ENABLE(reentrant,
++	[  --enable-reentrant      compile with experimental reentrant code],
++	[with_reentrant=$enableval],
++	[with_reentrant=no])
++AC_MSG_RESULT($with_reentrant)
++if test "$with_reentrant" = yes ; then
++	cf_cv_enable_reentrant=1
++	cf_cv_enable_opaque="NCURSES_INTERNALS"
++	NCURSES_OPAQUE=1
++	NCURSES_SIZE_T=int
++	LIB_SUFFIX="t${LIB_SUFFIX}"
++	AC_DEFINE(USE_REENTRANT)
++	CF_NCURSES_ABI_6
++else
++	cf_cv_enable_reentrant=0
++	cf_cv_enable_opaque="NCURSES_OPAQUE"
++	NCURSES_OPAQUE=0
++	NCURSES_SIZE_T=short
++fi
++AC_SUBST(cf_cv_enable_reentrant)
++AC_SUBST(cf_cv_enable_opaque)
++AC_SUBST(NCURSES_OPAQUE)
++AC_SUBST(NCURSES_SIZE_T)
++
+ AC_MSG_CHECKING(if you want experimental safe-sprintf code)
+ AC_ARG_ENABLE(safe-sprintf,
+ 	[  --enable-safe-sprintf   compile with experimental safe-sprintf code],
+@@ -961,6 +1038,7 @@
+ else
+ 	ECHO_LINK='@ echo linking $@ ... ;'
+ 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
++	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
+ fi
+ AC_MSG_RESULT($with_echo)
+ AC_SUBST(ECHO_LINK)
+@@ -972,9 +1050,9 @@
+ 	[with_warnings=$enableval])
+ AC_MSG_RESULT($with_warnings)
+ 
+-if test -n "$with_warnings"; then
++if test "x$with_warnings" = "xyes"; then
+  	ADAFLAGS="$ADAFLAGS -gnatg"
+-	CF_GCC_WARNINGS
++	CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
+ 	if test "$cf_with_cxx" = yes ; then
+ 		CF_GXX_WARNINGS(Wno-unused)
+ 	fi
+@@ -1088,26 +1166,21 @@
+ ###	checks for compiler characteristics
+ AC_LANG_C
+ AC_C_CONST
+-AC_C_INLINE
+-
+-NCURSES_INLINE=
+-if test "$ac_cv_c_inline" != no ; then
+-	AC_DEFINE(CC_HAS_INLINE_FUNCS)
+-	NCURSES_INLINE=inline
+-fi
+-AC_SUBST(NCURSES_INLINE)
++CF_C_INLINE(NCURSES_INLINE,1200)
++CF_SIG_ATOMIC_T
+ 
+ if test $NCURSES_CHTYPE = auto ; then
+ 	CF_TYPEOF_CHTYPE
+ else
+ 	cf_cv_typeof_chtype=$NCURSES_CHTYPE
+ fi
++test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
+ AC_SUBST(cf_cv_typeof_chtype)
+ 
+ CF_UNSIGNED_LITERALS
+ cf_cv_1UL="1"
+-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
+-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
++test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
++test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
+ AC_SUBST(cf_cv_1UL)
+ 
+ if test $NCURSES_MMASK_T = auto ; then
+@@ -1115,6 +1188,7 @@
+ else
+ 	cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+ fi
++test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
+ AC_SUBST(cf_cv_typeof_mmask_t)
+ 
+ ###	Checks for external-data
+@@ -1170,7 +1244,7 @@
+ 
+ if test "$with_hashed_db" != no ; then
+ 	AC_DEFINE(USE_HASHED_DB)
+-	CF_HASHED_DB
++	CF_HASHED_DB($with_hashed_db)
+ fi
+ 
+ dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
+@@ -1200,14 +1274,13 @@
+ 		;;
+ 	esac
+ 
+-	AC_CHECK_HEADERS(typeinfo)
++	AC_CHECK_HEADERS(iostream typeinfo)
+ 
+ 	CF_BOOL_DECL
+ 	CF_BOOL_SIZE
+ 	CF_ETIP_DEFINES
+ 	CF_CPP_PARAM_INIT
+ 	CF_CPP_STATIC_CAST
+-	CF_CPP_VSCAN_FUNC
+ 
+ 	CXX_AR='$(AR)'
+ 	CXX_AR_OPTS='$(AR_OPTS)'
+@@ -1284,9 +1357,22 @@
+ 
+ CF_HELP_MESSAGE(Ada95 Binding Options:)
+ 
++dnl If the Ada95 source-tree is present, add that to the build unless it will
++dnl not work, or was not requested.
++if test -f "${srcdir}/Ada95/Makefile.in" ; then
++
++dnl libtool does not know anything about GNAT, though a change made in 1998
++dnl provided for it "someday".  Disable the ada subtree if we are using
++dnl libtool -TD 20070714
++if test "$cf_with_ada" != "no" ; then
++    if test "$with_libtool" != "no"; then
++	AC_MSG_WARN(libtool does not support Ada - disabling feature)
++	cf_with_ada=no
++    fi
++fi
++
+ dnl Check for availability of GNU Ada Translator (GNAT).
+ dnl At the moment we support no other Ada95 compiler.
+-if test -f "${srcdir}/Ada95/Makefile.in" ; then
+ if test "$cf_with_ada" != "no" ; then
+ cf_ada_make=gnatmake
+ AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
+@@ -1369,22 +1455,44 @@
+ 
+ fi
+ fi
++else
++   cf_with_ada=no
+ fi
+ 
+-### Construct the library-subsets, if any, from this set of keywords:
+-### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
++### Construct the ncurses library-subsets, if any, from this set of keywords:
++###	none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
++###
++### ticlib modules may be a separate library, otherwise contained in termlib.
++### termlib modules may be a separate library, otherwise contained in ncurses.
++###
++### The of "+" or " " between the tokens controls the way the script
++### chooses to split module lists into libraries.
++###
++### (see CF_LIB_RULES).
+ AC_MSG_CHECKING(for library subsets)
++LIB_SUBSETS=
++
++if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
++	LIB_SUBSETS="${LIB_SUBSETS}ticlib"
++	if test "$with_ticlib" != no ; then
++		LIB_SUBSETS="${LIB_SUBSETS} "
++	else
++		LIB_SUBSETS="${LIB_SUBSETS}+"
++	fi
++fi
++
++LIB_SUBSETS="${LIB_SUBSETS}termlib"
++test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+ if test "$with_termlib" != no ; then
+-	LIB_SUBSETS="termlib"
+-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+ 	LIB_SUBSETS="${LIB_SUBSETS} "
+ else
+-	LIB_SUBSETS="termlib+"
+-	test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+"
++	LIB_SUBSETS="${LIB_SUBSETS}+"
+ fi
++
+ LIB_SUBSETS="${LIB_SUBSETS}base"
+ test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+ test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
++
+ AC_MSG_RESULT($LIB_SUBSETS)
+ 
+ ### Construct the list of include-directories to be generated
+@@ -1399,10 +1507,12 @@
+ 
+ AC_MSG_CHECKING(default library-dependency suffix)
+ CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
++DFT_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ if test $DFT_LWR_MODEL = shared ; then
+ 	case $cf_cv_system_name in #(vi
+ 	cygwin*)
+ 		DFT_DEP_SUFFIX=".dll.a"
++		DFT_LIB_SUFFIX=".dll"
+ 		;;
+ 	esac
+ fi
+@@ -1426,16 +1536,53 @@
+ AC_SUBST(CXX_LIB_SUFFIX)
+ fi
+ 
++# do not want -ldl in build except as needed for -lncurses dependency
++if test "$with_dlsym" = yes ; then
++if test $DFT_LWR_MODEL = shared || \
++   test $DFT_LWR_MODEL = libtool ; then
++	CF_REMOVE_LIB(LIBS,$LIBS,dl)
++fi
++fi
+ ### Set up low-level terminfo dependencies for makefiles.
+-TINFO_LIST="$SHLIB_LIST"
++
++# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
++# do not need libdl
++TICS_LIST=
++if test "$with_dlsym" = yes ; then
++	CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
++fi
++
++if test "$with_ticlib" != no ; then
++
++	if test "$with_ticlib" != yes ; then
++		TICS_NAME=$with_ticlib
++		TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
++		TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
++		TICS_LIB_SUFFIX="${with_ticlib}"
++	else
++		TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
++		TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
++		TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
++	fi
++	TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
++else
++	TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++fi
++AC_SUBST(TICS_ARG_SUFFIX)
++AC_SUBST(TICS_DEP_SUFFIX)
++AC_SUBST(TICS_LIB_SUFFIX)
++AC_SUBST(TICS_ARGS)
++
+ if test "$with_termlib" != no ; then
+ 
+ 	if test "$with_termlib" != yes ; then
+ 		TINFO_NAME=$with_termlib
++		TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ 		TINFO_LIB_SUFFIX="${with_termlib}"
+ 	else
++		TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+ 		TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+ 		TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+ 		TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+@@ -1450,21 +1597,48 @@
+ 	else
+ 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
++		TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ 		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ 	fi
+ else
++	# the next lines are needed for linking libtic over libncurses
++	TINFO_NAME=${LIB_NAME}
++	TINFO_SUFFIX=${DFT_LIB_SUFFIX}
++	TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
++	TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++
+ 	TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
++
++if test "$DFT_LWR_MODEL" = shared ; then
++	case $cf_cv_system_name in #(vi
++	cygwin*)
++		# "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
++		TINFO_SUFFIX=.dll
++		;;
++	esac
++fi
++
+ AC_SUBST(TINFO_ARG_SUFFIX)
+ AC_SUBST(TINFO_DEP_SUFFIX)
+ AC_SUBST(TINFO_LIB_SUFFIX)
+ AC_SUBST(TINFO_ARGS)
+ 
++if test "$with_dlsym" = yes ; then
++	CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
++fi
++
+ # needed for Ada95
+ TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+ AC_SUBST(TINFO_ARGS2)
+ 
++case $DFT_LWR_MODEL in
++normal|debug|profile)
++	CF_LDFLAGS_STATIC
++	;;
++esac
++
+ AC_MSG_CHECKING(where we will install curses.h)
+ test "$with_overwrite" = no && \
+ test "x$includedir" = 'x${prefix}/include' && \
+@@ -1481,9 +1655,14 @@
+ fi
+ 
+ AC_SUBST(WITH_OVERWRITE)
++AC_SUBST(TICS_LIST)
+ AC_SUBST(TINFO_LIST)
+ AC_SUBST(SHLIB_LIST)
+ 
++# used to separate tack out of the tree
++NCURSES_TREE=
++AC_SUBST(NCURSES_TREE)
++
+ ### predefined stuff for the test programs
+ AC_DEFINE(HAVE_SLK_COLOR)
+ 
+@@ -1491,6 +1670,11 @@
+ ### with the appropriate compile-rules.
+ 
+ CF_SRC_MODULES($modules_to_build)
++
++if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
++   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
++fi
++
+ CF_DIRS_TO_MAKE
+ 
+ AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
+@@ -1500,6 +1684,11 @@
+ ### Now that we're done running tests, add the compiler-warnings, if any
+ CF_ADD_CFLAGS($EXTRA_CFLAGS)
+ 
++### If we're building with rpath, try to link non-standard libs that way too.
++if test "$DFT_LWR_MODEL" = "shared"; then
++  CF_RPATH_HACK
++fi
++
+ ### Define substitutions for header files to avoid name-pollution
+ CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
+ CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
+@@ -1540,13 +1729,19 @@
+ TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+ TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
+ TINFO_NAME="$TINFO_NAME"
++TINFO_SUFFIX="$TINFO_SUFFIX"
++TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
++TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
++TICS_NAME="$TICS_NAME"
+ WITH_CURSES_H="$with_curses_h"
+ WITH_ECHO="$with_echo"
+ WITH_OVERWRITE="$with_overwrite"
+ cf_LIST_MODELS="$cf_list_models"
+ cf_cv_abi_version="$cf_cv_abi_version"
++cf_cv_do_relink="$cf_cv_do_relink"
+ cf_cv_do_symlinks="$cf_cv_do_symlinks"
+ cf_cv_enable_lp64="$cf_cv_enable_lp64"
++cf_cv_enable_opaque="$cf_cv_enable_opaque"
+ cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+ cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
+ cf_cv_rel_version="$cf_cv_rel_version"
+Index: dist.mk
+Prereq:  1.567 
+--- ncurses-5.6/dist.mk	2006-12-17 19:58:35.000000000 +0000
++++ ncurses-5.6-20071201/dist.mk	2007-12-01 16:08:01.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+ #                                                                            #
+ # Permission is hereby granted, free of charge, to any person obtaining a    #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -25,7 +25,7 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: dist.mk,v 1.567 2006/12/17 19:58:35 tom Exp $
++# $Id: dist.mk,v 1.618 2007/12/01 16:08:01 tom Exp $
+ # Makefile for creating ncurses distributions.
+ #
+ # This only needs to be used directly as a makefile by developers, but
+@@ -37,7 +37,7 @@
+ # These define the major/minor/patch versions of ncurses.
+ NCURSES_MAJOR = 5
+ NCURSES_MINOR = 6
+-NCURSES_PATCH = 20061217
++NCURSES_PATCH = 20071201
+ 
+ # We don't append the patch to the version, since this only applies to releases
+ VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+@@ -106,6 +106,7 @@
+ 	   fi ;\
+ 	done
+ 	# change some things to make weblint happy:
++	@cat man_alias.sed           >> subst.tmp
+ 	@echo 's/<B>/<STRONG>/g'     >> subst.tmp
+ 	@echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp
+ 	@echo 's/<I>/<EM>/g'         >> subst.tmp
+Index: doc/hackguide.doc
+--- ncurses-5.6/doc/hackguide.doc	2005-12-24 15:44:52.000000000 +0000
++++ ncurses-5.6-20071201/doc/hackguide.doc	2007-03-03 23:45:04.000000000 +0000
+@@ -261,7 +261,7 @@
+      lib_tracedmp.c lib_tracemse.c trace_buf.c
+ 
+    It  is  rather unlikely you will ever need to change these, unless you
+-   want to introduce a new debug trace level for some reasoon.
++   want to introduce a new debug trace level for some reason.
+ 
+    There  is  another  group  of  files  that  do direct I/O via tputs(),
+    computations  on  the  terminal  capabilities,  or  queries  to the OS
+Index: doc/html/ada/funcs/A.htm
+--- ncurses-5.6/doc/html/ada/funcs/A.htm	2005-05-14 17:34:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/A.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,6 +4,21 @@
+ <H2>Functions - A</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_129_13" TARGET="main">Above</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_523_14" TARGET="main">Add -  terminal_interface-curses.ads:523</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_528_14" TARGET="main">Add -  terminal_interface-curses.ads:528</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_534_14" TARGET="main">Add -  terminal_interface-curses.ads:534</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_542_14" TARGET="main">Add -  terminal_interface-curses.ads:542</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_653_14" TARGET="main">Add -  terminal_interface-curses.ads:653</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_662_14" TARGET="main">Add -  terminal_interface-curses.ads:662</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_677_14" TARGET="main">Add -  terminal_interface-curses.ads:677</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_686_14" TARGET="main">Add -  terminal_interface-curses.ads:686</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1307_14" TARGET="main">Add_Character_To_Pad_And_Echo_It -  terminal_interface-curses.ads:1307</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1312_14" TARGET="main">Add_Character_To_Pad_And_Echo_It -  terminal_interface-curses.ads:1312</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_551_14" TARGET="main">Add_With_Immediate_Echo -  terminal_interface-curses.ads:551</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_557_14" TARGET="main">Add_With_Immediate_Echo -  terminal_interface-curses.ads:557</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_959_16" TARGET="main">Ahead</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Allocate_Arg</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1016_14" TARGET="main">Allow_Scrolling</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1836_14" TARGET="main">Assume_Default_Colors</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/B.htm
+--- ncurses-5.6/doc/html/ada/funcs/B.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/B.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,8 +4,18 @@
+ <H2>Functions - B</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2085_16" TARGET="main">Baud</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_804_16" TARGET="main">Beeper</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_454_14" TARGET="main">Background -  terminal_interface-curses-forms.ads:454</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_459_14" TARGET="main">Background -  terminal_interface-curses-forms.ads:459</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_451_14" TARGET="main">Background -  terminal_interface-curses-menus.ads:451</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_456_14" TARGET="main">Background -  terminal_interface-curses-menus.ads:456</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2052_16" TARGET="main">Baud</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1647_13" TARGET="main">Baudrate</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_870_14" TARGET="main">Beep</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_751_16" TARGET="main">Beeper</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_975_16" TARGET="main">Behind</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_134_13" TARGET="main">Below</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_704_14" TARGET="main">Border</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_77_14" TARGET="main">Bottom</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_65_16" TARGET="main">Bottompanel</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_720_14" TARGET="main">Box</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/C.htm
+--- ncurses-5.6/doc/html/ada/funcs/C.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/C.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,24 +4,53 @@
+ <H2>Functions - C</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2245_16" TARGET="main">Canchangecolor</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_824_16" TARGET="main">Cbreak</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1021_16" TARGET="main">Clear_Ok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2212_16" TARGET="main">Canchangecolor</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1739_13" TARGET="main">Can_Change_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_771_16" TARGET="main">Cbreak</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_382_13" TARGET="main">Changed</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_845_14" TARGET="main">Change_Attributes -  terminal_interface-curses.ads:845</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_854_14" TARGET="main">Change_Attributes -  terminal_interface-curses.ads:854</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1116_14" TARGET="main">Change_Background</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1152_14" TARGET="main">Change_Lines_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_185_13" TARGET="main">Char_Check_Router</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1080_14" TARGET="main">Clear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_968_16" TARGET="main">Clear_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_981_14" TARGET="main">Clear_On_Next_Update</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1533_14" TARGET="main">Clear_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1094_14" TARGET="main">Clear_To_End_Of_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1087_14" TARGET="main">Clear_To_End_Of_Screen</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_98_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:98</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_99_13" TARGET="main">Col -  terminal_interface-curses-text_io.ads:99</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2262_16" TARGET="main">Colorcontent</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1322_16" TARGET="main">Copywin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2229_16" TARGET="main">Colorcontent</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1744_14" TARGET="main">Color_Content</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_415_13" TARGET="main">Columns</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1174_14" TARGET="main">Copy</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1267_16" TARGET="main">Copywin</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_167_13" TARGET="main">Copy_Arg</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_774_16" TARGET="main">Count -  terminal_interface-curses-forms.adb:774</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_912_16" TARGET="main">Count -  terminal_interface-curses-menus.adb:912</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13" TARGET="main">Create -  terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_293_13" TARGET="main">Create -  terminal_interface-curses-forms.ads:293</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_623_13" TARGET="main">Create -  terminal_interface-curses-forms.ads:623</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_191_13" TARGET="main">Create -  terminal_interface-curses-menus.ads:191</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_638_13" TARGET="main">Create -  terminal_interface-curses-menus.ads:638</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_67_13" TARGET="main">Create -  terminal_interface-curses-panels.ads:67</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_569_13" TARGET="main">Create -  terminal_interface-curses.ads:569</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_729_13" TARGET="main">Current -  terminal_interface-curses-forms.ads:729</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_294_13" TARGET="main">Current -  terminal_interface-curses-menus.ads:294</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_481_13" TARGET="main">Current_Window</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_300_16" TARGET="main">Curr_Item</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2475_16" TARGET="main">curses_versionC</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2349_16" TARGET="main">Curs_Set</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2461_16" TARGET="main">C_Assume_Default_Colors</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Builtin_Router</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2459_17" TARGET="main">curses_freeall</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1859_14" TARGET="main">Curses_Free_All</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1846_13" TARGET="main">Curses_Version</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2451_16" TARGET="main">curses_versionC</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2316_16" TARGET="main">Curs_Set</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2437_16" TARGET="main">C_Assume_Default_Colors</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_148_13" TARGET="main">C_Builtin_Router</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Choice_Router</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13" TARGET="main">C_Generic_Choice</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13" TARGET="main">C_Generic_Type</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2449_16" TARGET="main">C_Use_Default_Colors</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2425_16" TARGET="main">C_Use_Default_Colors</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/D.htm
+--- ncurses-5.6/doc/html/ada/funcs/D.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/D.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,19 +4,44 @@
+ <H2>Functions - D</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2033_16" TARGET="main">Defkey</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2281_16" TARGET="main">Def_Prog_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2283_16" TARGET="main">Def_Shell_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2065_16" TARGET="main">Delayoutput</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_692_13" TARGET="main">Data_Ahead</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_697_13" TARGET="main">Data_Behind</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_102_13" TARGET="main">Default_Field_Options</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_125_13" TARGET="main">Default_Form_Options</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_168_13" TARGET="main">Default_Item_Options</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_146_13" TARGET="main">Default_Menu_Options</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1596_14" TARGET="main">Define_Key</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2000_16" TARGET="main">Defkey</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2248_16" TARGET="main">Def_Prog_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2250_16" TARGET="main">Def_Shell_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2032_16" TARGET="main">Delayoutput</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1633_14" TARGET="main">Delay_Output</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_315_14" TARGET="main">Delete -  terminal_interface-curses-forms.ads:315</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_634_14" TARGET="main">Delete -  terminal_interface-curses-forms.ads:634</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_203_14" TARGET="main">Delete -  terminal_interface-curses-menus.ads:203</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_645_14" TARGET="main">Delete -  terminal_interface-curses-menus.ads:645</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_139_14" TARGET="main">Delete -  terminal_interface-curses-panels.ads:139</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_588_14" TARGET="main">Delete -  terminal_interface-curses.ads:588</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1334_14" TARGET="main">Delete_Character -  terminal_interface-curses.ads:1334</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1339_14" TARGET="main">Delete_Character -  terminal_interface-curses.ads:1339</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1212_14" TARGET="main">Delete_Line</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_156_16" TARGET="main">Del_Panel</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_16" TARGET="main">Derwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_604_13" TARGET="main">Derived_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_298_16" TARGET="main">Derwin</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_126_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:126</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_270_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:270</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_278_16" TARGET="main">Descname -  terminal_interface-curses-menus.adb:278</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_274_14" TARGET="main">Description -  terminal_interface-curses-menus.ads:274</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_278_14" TARGET="main">Description -  terminal_interface-curses-menus.ads:278</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_134_14" TARGET="main">Dispatch_Event</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1114_16" TARGET="main">Do_Update</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_374_16" TARGET="main">Dupwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1059_16" TARGET="main">Do_Update</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_711_13" TARGET="main">Driver -  terminal_interface-curses-forms.ads:711</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_660_13" TARGET="main">Driver -  terminal_interface-curses-menus.ads:660</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver -  terminal_interface-curses-menus.adb:973</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_321_13" TARGET="main">Duplicate -  terminal_interface-curses-forms.ads:321</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_614_13" TARGET="main">Duplicate -  terminal_interface-curses.ads:614</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_321_16" TARGET="main">Dupwin</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Dup_Field</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_493_14" TARGET="main">Dynamic_Info</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_559_16" TARGET="main">Dyn_Info</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/E.htm
+--- ncurses-5.6/doc/html/ada/funcs/E.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/E.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,7 +4,15 @@
+ <H2>Functions - E</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_862_16" TARGET="main">Echo</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_166_16" TARGET="main">Endwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2093_16" TARGET="main">Erasechar</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_809_16" TARGET="main">Echo</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1586_14" TARGET="main">Enable_Key</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_154_13" TARGET="main">Enclosed_In_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_113_16" TARGET="main">Endwin</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_128_14" TARGET="main">End_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_497_14" TARGET="main">End_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_495_14" TARGET="main">End_Windows</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1074_14" TARGET="main">Erase</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2060_16" TARGET="main">Erasechar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1652_13" TARGET="main">Erase_Character</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_96_14" TARGET="main">Eti_Exception</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/F.htm
+--- ncurses-5.6/doc/html/ada/funcs/F.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/F.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,10 +4,13 @@
+ <H2>Functions - F</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_601_13" TARGET="main">Fields</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_468_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:468</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_478_16" TARGET="main">Field_Back -  terminal_interface-curses-forms.adb:478</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_255_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:255</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_266_16" TARGET="main">Field_Buffer -  terminal_interface-curses-forms.adb:266</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_177_13" TARGET="main">Field_Check_Router</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_607_13" TARGET="main">Field_Count</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_424_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:424</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_434_16" TARGET="main">Field_Fore -  terminal_interface-curses-forms.adb:434</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_213_16" TARGET="main">Field_Just</A>
+@@ -17,11 +20,20 @@
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_507_16" TARGET="main">Field_Pad</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_293_16" TARGET="main">Field_Status</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16" TARGET="main">Field_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_814_16" TARGET="main">Flash</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_116_14" TARGET="main">Fill_String -  terminal_interface-curses-aux.ads:116</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_121_13" TARGET="main">Fill_String -  terminal_interface-curses-aux.ads:121</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_761_16" TARGET="main">Flash</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_875_14" TARGET="main">Flash_Screen</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_16" TARGET="main">Fld_Info</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_65_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:65</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_66_14" TARGET="main">Flush -  terminal_interface-curses-text_io.ads:66</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2075_16" TARGET="main">Flushinp</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2042_16" TARGET="main">Flushinp</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1638_14" TARGET="main">Flush_Input</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_434_14" TARGET="main">Foreground -  terminal_interface-curses-forms.ads:434</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_439_14" TARGET="main">Foreground -  terminal_interface-curses-forms.ads:439</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_431_14" TARGET="main">Foreground -  terminal_interface-curses-menus.ads:431</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_436_14" TARGET="main">Foreground -  terminal_interface-curses-menus.ads:436</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_551_14" TARGET="main">Format</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_889_16" TARGET="main">Form_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_867_16" TARGET="main">Form_Opts_Off</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_864_16" TARGET="main">Form_Opts_On</A>
+@@ -30,9 +42,14 @@
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_628_16" TARGET="main">Form_Sub</A>
+ <LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16" TARGET="main">Form_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_600_16" TARGET="main">Form_Win</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_136_14" TARGET="main">Free -  terminal_interface-curses-forms.ads:136</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_180_14" TARGET="main">Free -  terminal_interface-curses-menus.ads:180</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_825_16" TARGET="main">Free -  terminal_interface-curses-forms.adb:825</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_958_16" TARGET="main">Free -  terminal_interface-curses-menus.adb:958</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_131_16" TARGET="main">Freeitem</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_172_14" TARGET="main">Free_Arg</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_133_16" TARGET="main">Free_Field</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_996_16" TARGET="main">Frm_Driver</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_781_13" TARGET="main">Function_Key</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_786_13" TARGET="main">Function_Key_Code</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/G.htm
+--- ncurses-5.6/doc/html/ada/funcs/G.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/G.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -8,26 +8,89 @@
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13" TARGET="main">Generic_Field_Check</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13" TARGET="main">Generic_Next</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13" TARGET="main">Generic_Prev</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1463_14" TARGET="main">Get -  terminal_interface-curses.ads:1463</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1474_14" TARGET="main">Get -  terminal_interface-curses.ads:1474</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1370_16" TARGET="main">GetBegX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1367_16" TARGET="main">GetBegY</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1388_16" TARGET="main">GetCurX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1385_16" TARGET="main">GetCurY</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1350_16" TARGET="main">GetMaxX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1347_16" TARGET="main">GetMaxY</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_69_16" TARGET="main">Getmouse</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1407_16" TARGET="main">GetParX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1404_16" TARGET="main">GetParY</A>
+ <LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_65_16" TARGET="main">getwin</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_64_13" TARGET="main">Get_Arg</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1125_13" TARGET="main">Get_Background</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_362_14" TARGET="main">Get_Buffer -  terminal_interface-curses-forms.ads:362</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_368_13" TARGET="main">Get_Buffer -  terminal_interface-curses-forms.ads:368</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_826_13" TARGET="main">Get_Character_Attribute -  terminal_interface-curses.ads:826</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_832_13" TARGET="main">Get_Character_Attribute -  terminal_interface-curses.ads:832</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1244_14" TARGET="main">Get_Cursor_Position</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_59_13" TARGET="main">Get_Entry</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_137_14" TARGET="main">Get_Event</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1084_16" TARGET="main">Get_Fieldindex</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_61_13" TARGET="main">Get_Fieldtype</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_565_13" TARGET="main">Get_Field_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_570_13" TARGET="main">Get_Field_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_63_13" TARGET="main">Get_Flag -  terminal_interface-curses-termcap.ads:63</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_64_13" TARGET="main">Get_Flag -  terminal_interface-curses-terminfo.ads:64</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_93_13" TARGET="main">Get_Flag -  terminal_interface-curses.adb:93</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_575_13" TARGET="main">Get_Form_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_580_13" TARGET="main">Get_Form_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_745_13" TARGET="main">Get_Index -  terminal_interface-curses-forms.ads:745</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_310_13" TARGET="main">Get_Index -  terminal_interface-curses-menus.ads:310</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Get_Itemindex</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_589_13" TARGET="main">Get_Item_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_594_13" TARGET="main">Get_Item_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_345_13" TARGET="main">Get_Justification</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_915_13" TARGET="main">Get_KeyPad_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_751_13" TARGET="main">Get_Keystroke</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_599_13" TARGET="main">Get_Menu_Init_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_532_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:532</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_540_16" TARGET="main">Get_Menu_Mark -  terminal_interface-curses-menus.adb:540</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_604_13" TARGET="main">Get_Menu_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_133_13" TARGET="main">Get_Mouse</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_67_14" TARGET="main">Get_Number -  terminal_interface-curses-termcap.ads:67</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_68_13" TARGET="main">Get_Number -  terminal_interface-curses-terminfo.ads:68</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_411_14" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:411</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_416_13" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:416</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_658_14" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:658</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_663_13" TARGET="main">Get_Options -  terminal_interface-curses-forms.ads:663</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_251_14" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:251</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_256_13" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:256</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_347_14" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:347</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_352_13" TARGET="main">Get_Options -  terminal_interface-curses-menus.ads:352</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1252_14" TARGET="main">Get_Origin_Relative_To_Parent</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1070_16" TARGET="main">Get_Page</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_758_16" TARGET="main">Get_Pattern</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1228_14" TARGET="main">Get_Size</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1522_14" TARGET="main">Get_Soft_Label_Key -  terminal_interface-curses.ads:1522</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1527_13" TARGET="main">Get_Soft_Label_Key -  terminal_interface-curses.ads:1527</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1563_13" TARGET="main">Get_Soft_Label_Key_Attributes -  terminal_interface-curses.ads:1563</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1567_13" TARGET="main">Get_Soft_Label_Key_Attributes -  terminal_interface-curses.ads:1567</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_713_16" TARGET="main">Get_Spacing</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_73_14" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:73</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_76_13" TARGET="main">Get_String -  terminal_interface-curses-termcap.ads:76</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_57_14" TARGET="main">Get_String -  terminal_interface-curses-terminfo.ads:57</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_522_13" TARGET="main">Get_Sub_Window -  terminal_interface-curses-forms.ads:522</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_378_13" TARGET="main">Get_Sub_Window -  terminal_interface-curses-menus.ads:378</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_79_13" TARGET="main">Get_Type</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-field_user_data.ads:59</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-field_user_data.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-form_user_data.ads:59</A>
++<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-forms-form_user_data.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-item_user_data.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-item_user_data.ads:69</A>
++<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:59</A>
++<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data -  terminal_interface-curses-panels-user_data.ads:59</A>
++<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data -  terminal_interface-curses-panels-user_data.ads:64</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_511_13" TARGET="main">Get_Window -  terminal_interface-curses-forms.ads:511</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_367_13" TARGET="main">Get_Window -  terminal_interface-curses-menus.ads:367</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_102_13" TARGET="main">Get_Window -  terminal_interface-curses-panels.ads:102</A>
+ <LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_48_13" TARGET="main">Get_Window -  terminal_interface-curses-putwin.ads:48</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_62_13" TARGET="main">Get_Window -  terminal_interface-curses-text_io.ads:62</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1236_14" TARGET="main">Get_Window_Position</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_471_14" TARGET="main">Grey -  terminal_interface-curses-menus.ads:471</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_476_14" TARGET="main">Grey -  terminal_interface-curses-menus.ads:476</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/H.htm
+--- ncurses-5.6/doc/html/ada/funcs/H.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/H.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,11 +4,19 @@
+ <H2>Functions - H</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_910_16" TARGET="main">Halfdelay</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2216_16" TARGET="main">Hascolors</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_600_16" TARGET="main">Haskey</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2109_16" TARGET="main">Has_Ic</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2121_16" TARGET="main">Has_Il</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_859_16" TARGET="main">Halfdelay</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_923_14" TARGET="main">Half_Delay</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2183_16" TARGET="main">Hascolors</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_547_16" TARGET="main">Haskey</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1726_13" TARGET="main">Has_Colors</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2076_16" TARGET="main">Has_Ic</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2088_16" TARGET="main">Has_Il</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1662_13" TARGET="main">Has_Insert_Character</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1667_13" TARGET="main">Has_Insert_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_767_13" TARGET="main">Has_Key</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_98_13" TARGET="main">Has_Mouse</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_60_13" TARGET="main">Has_String</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_97_14" TARGET="main">Hide</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_95_16" TARGET="main">Hidepanel</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_728_14" TARGET="main">Horizontal_Line</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/I.htm
+--- ncurses-5.6/doc/html/ada/funcs/I.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/I.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,19 +4,42 @@
+ <H2>Functions - I</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1045_16" TARGET="main">IDC_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1033_16" TARGET="main">IDL_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Immedok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2231_16" TARGET="main">Initcolor</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2177_16" TARGET="main">Initpair</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_153_16" TARGET="main">Initscr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_922_16" TARGET="main">Intrflush</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">Isendwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_992_17" TARGET="main">IDC_Ok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_980_16" TARGET="main">IDL_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1009_14" TARGET="main">Immediate_Update_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1014_17" TARGET="main">Immedok</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_482_14" TARGET="main">Info</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2198_16" TARGET="main">Initcolor</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2144_16" TARGET="main">Initpair</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_100_16" TARGET="main">Initscr</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1731_14" TARGET="main">Init_Color</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1712_14" TARGET="main">Init_Pair</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_486_14" TARGET="main">Init_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1499_14" TARGET="main">Init_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_489_14" TARGET="main">Init_Windows</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1371_14" TARGET="main">Insert -  terminal_interface-curses.ads:1371</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1377_14" TARGET="main">Insert -  terminal_interface-curses.ads:1377</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1389_14" TARGET="main">Insert -  terminal_interface-curses.ads:1389</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1398_14" TARGET="main">Insert -  terminal_interface-curses.ads:1398</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1204_14" TARGET="main">Insert_Delete_Lines</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1218_14" TARGET="main">Insert_Line</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_871_16" TARGET="main">Intrflush</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_123_16" TARGET="main">Isendwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_502_13" TARGET="main">Is_End_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_774_13" TARGET="main">Is_Function_Key</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_124_13" TARGET="main">Is_Hidden</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_851_16" TARGET="main">Is_Keypad</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_50_13" TARGET="main">Is_MinusOne_Pointer</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1119_16" TARGET="main">Is_New</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_763_13" TARGET="main">Is_New_Page</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1035_16" TARGET="main">Is_Scroll_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1160_13" TARGET="main">Is_Touched -  terminal_interface-curses.ads:1160</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1165_13" TARGET="main">Is_Touched -  terminal_interface-curses.ads:1165</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_128_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:128</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_253_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:253</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Itemname -  terminal_interface-curses-menus.adb:261</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_623_13" TARGET="main">Items</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_629_13" TARGET="main">Item_Count</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_860_16" TARGET="main">Item_Init</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Item_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_214_16" TARGET="main">Item_Opts_Off</A>
+Index: doc/html/ada/funcs/K.htm
+--- ncurses-5.6/doc/html/ada/funcs/K.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/K.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,8 +4,11 @@
+ <H2>Functions - K</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_117_16" TARGET="main">Keyname</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2020_16" TARGET="main">Keyok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_893_16" TARGET="main">Keypad</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2101_16" TARGET="main">Killchar</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_64_16" TARGET="main">Keyname</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1987_16" TARGET="main">Keyok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_840_16" TARGET="main">Keypad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1610_14" TARGET="main">Key_Name -  terminal_interface-curses.ads:1610</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1616_13" TARGET="main">Key_Name -  terminal_interface-curses.ads:1616</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2068_16" TARGET="main">Killchar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1657_13" TARGET="main">Kill_Character</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/L.htm
+--- ncurses-5.6/doc/html/ada/funcs/L.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/L.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,12 +4,17 @@
+ <H2>Functions - L</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1057_16" TARGET="main">Leave_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1002_14" TARGET="main">Leave_Cursor_After_Update</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">Leave_Ok</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_101_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:101</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_102_13" TARGET="main">Line -  terminal_interface-curses-text_io.ads:102</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_412_13" TARGET="main">Lines</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_77_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:77</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_78_13" TARGET="main">Line_Length -  terminal_interface-curses-text_io.ads:78</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_328_13" TARGET="main">Link</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_172_16" TARGET="main">Lnk_Field</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2143_16" TARGET="main">Longname -  terminal_interface-curses.adb:2143</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2151_16" TARGET="main">Longname -  terminal_interface-curses.adb:2151</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2110_16" TARGET="main">Longname -  terminal_interface-curses.adb:2110</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2118_16" TARGET="main">Longname -  terminal_interface-curses.adb:2118</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1677_14" TARGET="main">Long_Name -  terminal_interface-curses.ads:1677</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1681_13" TARGET="main">Long_Name -  terminal_interface-curses.ads:1681</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/M.htm
+--- ncurses-5.6/doc/html/ada/funcs/M.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/M.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,6 +4,9 @@
+ <H2>Functions - M</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_162_13" TARGET="main">Make_Arg</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_409_14" TARGET="main">Mark -  terminal_interface-curses-menus.ads:409</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_413_14" TARGET="main">Mark -  terminal_interface-curses-menus.ads:413</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_608_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:608</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_618_16" TARGET="main">Menu_Back -  terminal_interface-curses-menus.adb:618</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_787_16" TARGET="main">Menu_Fmt</A>
+@@ -20,19 +23,25 @@
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_884_16" TARGET="main">Menu_Term</A>
+ <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16" TARGET="main">Menu_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_446_16" TARGET="main">Menu_Win</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_882_16" TARGET="main">Meta</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_829_16" TARGET="main">Meta</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_113_16" TARGET="main">MMask</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_214_16" TARGET="main">Mouseinterval</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_55_16" TARGET="main">Mouse_Avail</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_161_13" TARGET="main">Mouse_Interval</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_612_14" TARGET="main">Move -  terminal_interface-curses-forms.ads:612</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_117_14" TARGET="main">Move -  terminal_interface-curses-panels.ads:117</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_786_16" TARGET="main">Move -  terminal_interface-curses-forms.adb:786</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_132_16" TARGET="main">Move -  terminal_interface-curses-panels.adb:132</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_403_16" TARGET="main">Mvderwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_229_16" TARGET="main">mvwaddch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1613_16" TARGET="main">Mvwdelch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_389_16" TARGET="main">Mvwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1637_16" TARGET="main">Mvwinch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1662_16" TARGET="main">Mvwinsch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1701_16" TARGET="main">Mvwinsnstr</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_511_14" TARGET="main">Move_Cursor</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_626_14" TARGET="main">Move_Derived_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_619_14" TARGET="main">Move_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_350_16" TARGET="main">Mvderwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">mvwaddch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1580_16" TARGET="main">Mvwdelch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_336_16" TARGET="main">Mvwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1604_16" TARGET="main">Mvwinch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1629_16" TARGET="main">Mvwinsch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1668_16" TARGET="main">Mvwinsnstr</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_916_16" TARGET="main">M_Post -  terminal_interface-curses-forms.adb:916</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_354_16" TARGET="main">M_Post -  terminal_interface-curses-menus.adb:354</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_643_16" TARGET="main">M_Scale -  terminal_interface-curses-forms.adb:643</A>
+Index: doc/html/ada/funcs/N.htm
+--- ncurses-5.6/doc/html/ada/funcs/N.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/N.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,24 +4,32 @@
+ <H2>Functions - N</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2362_16" TARGET="main">Napms</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_265_14" TARGET="main">Name -  terminal_interface-curses-menus.ads:265</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_268_14" TARGET="main">Name -  terminal_interface-curses-menus.ads:268</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2329_16" TARGET="main">Napms</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1806_14" TARGET="main">Nap_Milli_Seconds</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_116_16" TARGET="main">Newfield</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_804_16" TARGET="main">NewForm</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_98_16" TARGET="main">Newitem</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_939_16" TARGET="main">Newmenu</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1460_16" TARGET="main">Newpad</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1427_16" TARGET="main">Newpad</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_51_16" TARGET="main">Newpanel</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_287_16" TARGET="main">Newwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_234_16" TARGET="main">Newwin</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_222_13" TARGET="main">New_Fieldtype</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_86_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:86</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_87_14" TARGET="main">New_Line -  terminal_interface-curses-text_io.ads:87</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1267_13" TARGET="main">New_Pad</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_89_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:89</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_90_14" TARGET="main">New_Page -  terminal_interface-curses-text_io.ads:90</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1000_16" TARGET="main">NL</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_826_16" TARGET="main">NoCbreak</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_953_16" TARGET="main">Nodelay</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_864_16" TARGET="main">NoEcho</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">NoNL</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_845_16" TARGET="main">NoRaw</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_988_16" TARGET="main">Notimeout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_17" TARGET="main">No_Qiflush</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_193_13" TARGET="main">Next_Router</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_947_16" TARGET="main">NL</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_773_16" TARGET="main">NoCbreak</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_902_16" TARGET="main">Nodelay</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_811_16" TARGET="main">NoEcho</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_949_16" TARGET="main">NoNL</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_792_16" TARGET="main">NoRaw</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_935_16" TARGET="main">Notimeout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_885_17" TARGET="main">No_Qiflush</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_421_13" TARGET="main">Number_Of_Colors</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_424_13" TARGET="main">Number_Of_Color_Pairs</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/O.htm
+--- ncurses-5.6/doc/html/ada/funcs/O.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/O.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -5,6 +5,8 @@
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+ <LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_59_17" TARGET="main">Output</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1363_16" TARGET="main">Overlay</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1351_16" TARGET="main">Overwrite</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1194_14" TARGET="main">Overlay -  terminal_interface-curses.ads:1194</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1308_16" TARGET="main">Overlay -  terminal_interface-curses.adb:1308</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1188_14" TARGET="main">Overwrite -  terminal_interface-curses.ads:1188</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1296_16" TARGET="main">Overwrite -  terminal_interface-curses.adb:1296</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/P.htm
+--- ncurses-5.6/doc/html/ada/funcs/P.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/P.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,17 +4,33 @@
+ <H2>Functions - P</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_472_14" TARGET="main">Pad_Character -  terminal_interface-curses-forms.ads:472</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_490_14" TARGET="main">Pad_Character -  terminal_interface-curses-menus.ads:490</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_740_13" TARGET="main">Page</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_80_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:80</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_81_13" TARGET="main">Page_Length -  terminal_interface-curses-text_io.ads:81</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2199_16" TARGET="main">Paircontent</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2166_16" TARGET="main">Paircontent</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1719_14" TARGET="main">Pair_Content</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_144_16" TARGET="main">Panel_Hidden</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_65_16" TARGET="main">Panel_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_105_16" TARGET="main">Panel_Win</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1564_16" TARGET="main">Pechochar</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1539_16" TARGET="main">Pnoutrefresh</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_527_14" TARGET="main">Pattern</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1531_16" TARGET="main">Pechochar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1352_13" TARGET="main">Peek -  terminal_interface-curses.ads:1352</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1358_13" TARGET="main">Peek -  terminal_interface-curses.ads:1358</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1414_14" TARGET="main">Peek -  terminal_interface-curses.ads:1414</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1423_14" TARGET="main">Peek -  terminal_interface-curses.ads:1423</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1438_14" TARGET="main">Peek -  terminal_interface-curses.ads:1438</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1447_14" TARGET="main">Peek -  terminal_interface-curses.ads:1447</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1506_16" TARGET="main">Pnoutrefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_683_14" TARGET="main">Position_Cursor -  terminal_interface-curses-forms.ads:683</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_394_14" TARGET="main">Position_Cursor -  terminal_interface-curses-menus.ads:394</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_672_14" TARGET="main">Post -  terminal_interface-curses-forms.ads:672</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_322_14" TARGET="main">Post -  terminal_interface-curses-menus.ads:322</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_941_16" TARGET="main">Pos_Form_Cursor</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_499_16" TARGET="main">Pos_Menu_Cursor</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1509_16" TARGET="main">Prefresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1476_16" TARGET="main">Prefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_201_13" TARGET="main">Prev_Router</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:54</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14" TARGET="main">Put -  terminal_interface-curses-text_io-complex_io.ads:61</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14" TARGET="main">Put -  terminal_interface-curses-text_io-decimal_io.ads:50</A>
+Index: doc/html/ada/funcs/Q.htm
+--- ncurses-5.6/doc/html/ada/funcs/Q.htm	2005-05-14 17:34:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/Q.htm	2007-05-05 20:35:19.000000000 +0000
+@@ -4,5 +4,5 @@
+ <H2>Functions - Q</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_934_17" TARGET="main">Qiflush</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_883_17" TARGET="main">Qiflush</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/R.htm
+--- ncurses-5.6/doc/html/ada/funcs/R.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/R.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,14 +4,36 @@
+ <H2>Functions - R</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_843_16" TARGET="main">Raw</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1145_16" TARGET="main">Redrawwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_790_16" TARGET="main">Raw</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_589_14" TARGET="main">Redefine -  terminal_interface-curses-forms.ads:589</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_613_14" TARGET="main">Redefine -  terminal_interface-curses-menus.ads:613</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1059_14" TARGET="main">Redraw -  terminal_interface-curses.ads:1059</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1063_14" TARGET="main">Redraw -  terminal_interface-curses.ads:1063</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1090_16" TARGET="main">Redrawwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1045_14" TARGET="main">Refresh -  terminal_interface-curses.ads:1045</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1283_14" TARGET="main">Refresh -  terminal_interface-curses.ads:1283</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1512_14" TARGET="main">Refresh_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1517_14" TARGET="main">Refresh_Soft_Label_Keys_Without_Update</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1052_14" TARGET="main">Refresh_Without_Update -  terminal_interface-curses.ads:1052</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1295_14" TARGET="main">Refresh_Without_Update -  terminal_interface-curses.ads:1295</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_101_14" TARGET="main">Register_Reportable_Event</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_110_14" TARGET="main">Register_Reportable_Events</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14" TARGET="main">Release</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_111_14" TARGET="main">Replace</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_119_16" TARGET="main">Replace_Pan</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_276_14" TARGET="main">Request_Name -  terminal_interface-curses-forms.ads:276</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_279_14" TARGET="main">Request_Name -  terminal_interface-curses-forms.ads:279</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_106_14" TARGET="main">Request_Name -  terminal_interface-curses-menus.ads:106</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_109_14" TARGET="main">Request_Name -  terminal_interface-curses-menus.ads:109</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:80</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_88_16" TARGET="main">Request_Name -  terminal_interface-curses-menus.adb:88</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2327_16" TARGET="main">Resetty</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2299_16" TARGET="main">Reset_Prog_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2301_16" TARGET="main">Reset_Shell_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2338_16" TARGET="main">Ripoffline</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2294_16" TARGET="main">Resetty</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1765_14" TARGET="main">Reset_Curses_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2266_16" TARGET="main">Reset_Prog_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2268_16" TARGET="main">Reset_Shell_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1776_14" TARGET="main">Reset_Terminal_State</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1911_14" TARGET="main">Resize</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1538_14" TARGET="main">Restore_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2305_16" TARGET="main">Ripoffline</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1789_14" TARGET="main">Rip_Off_Lines</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/S.htm
+--- ncurses-5.6/doc/html/ada/funcs/S.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/S.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,24 +4,51 @@
+ <H2>Functions - S</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2317_16" TARGET="main">Savetty</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1081_16" TARGET="main">Scrollok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2499_16" TARGET="main">scr_dump</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2525_16" TARGET="main">scr_init</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2512_16" TARGET="main">scr_restore</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2538_16" TARGET="main">scr_set</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Savetty</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1759_14" TARGET="main">Save_Curses_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1771_14" TARGET="main">Save_Terminal_State</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_527_14" TARGET="main">Scale -  terminal_interface-curses-forms.ads:527</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_383_14" TARGET="main">Scale -  terminal_interface-curses-menus.ads:383</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1867_14" TARGET="main">Screen_Dump_To_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1875_14" TARGET="main">Screen_Init_From_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1871_14" TARGET="main">Screen_Restore_From_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1879_14" TARGET="main">Screen_Set_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1322_14" TARGET="main">Scroll</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1022_13" TARGET="main">Scrolling_Allowed</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1024_16" TARGET="main">Scrollok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2489_16" TARGET="main">scr_dump</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2515_16" TARGET="main">scr_init</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2502_16" TARGET="main">scr_restore</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2528_16" TARGET="main">scr_set</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_446_14" TARGET="main">Set_Background -  terminal_interface-curses-forms.ads:446</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_443_14" TARGET="main">Set_Background -  terminal_interface-curses-menus.ads:443</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1108_14" TARGET="main">Set_Background -  terminal_interface-curses.ads:1108</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_354_14" TARGET="main">Set_Buffer</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_886_14" TARGET="main">Set_Cbreak_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_817_14" TARGET="main">Set_Character_Attributes</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_92_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:92</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_93_14" TARGET="main">Set_Col -  terminal_interface-curses-text_io.ads:93</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_838_14" TARGET="main">Set_Color</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_723_14" TARGET="main">Set_Current -  terminal_interface-curses-forms.ads:723</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_288_14" TARGET="main">Set_Current -  terminal_interface-curses-menus.ads:288</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1026_16" TARGET="main">Set_Current_Fld</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_287_16" TARGET="main">Set_Curr_Item</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1801_14" TARGET="main">Set_Cursor_Visibility</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_898_14" TARGET="main">Set_Echo_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_964_14" TARGET="main">Set_Escape_Timer_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_595_14" TARGET="main">Set_Fields</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_227_13" TARGET="main">Set_Fieldtype_Arg</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_234_13" TARGET="main">Set_Fieldtype_Choice</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_448_16" TARGET="main">Set_Field_Back</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_404_16" TARGET="main">Set_Field_Fore</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_665_16" TARGET="main">Set_Field_Init</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_541_14" TARGET="main">Set_Field_Init_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_196_16" TARGET="main">Set_Field_Just</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_310_16" TARGET="main">Set_Field_Max</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_330_16" TARGET="main">Set_Field_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_490_16" TARGET="main">Set_Field_Pad</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_681_16" TARGET="main">Set_Field_Term</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_547_14" TARGET="main">Set_Field_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alpha.ads:49</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14" TARGET="main">Set_Field_Type -  terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
+@@ -41,58 +68,124 @@
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-numeric.adb:56</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types-user.adb:56</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_153_16" TARGET="main">Set_Fld_Type -  terminal_interface-curses-forms-field_types.adb:153</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_928_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_426_14" TARGET="main">Set_Foreground -  terminal_interface-curses-forms.ads:426</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_423_14" TARGET="main">Set_Foreground -  terminal_interface-curses-menus.ads:423</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_537_14" TARGET="main">Set_Format</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_697_16" TARGET="main">Set_Form_Init</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_553_14" TARGET="main">Set_Form_Init_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_845_16" TARGET="main">Set_Form_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_613_16" TARGET="main">Set_Form_Sub</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_713_16" TARGET="main">Set_Form_Term</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_559_14" TARGET="main">Set_Form_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16" TARGET="main">Set_Form_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_585_16" TARGET="main">Set_Form_Win</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_733_16" TARGET="main">Set_Frm_Fields</A>
+ <LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1056_16" TARGET="main">Set_Frm_Page</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16" TARGET="main">Set_Ftyp</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_463_14" TARGET="main">Set_Grey</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_618_14" TARGET="main">Set_Items -  terminal_interface-curses-menus.ads:618</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items -  terminal_interface-curses-menus.adb:893</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_805_16" TARGET="main">Set_Item_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_565_14" TARGET="main">Set_Item_Init_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_194_16" TARGET="main">Set_Item_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_819_16" TARGET="main">Set_Item_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_571_14" TARGET="main">Set_Item_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16" TARGET="main">Set_Item_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_155_16" TARGET="main">Set_Item_Val</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_339_14" TARGET="main">Set_Justification</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_910_14" TARGET="main">Set_KeyPad_Mode</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_95_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:95</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_96_14" TARGET="main">Set_Line -  terminal_interface-curses-text_io.ads:96</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_403_14" TARGET="main">Set_Mark -  terminal_interface-curses-menus.ads:403</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark -  terminal_interface-curses-menus.adb:514</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_387_14" TARGET="main">Set_Maximum_Size</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_591_16" TARGET="main">Set_Menu_Back</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_768_16" TARGET="main">Set_Menu_Fmt</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_552_16" TARGET="main">Set_Menu_Fore</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_629_16" TARGET="main">Set_Menu_Grey</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_833_16" TARGET="main">Set_Menu_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_577_14" TARGET="main">Set_Menu_Init_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_374_16" TARGET="main">Set_Menu_Opts</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_667_16" TARGET="main">Set_Menu_Pad</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_457_16" TARGET="main">Set_Menu_Sub</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_847_16" TARGET="main">Set_Menu_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_583_14" TARGET="main">Set_Menu_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16" TARGET="main">Set_Menu_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Set_Menu_Win</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_904_14" TARGET="main">Set_Meta_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_757_14" TARGET="main">Set_New_Page</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_975_14" TARGET="main">Set_NL_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_943_14" TARGET="main">Set_NoDelay_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_397_14" TARGET="main">Set_Options -  terminal_interface-curses-forms.ads:397</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_644_14" TARGET="main">Set_Options -  terminal_interface-curses-forms.ads:644</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_236_14" TARGET="main">Set_Options -  terminal_interface-curses-menus.ads:236</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_333_14" TARGET="main">Set_Options -  terminal_interface-curses-menus.ads:333</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_466_14" TARGET="main">Set_Pad_Character -  terminal_interface-curses-forms.ads:466</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_484_14" TARGET="main">Set_Pad_Character -  terminal_interface-curses-menus.ads:484</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_734_14" TARGET="main">Set_Page -  terminal_interface-curses-forms.ads:734</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page -  terminal_interface-curses-forms.adb:1105</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_54_16" TARGET="main">Set_Panel_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_520_13" TARGET="main">Set_Pattern -  terminal_interface-curses-menus.ads:520</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern -  terminal_interface-curses-menus.adb:736</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_935_14" TARGET="main">Set_Queue_Interrupt_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_892_14" TARGET="main">Set_Raw_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1027_14" TARGET="main">Set_Scroll_Region</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1505_14" TARGET="main">Set_Soft_Label_Key</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1556_14" TARGET="main">Set_Soft_Label_Key_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1572_14" TARGET="main">Set_Soft_Label_Key_Color</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_500_14" TARGET="main">Set_Spacing -  terminal_interface-curses-menus.ads:500</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing -  terminal_interface-curses-menus.adb:693</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_376_14" TARGET="main">Set_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_516_14" TARGET="main">Set_Sub_Window -  terminal_interface-curses-forms.ads:516</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_372_14" TARGET="main">Set_Sub_Window -  terminal_interface-curses-menus.ads:372</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_643_14" TARGET="main">Set_Synch_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_952_14" TARGET="main">Set_Timeout_Mode</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">Set_Toprow</A>
+-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_299_14" TARGET="main">Set_Top_Row</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-forms-field_user_data.ads:53</A>
++<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-forms-form_user_data.ads:53</A>
++<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14" TARGET="main">Set_User_Data -  terminal_interface-curses-menus-item_user_data.ads:58</A>
++<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-menus-menu_user_data.ads:53</A>
++<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data -  terminal_interface-curses-panels-user_data.ads:53</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_212_14" TARGET="main">Set_Value</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_505_14" TARGET="main">Set_Window -  terminal_interface-curses-forms.ads:505</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_361_14" TARGET="main">Set_Window -  terminal_interface-curses-menus.ads:361</A>
++<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window -  terminal_interface-curses-text_io.ads:59</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_87_14" TARGET="main">Show</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_85_16" TARGET="main">Showpanel</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1988_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1988</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1998_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1998</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1952_16" TARGET="main">Slk_Attroff</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1950_16" TARGET="main">Slk_Attron</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1974_16" TARGET="main">Slk_Attrset</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1918_16" TARGET="main">Slk_Clear</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2008_16" TARGET="main">Slk_Color</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1852_16" TARGET="main">Slk_Init</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1902_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1902</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1910_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1910</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1891_16" TARGET="main">Slk_Noutrefresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1881_16" TARGET="main">Slk_Refresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1928_16" TARGET="main">Slk_Restore</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1864_16" TARGET="main">Slk_Set</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1938_16" TARGET="main">Slk_Touch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1479_16" TARGET="main">Subpad</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_323_16" TARGET="main">Subwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_416_16" TARGET="main">Syncok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1955_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1955</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1965_16" TARGET="main">Slk_Attr -  terminal_interface-curses.adb:1965</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1919_16" TARGET="main">Slk_Attroff</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1917_16" TARGET="main">Slk_Attron</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1941_16" TARGET="main">Slk_Attrset</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1885_16" TARGET="main">Slk_Clear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1975_16" TARGET="main">Slk_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1819_16" TARGET="main">Slk_Init</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1869_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1869</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1877_16" TARGET="main">Slk_Label -  terminal_interface-curses.adb:1877</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1858_16" TARGET="main">Slk_Noutrefresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1848_16" TARGET="main">Slk_Refresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1895_16" TARGET="main">Slk_Restore</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1831_16" TARGET="main">Slk_Set</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1905_16" TARGET="main">Slk_Touch</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_508_14" TARGET="main">Spacing</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_476_13" TARGET="main">Standard_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_800_14" TARGET="main">Standout</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1707_14" TARGET="main">Start_Color</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_123_13" TARGET="main">Start_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1446_16" TARGET="main">Subpad</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_270_16" TARGET="main">Subwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1273_13" TARGET="main">Sub_Pad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_594_13" TARGET="main">Sub_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1672_13" TARGET="main">Supported_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_806_14" TARGET="main">Switch_Character_Attribute</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_403_14" TARGET="main">Switch_Options -  terminal_interface-curses-forms.ads:403</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_650_14" TARGET="main">Switch_Options -  terminal_interface-curses-forms.ads:650</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_242_14" TARGET="main">Switch_Options -  terminal_interface-curses-menus.ads:242</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_339_14" TARGET="main">Switch_Options -  terminal_interface-curses-menus.ads:339</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1548_14" TARGET="main">Switch_Soft_Label_Key_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_638_14" TARGET="main">Synchronize_Downwards</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_633_14" TARGET="main">Synchronize_Upwards</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_363_16" TARGET="main">Syncok</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/T.htm
+--- ncurses-5.6/doc/html/ada/funcs/T.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/T.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,9 +4,12 @@
+ <H2>Functions - T</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2133_16" TARGET="main">Termattrs</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2159_16" TARGET="main">Termname -  terminal_interface-curses.adb:2159</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2167_16" TARGET="main">Termname -  terminal_interface-curses.adb:2167</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_418_13" TARGET="main">Tab_Size</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2100_16" TARGET="main">Termattrs</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1687_14" TARGET="main">Terminal_Name -  terminal_interface-curses.ads:1687</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1691_13" TARGET="main">Terminal_Name -  terminal_interface-curses.ads:1691</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2126_16" TARGET="main">Termname -  terminal_interface-curses.adb:2126</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2134_16" TARGET="main">Termname -  terminal_interface-curses.adb:2134</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_51_16" TARGET="main">tgetent</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_71_16" TARGET="main">tgetflag</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
+@@ -18,8 +21,16 @@
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:87</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:108</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_127_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:127</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_82_14" TARGET="main">Top</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_75_16" TARGET="main">Toppanel</A>
+ <LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_327_16" TARGET="main">Toprow</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_305_13" TARGET="main">Top_Row</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1141_14" TARGET="main">Touch -  terminal_interface-curses.ads:1141</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1145_14" TARGET="main">Touch -  terminal_interface-curses.ads:1145</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1543_14" TARGET="main">Touch_Soft_Label_Keys</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2426_16" TARGET="main">Transform</A>
++<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_102_14" TARGET="main">Trace_On</A>
++<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_106_14" TARGET="main">Trace_Put</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2402_16" TARGET="main">Transform</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1814_14" TARGET="main">Transform_Coordinates</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/U.htm
+--- ncurses-5.6/doc/html/ada/funcs/U.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/U.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,9 +4,20 @@
+ <H2>Functions - U</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2049_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2049</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2057_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2057</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_590_16" TARGET="main">Ungetch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2016_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2016</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2024_16" TARGET="main">Unctrl -  terminal_interface-curses.adb:2024</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_762_14" TARGET="main">Undo_Keystroke</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_537_16" TARGET="main">Ungetch</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_189_16" TARGET="main">Ungetmouse</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2484_16" TARGET="main">use_extended_namesC</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_149_14" TARGET="main">Unget_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1136_14" TARGET="main">Untouch</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1622_14" TARGET="main">Un_Control -  terminal_interface-curses.ads:1622</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1627_13" TARGET="main">Un_Control -  terminal_interface-curses.ads:1627</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_92_14" TARGET="main">Update_Panels</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1040_14" TARGET="main">Update_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1831_14" TARGET="main">Use_Default_Colors</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1851_13" TARGET="main">Use_Extended_Names</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2474_16" TARGET="main">use_extended_namesC</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_995_14" TARGET="main">Use_Insert_Delete_Character</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_988_14" TARGET="main">Use_Insert_Delete_Line</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/V.htm
+--- ncurses-5.6/doc/html/ada/funcs/V.htm	2005-05-14 17:34:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/V.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,5 +4,8 @@
+ <H2>Functions - V</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value -  terminal_interface-curses-forms-field_types-enumeration-ada.ads:53</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_218_13" TARGET="main">Value -  terminal_interface-curses-menus.ads:218</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_737_14" TARGET="main">Vertical_Line</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_227_13" TARGET="main">Visible</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/W.htm
+--- ncurses-5.6/doc/html/ada/funcs/W.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/funcs/W.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -4,50 +4,50 @@
+ <H2>Functions - W</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_204_16" TARGET="main">Waddch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_460_16" TARGET="main">Waddchnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_429_16" TARGET="main">Waddnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_708_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:708</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_731_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:731</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_667_16" TARGET="main">Wattroff</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_664_16" TARGET="main">Wattron</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_692_16" TARGET="main">Wattrset</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1214_17" TARGET="main">WBackground</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_501_16" TARGET="main">Wborder</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1224_16" TARGET="main">WChangeBkgd</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Wchgat</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1182_16" TARGET="main">Wclear</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1192_16" TARGET="main">Wclearbot</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1202_16" TARGET="main">Wcleareol</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1600_16" TARGET="main">Wdelch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_307_16" TARGET="main">Wdelwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_261_16" TARGET="main">Wechochar</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_151_16" TARGET="main">Waddch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_407_16" TARGET="main">Waddchnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_376_16" TARGET="main">Waddnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_655_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:655</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_678_16" TARGET="main">Wattrget -  terminal_interface-curses.adb:678</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_614_16" TARGET="main">Wattroff</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_611_16" TARGET="main">Wattron</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_639_16" TARGET="main">Wattrset</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1159_17" TARGET="main">WBackground</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_448_16" TARGET="main">Wborder</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1169_16" TARGET="main">WChangeBkgd</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_719_16" TARGET="main">Wchgat</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1127_16" TARGET="main">Wclear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1137_16" TARGET="main">Wclearbot</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1147_16" TARGET="main">Wcleareol</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1567_16" TARGET="main">Wdelch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_254_16" TARGET="main">Wdelwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_208_16" TARGET="main">Wechochar</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_200_16" TARGET="main">Wenclose</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1172_16" TARGET="main">Werase</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1235_16" TARGET="main">Wgetbkgd</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_576_16" TARGET="main">Wgetch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1812_16" TARGET="main">Wgetnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_543_16" TARGET="main">Whline</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1626_16" TARGET="main">Winch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1764_16" TARGET="main">Winchnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1722_16" TARGET="main">Winnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1648_16" TARGET="main">Winsch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1376_16" TARGET="main">Winsdelln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1680_16" TARGET="main">Winsnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1288_16" TARGET="main">WLineTouched</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_190_16" TARGET="main">Wmove</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1135_16" TARGET="main">Wnoutrefresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1158_16" TARGET="main">Wredrawln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1124_16" TARGET="main">Wrefresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2552_16" TARGET="main">wresize</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1588_16" TARGET="main">Wscrl</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1101_16" TARGET="main">Wsetscrreg</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_754_16" TARGET="main">Wset_Color</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_644_16" TARGET="main">wstandend</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">wstandout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_965_16" TARGET="main">Wtimeout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">Wtouchln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_560_16" TARGET="main">Wvline</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1301_16" TARGET="main">WWinTouched</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_66_13" TARGET="main">W_Get_Element</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1117_16" TARGET="main">Werase</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1180_16" TARGET="main">Wgetbkgd</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_523_16" TARGET="main">Wgetch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1779_16" TARGET="main">Wgetnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_490_16" TARGET="main">Whline</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1593_16" TARGET="main">Winch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1731_16" TARGET="main">Winchnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1689_16" TARGET="main">Winnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1615_16" TARGET="main">Winsch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1321_16" TARGET="main">Winsdelln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1647_16" TARGET="main">Winsnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1233_16" TARGET="main">WLineTouched</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_137_16" TARGET="main">Wmove</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1080_16" TARGET="main">Wnoutrefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_151_14" TARGET="main">Wrap_Builtin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1103_16" TARGET="main">Wredrawln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Wrefresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2542_16" TARGET="main">wresize</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1555_16" TARGET="main">Wscrl</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1046_16" TARGET="main">Wsetscrreg</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_701_16" TARGET="main">Wset_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_591_16" TARGET="main">wstandend</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_589_16" TARGET="main">wstandout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_914_17" TARGET="main">Wtimeout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1191_16" TARGET="main">Wtouchln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_507_16" TARGET="main">Wvline</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">WWinTouched</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/table.html
+--- ncurses-5.6/doc/html/ada/table.html	2000-12-02 23:38:22.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/table.html	2007-05-05 20:35:21.000000000 +0000
+@@ -10,36 +10,38 @@
+ <TABLE ALIGN=CENTER BORDER>
+ <TR ALIGN=LEFT>
+ <TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
++<TR><TD>_nc_freeall()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Curses_Free_All</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+ <TR><TD>_tracef()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_2">Trace_Put</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+-<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Assume_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
+-<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
++<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Assume_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
++<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+ <TR><TD>bottom_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_3">Bottom</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+-<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+-<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+-<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
++<TR><TD>box()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Box</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
++<TR><TD>can_change_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_146">Can_Change_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>cbreak()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Cbreak_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>clearok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Clear_On_Next_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>color_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Color_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>copywin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Copy</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+ <TR><TD>current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_58">Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
+ <TR><TD>current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_14">Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+-<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_152">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+-<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
++<TR><TD>curs_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Set_Cursor_Visibility</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>curscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Current_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
++<TR><TD>curses_version()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Curses_Version</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
+ <TR><TD>data_ahead()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_54">Data_Ahead</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
+ <TR><TD>data_behind()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_55">Data_Behind</A></TD><TD><A HREF="../man/form_data.3x.html">form_data.3x</A></TD></TR>
+-<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_147">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+-<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
++<TR><TD>def_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Save_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>define_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Define_Key</A></TD><TD><A HREF="../man/define_key.3x.html">define_key.3x</A></TD></TR>
+ <TR><TD>del_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_15">Delete</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+-<TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
++<TR><TD>delay_output()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Delay_Output</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
++<TR><TD>delwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Delete</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>derwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>doupdate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Update_Screen</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+ <TR><TD>dup_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_4">Duplicate</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
+-<TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_14">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>dupwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Duplicate</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+ <TR><TD>dynamic_field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_26">Dynamic_Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
+-<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+-<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>echo()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_Echo_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>endwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">End_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
++<TR><TD>erasechar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Erase_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+ <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_21">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
+ <TR><TD>field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_22">Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
+ <TR><TD>field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_9">Get_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
+@@ -59,8 +61,8 @@
+ <TR><TD>field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_Type</A></TD><TD><A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></TD></TR>
+ <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
+ <TR><TD>field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
+-<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
+-<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_129">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
++<TR><TD>flash()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_41">Flash_Screen</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
++<TR><TD>flushinp()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_130">Flush_Input</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+ <TR><TD>form_driver()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_56">Driver</A></TD><TD><A HREF="../man/form_driver.3x.html">form_driver.3x</A></TD></TR>
+ <TR><TD>form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_42">Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
+ <TR><TD>form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_38">Get_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
+@@ -77,28 +79,28 @@
+ <TR><TD>free_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_47">Delete</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
+ <TR><TD>free_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
+ <TR><TD>free_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_60">Delete</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.3x</A></TD></TR>
+-<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+-<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
++<TR><TD>getbegyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Window_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
++<TR><TD>getmaxyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_85">Get_Size</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+ <TR><TD>getmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_2">Get_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
+-<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+-<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_86">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
+-<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+-<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
++<TR><TD>getparyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">Get_Origin_Relative_To_Parent</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
++<TR><TD>getyx()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_87">Get_Cursor_Position</A></TD><TD><A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></TD></TR>
++<TR><TD>halfdelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Half_Delay</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>has_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Has_Colors</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>has_ic()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_134">Has_Insert_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>has_il()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Has_Insert_Line</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>has_key()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Has_Key</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+ <TR><TD>hide_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_7">Hide</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_54">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_144">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+-<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+-<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_2">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+-<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+-<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_47">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+-<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+-<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_5">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
++<TR><TD>idcok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Use_Insert_Delete_Character</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>idlok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_55">Use_Insert_Delete_Line</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>immedok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Immediate_Update_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>init_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_145">Init_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>init_pair()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Init_Pair</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_3">Init_Screen</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
++<TR><TD>initscr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_4">Init_Windows</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
++<TR><TD>intrflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Flush_On_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>is_linetouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_77">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>is_wintouched()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_78">Is_Touched</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>isendwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Is_End_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+ <TR><TD>item_count()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_58">Item_Count</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
+ <TR><TD>item_description();</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_12">Description</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
+ <TR><TD>item_index()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_17">Get_Index</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+@@ -112,30 +114,30 @@
+ <TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
+ <TR><TD>item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_5">Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
+ <TR><TD>item_visible()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_6">Visible</A></TD><TD><A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></TD></TR>
+-<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_124">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+ <TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_125">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+-<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
+-<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_132">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_56">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>keyname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Key_Name</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
++<TR><TD>keyok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_123">Enable_Key</A></TD><TD><A HREF="../man/keyok.3x.html">keyok.3x</A></TD></TR>
++<TR><TD>keypad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_46">Set_KeyPad_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>killchar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_133">Kill_Character</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>leaveok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_57">Leave_Cursor_After_Update</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+ <TR><TD>link_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_5">Link</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
+-<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+ <TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_137">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+-<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>longname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Long_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_35">Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
++<TR><TD>menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_36">Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>menu_driver()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_61">Driver</A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
+-<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+-<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_32">Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
++<TR><TD>menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_33">Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_47">Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
+-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
++<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_54">Get_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
+ <TR><TD>menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_57">Items</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
+ <TR><TD>menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_30">Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
+ <TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_21">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
+ <TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_22">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
+ <TR><TD>menu_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_20">Switch_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
+-<TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_41">Pad_Character</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_45">Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
+ <TR><TD>menu_requestname.3x</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_62"></A></TD><TD><A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></TD></TR>
+ <TR><TD>menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_43">Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
+@@ -144,25 +146,25 @@
+ <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
+ <TR><TD>menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
+ <TR><TD>menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_24">Get_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
+-<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_44">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>meta()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_45">Set_Meta_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+ <TR><TD>mouseinterval()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_5">Mouse_Interval</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
+ <TR><TD>mousemask()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_1">Start_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
+ <TR><TD>move_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_44">Move</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
+ <TR><TD>move_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_11">Move</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+-<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
+-<TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
+-<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+-<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
+-<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_15">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+-<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+-<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+-<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+-<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
+-<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_153">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>mvwaddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
++<TR><TD>mvwaddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
++<TR><TD>mvwaddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
++<TR><TD>mvwchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_39">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>mvwdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
++<TR><TD>mvwgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
++<TR><TD>mvwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>mvwinch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
++<TR><TD>mvwinchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
++<TR><TD>mvwinnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
++<TR><TD>mvwinsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
++<TR><TD>mvwinsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
++<TR><TD>napms()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Nap_Milli_Seconds</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+ <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
+ <TR><TD>new_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_2">New_Field</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></TD></TR>
+ <TR><TD>new_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_45">Create</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
+@@ -173,14 +175,14 @@
+ <TR><TD>new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_63">Is_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></TD></TR>
+ <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>new_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_2">New_Panel</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_88">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+-<TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+-<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_79">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
+-<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_142">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>newpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">New_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
++<TR><TD>newwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_11">Create</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>nl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_53">Set_NL_Mode</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>nodelay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_NoDelay_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>notimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_52">Set_Escape_Time_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>overlay()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Overlay</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
++<TR><TD>overwrite()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_80">Overwrite</A></TD><TD><A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></TD></TR>
++<TR><TD>pair_content()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_143">Pair_Content</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+ <TR><TD>panel_above()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_13">Above</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>panel_below()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_14">Below</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>panel_hidden()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_12">Is_Hidden</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+@@ -188,28 +190,28 @@
+ <TR><TD>panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_8">Get_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>panel_window()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_9">Panel_Window</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+-<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
++<TR><TD>pechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Add_Character_To_Pad_And_Echo_It</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
++<TR><TD>pnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_92">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+ <TR><TD>pos_form_cursor()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_53">Position_Cursor</A></TD><TD><A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></TD></TR>
+ <TR><TD>pos_menu_cursor()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_28">Position_Cursor</A></TD><TD><A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></TD></TR>
+ <TR><TD>post_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_52">Post</A></TD><TD><A HREF="../man/form_post.3x.html">form_post.3x</A></TD></TR>
+ <TR><TD>post_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_18">Post</A></TD><TD><A HREF="../man/menu_post.3x.html">menu_post.3x</A></TD></TR>
+-<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+-<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_48">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_42">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
++<TR><TD>prefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_91">Refresh</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
++<TR><TD>qiflush()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_49">Set_Queue_Interrupt_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>raw()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_43">Set_Raw_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>redrawwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+ <TR><TD>replace_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_10">Replace</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_148">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+-<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+-<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+-<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>reset_prog_mode()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_149">Reset_Curses_Mode</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>resetty();</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_151">Reset_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>ripoffline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_152">Rip_Off_Lines</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
++<TR><TD>savetty()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_150">Save_Terminal_State</A></TD><TD><A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></TD></TR>
+ <TR><TD>scale_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_31">Scale</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
+ <TR><TD>scale_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_27">Scale</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
+-<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+-<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+-<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_159">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+-<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
+-<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_58">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>scr_dump()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_160">Screen_Dump_To_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
++<TR><TD>scr_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Screen_Init_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
++<TR><TD>scr_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_161">Screen_Restore_From_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
++<TR><TD>scr_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_163">Screen_Set_File</A></TD><TD><A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></TD></TR>
++<TR><TD>scrollok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Allow_Scrolling</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+ <TR><TD>set_current_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_57">Set_Current</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
+ <TR><TD>set_current_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_13">Set_Current</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+ <TR><TD>set_field_back()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_20">Set_Background</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
+@@ -238,15 +240,15 @@
+ <TR><TD>set_item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_49">Set_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
+ <TR><TD>set_item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
+ <TR><TD>set_item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_4">Set_Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
+-<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
+-<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
++<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>set_menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_46">Set_Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
+-<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>set_menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_50">Set_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
+ <TR><TD>set_menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_56">Redefine</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
+ <TR><TD>set_menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_29">Set_Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
+ <TR><TD>set_menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_19">Set_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
+-<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
++<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></TD></TR>
+ <TR><TD>set_menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_44">Set_Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
+ <TR><TD>set_menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_42">Set_Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
+ <TR><TD>set_menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_25">Set_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
+@@ -257,83 +259,83 @@
+ <TR><TD>set_panel_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>set_top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_15">Set_Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+ <TR><TD>show_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_5">Show</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+ <TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_120">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_108">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_attr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_121">Get_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_attron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_118">Switch_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_attrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_119">Set_Soft_Label_Key_Attributes</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_clear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Clear_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_122">Set_Soft_Label_Key_Color</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_init()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Init_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+ <TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_113">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_115">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_109">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
+-<TR><TD>standout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_31">Standout</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
++<TR><TD>slk_label()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_114">Get_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_noutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_112">Refresh_Soft_Label_Keys_Without_Update</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_refresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_111">Refresh_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_restore()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_116">Restore_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_110">Set_Soft_Label_Key</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>slk_touch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_117">Touch_Soft_Label_Keys</A></TD><TD><A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></TD></TR>
++<TR><TD>standout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Standout</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>start_color()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_141">Start_Color</A></TD><TD><A HREF="../man/curs_color.3x.html">curs_color.3x</A></TD></TR>
+ <TR><TD>stdscr</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_1">Standard_Window</A></TD><TD><A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></TD></TR>
+-<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_89">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
+-<TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_12">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_135">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+-<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_138">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>subpad()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_90">Sub_Pad</A></TD><TD><A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></TD></TR>
++<TR><TD>subwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_13">Sub_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>syncok()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Set_Synch_Mode</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>termattrs()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_136">Supported_Attributes</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+ <TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_139">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
++<TR><TD>termname()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_140">Terminal_Name</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
+ <TR><TD>top_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_4">Top</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+ <TR><TD>top_row()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_16">Top_Row</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
+-<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+-<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>touchline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>touchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_74">Touch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+ <TR><TD>trace()</TD><TD><A HREF="terminal_interface-curses-trace__ads.htm#AFU_1">Trace_on</A></TD><TD><A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></TD></TR>
+-<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_126">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+ <TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_127">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
+-<TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
++<TR><TD>unctrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_128">Un_Control</A></TD><TD><A HREF="../man/curs_util.3x.html">curs_util.3x</A></TD></TR>
++<TR><TD>ungetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_30">Undo_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+ <TR><TD>ungetmouse()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_3">Unget_Mouse</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
+-<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>untouchwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_73">Untouch</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+ <TR><TD>update_panels()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_6">Update_Panels</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
+-<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_154">Use_Default_Colors</A></TD><TD><A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></TD></TR>
+-<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_157">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
+-<TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+-<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_22">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
+-<TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_20">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
+-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_32">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+-<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+-<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
+-<TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_24">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+-<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+-<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+-<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+-<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
+-<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
+-<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+-<TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_9">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
++<TR><TD>use_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_155">Use_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
++<TR><TD>use_extended_names()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_158">Use_Extended_Names</A></TD><TD><A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></TD></TR>
++<TR><TD>waddch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_8">Add</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
++<TR><TD>waddchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_23">Add</A></TD><TD><A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></TD></TR>
++<TR><TD>waddnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_21">Add</A></TD><TD><A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></TD></TR>
++<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_35">Get_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wattr_get()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_36">Get_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wattron()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_33">Switch_Character_Attribute</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wattrset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_34">Set_Character_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wbkgd()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_71">Change_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
++<TR><TD>wbkgdget()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_72">Get_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
++<TR><TD>wbkgdset()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_70">Set_Background</A></TD><TD><A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></TD></TR>
++<TR><TD>wborder()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_25">Border</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
++<TR><TD>wchgat()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_38">Change_Attributes</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wclear()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_67">Clear</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
++<TR><TD>wclrtobot()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_68">Clear_To_End_Of_Screen</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
++<TR><TD>wclrtoeol()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_69">Clear_To_End_Of_Line</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
++<TR><TD>wcolor_set()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_37">Set_Color</A></TD><TD><A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></TD></TR>
++<TR><TD>wdelch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_95">Delete_Character</A></TD><TD><A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></TD></TR>
++<TR><TD>wdeleteln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Delete_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
++<TR><TD>wechochar()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_10">Add_With_Immediate_Echo</A></TD><TD><A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></TD></TR>
+ <TR><TD>wenclose()</TD><TD><A HREF="terminal_interface-curses-mouse__ads.htm#AFU_4">Enclosed_In_Window</A></TD><TD><A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></TD></TR>
+-<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
+-<TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
+-<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_106">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
+-<TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_26">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+-<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_96">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
+-<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_104">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
+-<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_102">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
+-<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_98">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
+-<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_81">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+-<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_83">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
+-<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_100">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
+-<TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_6">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
+-<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+-<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_64">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+-<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_61">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
+-<TR><TD>wresize()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_162">Resize</A></TD><TD><A HREF="../man/wresize.3x.html">wresize.3x</A></TD></TR>
+-<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_93">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
+-<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_59">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
+-<TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_17">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
+-<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_50">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
+-<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_75">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
+-<TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
++<TR><TD>werase()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_66">Erase</A></TD><TD><A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></TD></TR>
++<TR><TD>wgetch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_29">Get_Keystroke</A></TD><TD><A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></TD></TR>
++<TR><TD>wgetnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_107">Get</A></TD><TD><A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></TD></TR>
++<TR><TD>whline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_27">Horizontal_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
++<TR><TD>winch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_97">Peek</A></TD><TD><A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></TD></TR>
++<TR><TD>winchnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_105">Peek</A></TD><TD><A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></TD></TR>
++<TR><TD>winnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_103">Peek</A></TD><TD><A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></TD></TR>
++<TR><TD>winsch()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_99">Insert</A></TD><TD><A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></TD></TR>
++<TR><TD>winsdelln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_82">Insert_Delete_Lines</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
++<TR><TD>winsertln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_84">Insert_Line</A></TD><TD><A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></TD></TR>
++<TR><TD>winsnstr()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_101">Insert</A></TD><TD><A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></TD></TR>
++<TR><TD>wmove()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_7">Move_Cursor</A></TD><TD><A HREF="../man/curs_move.3x.html">curs_move.3x</A></TD></TR>
++<TR><TD>wnoutrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_63">Refresh_Without_Update</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
++<TR><TD>wredrawln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_65">Redraw</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
++<TR><TD>wrefresh()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_62">Refresh</A></TD><TD><A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></TD></TR>
++<TR><TD>wresize()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_164">Resize</A></TD><TD><A HREF="../man/wresize.3x.html">wresize.3x</A></TD></TR>
++<TR><TD>wscrl()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_94">Scroll</A></TD><TD><A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></TD></TR>
++<TR><TD>wsetscrreg()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_60">Set_Scroll_Region</A></TD><TD><A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></TD></TR>
++<TR><TD>wsyncdown()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_19">Synchronize_Downwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>wsyncup()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_18">Synchronize_Upwards</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.3x</A></TD></TR>
++<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
++<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
++<TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
+ </TABLE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-aux__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-aux__ads.htm	2006-09-23 20:31:30.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-aux__ads.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -48,84 +47,84 @@
+ <FONT COLOR=green><EM>--  This module is generated. Please don't change it manually!</EM></FONT>
+ <FONT COLOR=green><EM>--  Run the generator instead.</EM></FONT>
+ <FONT COLOR=green><EM>--  |</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">System</A>;
++<b>with</b> System;
+ <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
+-<b>with</b> Unchecked_Conversion;
++<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
++<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A>;
+ 
+-<b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Aux);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>);
+ 
+-   <b>use</b> <b>type</b> Interfaces.C.int;
++   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ 
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_62_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
+-   <b>type</b>    <FONT COLOR=red><A NAME="ref_63_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">System</A>.Address;
+-   <b>type</b>    <FONT COLOR=red><A NAME="ref_64_12">C_Chtype</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
+-   <b>type</b>    C_AttrType <b>is</b> <b>new</b> C_ULong;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT>      <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT>   <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT>     <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT>    <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
++   <b>type</b>    <FONT COLOR=red><A NAME="ref_62_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> System.Address;
++   <b>type</b>    <FONT COLOR=red><A NAME="ref_63_12">C_Chtype</A></FONT>   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
++   <b>type</b>    <FONT COLOR=red><A NAME="ref_64_12">C_AttrType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
+ 
+    <FONT COLOR=green><EM>--  This is how those constants are defined in ncurses. I see them also</EM></FONT>
+    <FONT COLOR=green><EM>--  exactly like this in all ETI implementations I ever tested. So it</EM></FONT>
+    <FONT COLOR=green><EM>--  could be that this is quite general, but please check with your curses.</EM></FONT>
+    <FONT COLOR=green><EM>--  This is critical, because curses sometime mixes boolean returns with</EM></FONT>
+    <FONT COLOR=green><EM>--  returning an error status.</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_72_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
+-   Curses_Err   : <b>constant</b> C_Int := -1;
++   <FONT COLOR=red><A NAME="ref_71_4">Curses_Ok</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
++   <FONT COLOR=red><A NAME="ref_72_4">Curses_Err</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1;
+ 
+-   <FONT COLOR=red><A NAME="ref_75_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
+-   Curses_False : <b>constant</b> C_Int := 0;
++   <FONT COLOR=red><A NAME="ref_74_4">Curses_True</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
++   <FONT COLOR=red><A NAME="ref_75_4">Curses_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
+ 
+    <FONT COLOR=green><EM>--  Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT>
+-   <b>subtype</b> Eti_Error <b>is</b> C_Int <b>range</b> -14 .. 0;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Eti_Error</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> <b>range</b> -14 .. 0;
+ 
+-   <FONT COLOR=red><A NAME="ref_81_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
+-   <FONT COLOR=red><A NAME="ref_82_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
+-   <FONT COLOR=red><A NAME="ref_83_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
+-   <FONT COLOR=red><A NAME="ref_84_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
+-   <FONT COLOR=red><A NAME="ref_85_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
+-   <FONT COLOR=red><A NAME="ref_86_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
+-   <FONT COLOR=red><A NAME="ref_87_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
+-   <FONT COLOR=red><A NAME="ref_88_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
+-   <FONT COLOR=red><A NAME="ref_89_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
+-   <FONT COLOR=red><A NAME="ref_90_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
+-   <FONT COLOR=red><A NAME="ref_91_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
+-   <FONT COLOR=red><A NAME="ref_92_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
+-   <FONT COLOR=red><A NAME="ref_93_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
+-   <FONT COLOR=red><A NAME="ref_94_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
+-   E_Current          : <b>constant</b> Eti_Error := -14;
++   <FONT COLOR=red><A NAME="ref_80_4">E_Ok</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
++   <FONT COLOR=red><A NAME="ref_81_4">E_System_Error</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
++   <FONT COLOR=red><A NAME="ref_82_4">E_Bad_Argument</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
++   <FONT COLOR=red><A NAME="ref_83_4">E_Posted</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
++   <FONT COLOR=red><A NAME="ref_84_4">E_Connected</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
++   <FONT COLOR=red><A NAME="ref_85_4">E_Bad_State</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
++   <FONT COLOR=red><A NAME="ref_86_4">E_No_Room</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
++   <FONT COLOR=red><A NAME="ref_87_4">E_Not_Posted</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
++   <FONT COLOR=red><A NAME="ref_88_4">E_Unknown_Command</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
++   <FONT COLOR=red><A NAME="ref_89_4">E_No_Match</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
++   <FONT COLOR=red><A NAME="ref_90_4">E_Not_Selectable</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
++   <FONT COLOR=red><A NAME="ref_91_4">E_Not_Connected</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
++   <FONT COLOR=red><A NAME="ref_92_4">E_Request_Denied</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
++   <FONT COLOR=red><A NAME="ref_93_4">E_Invalid_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
++   <FONT COLOR=red><A NAME="ref_94_4">E_Current</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -14;
+ 
+-   <b>procedure</b> Eti_Exception (Code : Eti_Error);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_96_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>);
+    <FONT COLOR=green><EM>--  Dispatch the error code and raise the appropriate exception</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--  Some helpers</EM></FONT>
+    <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
+-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_Chtype</A>,
+-                           Target =&gt; Attributed_Character);
++     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>,
++                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
+-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">Attributed_Character</A>,
+-                           Target =&gt; C_Chtype);
++     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>,
++                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+ 
+    <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
+-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">Attributed_Character</A>,
+-                           Target =&gt; C_AttrType);
++     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>,
++                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>);
+ 
+    <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
+-     Unchecked_Conversion (<A HREF="unchconv__ads.htm#ref_18_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_AttrType</A>,
+-                           Target =&gt; Attributed_Character);
++     <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>,
++                           <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+ 
+-   <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
+-                          Str : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_116_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></FONT>  : <b>in</b>  chars_ptr;
++                          <FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  Fill the Str parameter with the string denoted by the chars_ptr</EM></FONT>
+    <FONT COLOR=green><EM>--  C-Style string.</EM></FONT>
+ 
+-   <b>function</b> Fill_String (Cp : chars_ptr) <b>return</b> String;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_121_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></FONT> : chars_ptr) <b>return</b> String;
+    <FONT COLOR=green><EM>--  Same but as function.</EM></FONT>
+ 
+-<b>end</b> Terminal_Interface.Curses.Aux;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -44,18 +43,18 @@
+ <FONT COLOR=green><EM>--  @Revision: 1.14 @</EM></FONT>
+ <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> Interfaces.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+ 
+-<b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
+-   <b>use</b> <b>type</b><FONT COLOR=red><A NAME="ref_46_12"> </A></FONT>Interfaces.C.int;
+-   <b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>);
++   <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Field_Type <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
+    <FONT COLOR=green><EM>--  Abstract base type for all field types. A concrete field type</EM></FONT>
+    <FONT COLOR=green><EM>--  is an extension that adds some data elements describing formats or</EM></FONT>
+    <FONT COLOR=green><EM>--  boundary values for the type and validation routines.</EM></FONT>
+@@ -66,11 +65,11 @@
+    <FONT COLOR=green><EM>--  how to create you own child packages for low-level field types that</EM></FONT>
+    <FONT COLOR=green><EM>--  you may have already written in C.</EM></FONT>
+ 
+-   <b>type</b> Field_Type_Access <b>is</b> <b>access</b> <b>all</b> Field_Type'Class;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_63_9">Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
+-                             Fld_Type : <b>in</b> Field_Type) <b>is</b> <b>abstract</b>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_66_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                             <FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld_Type</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>) <b>is</b> <b>abstract</b>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  But: we hide the vararg mechanism of the C interface. You always</EM></FONT>
+    <FONT COLOR=green><EM>--       have to pass a single Field_Type parameter.</EM></FONT>
+@@ -82,7 +81,7 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>function</b> Get_Type (Fld : <b>in</b> Field) <b>return</b> Field_Type_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_79_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_23">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: field_arg()</EM></FONT>
+    <FONT COLOR=green><EM>--  In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT>
+@@ -95,68 +94,68 @@
+    <FONT COLOR=green><EM>--  | Most of this is used by the implementations of the child packages.</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+ <b>private</b>
+-   <b>type</b> Makearg_Function <b>is</b> <b>access</b>
+-     <b>function</b> (Args : System.Address) <b>return</b> System.Address;
+-   <b>pragma</b> Convention (C, Makearg_Function);
+-
+-   <b>type</b> Copyarg_Function <b>is</b> <b>access</b>
+-     <b>function</b> (Usr : System.Address) <b>return</b> System.Address;
+-   <b>pragma</b> Convention (C, Copyarg_Function);
+-
+-   <b>type</b> Freearg_Function <b>is</b> <b>access</b>
+-     <b>procedure</b> (Usr : System.Address);
+-   <b>pragma</b> Convention (C, Freearg_Function);
+-
+-   <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="ref_105_29"> </A></FONT><b>is</b> <b>access</b>
+-     <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Field_Check_Function);
+-
+-   <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="ref_109_28"> </A></FONT><b>is</b> <b>access</b>
+-     <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Char_Check_Function);
+-
+-   <b>type</b> Choice_Function <b>is</b> <b>access</b>
+-     <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Choice_Function);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Makearg_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>function</b> (<FONT COLOR=red><A NAME="ref_93_16">Args</A></FONT> : System.Address) <b>return</b> System.Address;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_96_9">Copyarg_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>function</b> (<FONT COLOR=red><A NAME="ref_97_16">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_100_9">Freearg_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>procedure</b> (<FONT COLOR=red><A NAME="ref_101_17">Usr</A></FONT> : System.Address);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_104_9">Field_Check_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>function</b> (<FONT COLOR=red><A NAME="ref_105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_105_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_108_9">Char_Check_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>function</b> (<FONT COLOR=red><A NAME="ref_109_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_109_28">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_112_9">Choice_Function</A></FONT> <b>is</b> <b>access</b>
++     <b>function</b> (<FONT COLOR=red><A NAME="ref_113_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_113_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>);
+ 
+    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+-   <b>type</b> Low_Level_Field_Type <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_119_9">Low_Level_Field_Type</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_122_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+-         <FONT COLOR=red><A NAME="ref_123_10">Ref_Count</A></FONT> :           Interfaces.C.long;
+-         <FONT COLOR=red><A NAME="ref_124_10">Left</A></FONT>, Right :         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">System</A>.Address;
+-         <FONT COLOR=red><A NAME="ref_125_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A>;
+-         <FONT COLOR=red><A NAME="ref_126_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A>;
+-         <FONT COLOR=red><A NAME="ref_127_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Freearg_Function</A>;
+-         <FONT COLOR=red><A NAME="ref_128_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+-         <FONT COLOR=red><A NAME="ref_129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="ref_129_16"> </A></FONT>:              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Char_Check_Function</A>;
+-         Next, Prev :          Choice_Function;
++         <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> :              <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
++         <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> :           <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
++         <FONT COLOR=red><A NAME="ref_123_10">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_123_16">Right</A></FONT> :         System.Address;
++         <FONT COLOR=red><A NAME="ref_124_10">Makearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>;
++         <FONT COLOR=red><A NAME="ref_125_10">Copyarg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>;
++         <FONT COLOR=red><A NAME="ref_126_10">Freearg</A></FONT> :             <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>;
++         <FONT COLOR=red><A NAME="ref_127_10">Fcheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
++         <FONT COLOR=red><A NAME="ref_128_10">Ccheck</A></FONT> :              <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>;
++         <FONT COLOR=red><A NAME="ref_129_10">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_129_16">Prev</A></FONT> :          <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Low_Level_Field_Type);
+-   <b>type</b> C_Field_Type <b>is</b> <b>access</b> <b>all</b> Low_Level_Field_Type;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_132_9">C_Field_Type</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>;
+ 
+-   Null_Field_Type   : <b>constant</b> C_Field_Type := <b>null</b>;
++   <FONT COLOR=red><A NAME="ref_134_4">Null_Field_Type</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+ 
+    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  | This four low-level fieldtypes are the ones associated with</EM></FONT>
+    <FONT COLOR=green><EM>--  | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
+    <FONT COLOR=green><EM>--  | will result in a Form_Exception is function Get_Type.</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+-   <FONT COLOR=red><A NAME="ref_143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+-   <FONT COLOR=red><A NAME="ref_144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+-   M_Choice_Router  : C_Field_Type := <b>null</b>;
++   <FONT COLOR=red><A NAME="ref_141_4">M_Generic_Type</A></FONT>   : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
++   <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
++   <FONT COLOR=red><A NAME="ref_143_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
++   <FONT COLOR=red><A NAME="ref_144_4">M_Choice_Router</A></FONT>  : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+ 
+    <FONT COLOR=green><EM>--  Two wrapper functions to access those low-level fieldtypes defined</EM></FONT>
+    <FONT COLOR=green><EM>--  in this package.</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_266_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+-   <b>function</b> C_Choice_Router  <b>return</b> C_Field_Type;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_239_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_266_13">C_Choice_Router</A></FONT>  <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ 
+-   <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
+-                           <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_147_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">;</A>
+-                           Cft : C_Field_Type := C_Builtin_Router);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_151_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                           <FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
++                           <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_147_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>);
+    <FONT COLOR=green><EM>--  This procedure has to be called by the Set_Field_Type implementation</EM></FONT>
+    <FONT COLOR=green><EM>--  for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT>
+    <FONT COLOR=green><EM>--  conformant Field_Type object.</EM></FONT>
+@@ -165,48 +164,48 @@
+    <FONT COLOR=green><EM>--  low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT>
+    <FONT COLOR=green><EM>--  Any other value will raise a Form_Exception.</EM></FONT>
+ 
+-   <b>function</b> Make_Arg (Args : System.Address) <b>return</b> System.Address;
+-   <b>pragma</b> Convention (C, Make_Arg);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_162_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_23">Args</A></FONT> : System.Address) <b>return</b> System.Address;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>);
+    <FONT COLOR=green><EM>--  This is the Makearg_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
+ 
+-   <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13"> </A>: System.Address) <b>return</b> System.Address;
+-   <b>pragma</b> Convention (C, Copy_Arg);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_167_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_115_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_167_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_115_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>);
+    <FONT COLOR=green><EM>--  This is the Copyarg_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
+ 
+-   <b>procedure</b> Free_Arg (Usr : System.Address);
+-   <b>pragma</b> Convention (C, Free_Arg);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_172_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_172_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_24">Usr</A></FONT> : System.Address);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>);
+    <FONT COLOR=green><EM>--  This is the Freearg_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
+ 
+-   <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_182_33">Fld</A></FONT> : Field;
+-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13"> </A>      Usr : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Field_Check_Router);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                                <FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_182_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>);
+    <FONT COLOR=green><EM>--  This is the Field_Check_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level validation</EM></FONT>
+    <FONT COLOR=green><EM>--  function.</EM></FONT>
+ 
+-   <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_196_32">Ch</A></FONT> : C_Int;
+-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13"> </A>     Usr : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Char_Check_Router);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_185_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_185_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++                               <FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_196_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>);
+    <FONT COLOR=green><EM>--  This is the Char_Check_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level validation</EM></FONT>
+    <FONT COLOR=green><EM>--  function.</EM></FONT>
+ 
+-   <b>function</b> Next_Router (<FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_26">Fld</A></FONT> : Field;
+-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Usr</A> : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Next_Router);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_193_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>);
+    <FONT COLOR=green><EM>--  This is the Choice_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level next_choice</EM></FONT>
+    <FONT COLOR=green><EM>--  function.</EM></FONT>
+ 
+-   <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_26">Fld</A></FONT> : Field;
+-                         <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Usr</A> : System.Address) <b>return</b> C_Int;
+-   <b>pragma</b> Convention (C, Prev_Router);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_201_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_201_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>);
+    <FONT COLOR=green><EM>--  This is the Choice_Function for the internal low-level types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+    <FONT COLOR=green><EM>--  type. It routes the call to the corresponding low-level prev_choice</EM></FONT>
+@@ -214,33 +213,33 @@
+ 
+    <FONT COLOR=green><EM>--  This is the Argument structure maintained by all low-level field types</EM></FONT>
+    <FONT COLOR=green><EM>--  introduced by this binding.</EM></FONT>
+-   <b>type</b> Argument <b>is</b> <b>record</b>
+-      <FONT COLOR=red><A NAME="ref_213_7">Typ</A></FONT> : Field_Type_Access;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
+-      <FONT COLOR=red><A NAME="ref_214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">System</A>.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
+-      Cft : C_Field_Type;        <FONT COLOR=green><EM>--  the original low-level type</EM></FONT>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_211_9">Argument</A></FONT> <b>is</b> <b>record</b>
++      <FONT COLOR=red><A NAME="ref_212_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>;   <FONT COLOR=green><EM>--  the Field_Type creating this record</EM></FONT>
++      <FONT COLOR=red><A NAME="ref_213_7">Usr</A></FONT> : System.Address;      <FONT COLOR=green><EM>--  original arg for builtin low-level types</EM></FONT>
++      <FONT COLOR=red><A NAME="ref_214_7">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;        <FONT COLOR=green><EM>--  the original low-level type</EM></FONT>
+    <b>end</b> <b>record</b>;
+-   <b>type</b> Argument_Access <b>is</b> <b>access</b> <b>all</b> Argument;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_216_9">Argument_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>;
+ 
+    <FONT COLOR=green><EM>--  +----------------------------------------------------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+    <FONT COLOR=green><EM>--  | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+-   <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9"> </A>              Ccheck : Char_Check_Function)
+-     <b>return</b> C_Field_Type;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_222_13">New_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_222_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
++                           <FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>)
++     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+    <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
+ 
+-   <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">C_Field_Type</A>;
+-                               <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Make_Arg</A>'<b>Access</b>;
+-                               <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Copy_Arg</A>'<b>Access</b>;
+-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                  Fre : Freearg_Function := Free_Arg'<b>Access</b>)
+-     <b>return</b> C_Int;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_227_13">Set_Fieldtype_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_227_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++                               <FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>;
++                               <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>;
++                               <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Fre</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>)
++     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+    <b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
+ 
+-   <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">C_Field_Type</A></FONT>;
+-            <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A>                     Next, Prev : Choice_Function)
+-     <b>return</b> C_Int;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_234_13">Set_Fieldtype_Choice</A></FONT> (<FONT COLOR=red><A NAME="ref_234_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++                                  <FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>)
++     <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+    <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
+ 
+-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -46,31 +45,31 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>generic</b>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">;</A>
+-<b>package</b> Terminal_Interface.Curses.Forms.Field_User_Data <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
+-                            Data : <b>in</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_User_Data);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
+-                            Data : <b>out</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_29">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>function</b> Get_User_Data (Fld  : <b>in</b>  Field) <b>return</b> User_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_28">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Sama as function</EM></FONT>
+    <b>pragma</b> Inline (Get_User_Data);
+ 
+-<b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm	2007-09-01 23:56:30.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -46,31 +45,31 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>generic</b>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">;</A>
+-<b>package</b> Terminal_Interface.Curses.Forms.Form_User_Data <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
+-                            Data : <b>in</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_User_Data);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
+-                            Data : <b>out</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_29">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>function</b> Get_User_Data (Frm  : <b>in</b>  Form) <b>return</b> User_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_28">Frm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Get_User_Data);
+ 
+-<b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-forms__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-forms__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -52,41 +51,41 @@
+ <b>with</b> System;
+ <b>with</b> Ada.Characters.Latin_1;
+ 
+-<b>package</b> Terminal_Interface.Curses.Forms <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>);
+    <b>pragma</b> Linker_Options ("-lform");
+    <b>pragma</b> Linker_Options ("-lncurses");
+ 
+    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
+ 
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Field</A></FONT>        <b>is</b> <b>private</b>;
+-   <b>type</b> Form         <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT>        <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Form</A></FONT>         <b>is</b> <b>private</b>;
+ 
+-   <FONT COLOR=red><A NAME="ref_60_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A>;
+-   Null_Form         : <b>constant</b> Form;
++   <FONT COLOR=red><A NAME="ref_59_4">Null_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++   <FONT COLOR=red><A NAME="ref_60_4">Null_Form</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+ 
+-   <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="ref_63_33">None</A></FONT>,
+-                                <FONT COLOR=red><A NAME="ref_64_33">Left</A></FONT>,
+-                                <FONT COLOR=red><A NAME="ref_65_33">Center</A></FONT>,
+-                                Right);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Field_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_62_33">None</A></FONT>,
++                                <FONT COLOR=red><A NAME="ref_63_33">Left</A></FONT>,
++                                <FONT COLOR=red><A NAME="ref_64_33">Center</A></FONT>,
++                                <FONT COLOR=red><A NAME="ref_65_33">Right</A></FONT>);
+ 
+    <b>pragma</b> Warnings (Off);
+-   <b>type</b> Field_Option_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Field_Option_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_71_10">Visible</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_72_10">Active</A></FONT>      : Boolean;
+-         <FONT COLOR=red><A NAME="ref_73_10">Public</A></FONT>      : Boolean;
+-         <FONT COLOR=red><A NAME="ref_74_10">Edit</A></FONT>        : Boolean;
+-         <FONT COLOR=red><A NAME="ref_75_10">Wrap</A></FONT>        : Boolean;
+-         <FONT COLOR=red><A NAME="ref_76_10">Blank</A></FONT>       : Boolean;
+-         <FONT COLOR=red><A NAME="ref_77_10">Auto_Skip</A></FONT>   : Boolean;
+-         <FONT COLOR=red><A NAME="ref_78_10">Null_Ok</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_79_10">Pass_Ok</A></FONT>     : Boolean;
+-         Static      : Boolean;
++         <FONT COLOR=red><A NAME="ref_70_10">Visible</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_71_10">Active</A></FONT>      : Boolean;
++         <FONT COLOR=red><A NAME="ref_72_10">Public</A></FONT>      : Boolean;
++         <FONT COLOR=red><A NAME="ref_73_10">Edit</A></FONT>        : Boolean;
++         <FONT COLOR=red><A NAME="ref_74_10">Wrap</A></FONT>        : Boolean;
++         <FONT COLOR=red><A NAME="ref_75_10">Blank</A></FONT>       : Boolean;
++         <FONT COLOR=red><A NAME="ref_76_10">Auto_Skip</A></FONT>   : Boolean;
++         <FONT COLOR=red><A NAME="ref_77_10">Null_Ok</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_78_10">Pass_Ok</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_79_10">Static</A></FONT>      : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Field_Option_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+ 
+-   <b>for</b> Field_Option_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> <b>use</b>
+       <b>record</b>
+          Visible     <b>at</b> 0 <b>range</b>  0 ..  0;
+          Active      <b>at</b> 0 <b>range</b>  1 ..  1;
+@@ -99,328 +98,328 @@
+          Pass_Ok     <b>at</b> 0 <b>range</b>  8 ..  8;
+          Static      <b>at</b> 0 <b>range</b>  9 ..  9;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Field_Option_Set'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>'Size <b>use</b> 32;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.Dnl</EM></FONT>
+ 
+    <b>pragma</b> Warnings (On);
+ 
+-   <b>function</b> Default_Field_Options <b>return</b> Field_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1149_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+    <FONT COLOR=green><EM>--  The initial defaults for the field options.</EM></FONT>
+-   <b>pragma</b> Inline (Default_Field_Options);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_102_13">Default_Field_Options</A>);
+ 
+    <b>pragma</b> Warnings (Off);
+-   <b>type</b> Form_Option_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_107_9">Form_Option_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_110_10">NL_Overload</A></FONT> : Boolean;
+-         BS_Overload : Boolean;
++         <FONT COLOR=red><A NAME="ref_109_10">NL_Overload</A></FONT> : Boolean;
++         <FONT COLOR=red><A NAME="ref_110_10">BS_Overload</A></FONT> : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Form_Option_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
+ 
+-   <b>for</b> Form_Option_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A> <b>use</b>
+       <b>record</b>
+          NL_Overload <b>at</b> 0 <b>range</b>  0 ..  0;
+          BS_Overload <b>at</b> 0 <b>range</b>  1 ..  1;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Form_Option_Set'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>'Size <b>use</b> 32;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.Dnl</EM></FONT>
+ 
+    <b>pragma</b> Warnings (On);
+ 
+-   <b>function</b> Default_Form_Options <b>return</b> Form_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_125_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1155_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
+    <FONT COLOR=green><EM>--  The initial defaults for the form options.</EM></FONT>
+-   <b>pragma</b> Inline (Default_Form_Options);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_125_13">Default_Form_Options</A>);
+ 
+-   <b>type</b> Buffer_Number <b>is</b> <b>new</b> Natural;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_129_9">Buffer_Number</A></FONT> <b>is</b> <b>new</b> Natural;
+ 
+-   <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Field;
+-   <b>pragma</b> Convention (C, Field_Array);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_131_9">Field_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Field_Array</A>);
+ 
+-   <b>type</b> Field_Array_Access <b>is</b> <b>access</b> Field_Array;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_134_9">Field_Array_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Field_Array</A>;
+ 
+-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_137_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">FA</A></FONT>          : <b>in</b> <b>out</b> Field_Array_Access;
+-                   Free_Fields : <b>in</b> Boolean := False);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_136_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_136_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_20">FA</A></FONT>          : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>;
++                   <FONT COLOR=red><A NAME="ref_137_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">Free_Fields</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  Release the memory for an allocated field array</EM></FONT>
+    <FONT COLOR=green><EM>--  If Free_Fields is True, call Delete() for all the fields in</EM></FONT>
+    <FONT COLOR=green><EM>--  the array.</EM></FONT>
+ 
+-   <b>subtype</b> Form_Request_Code <b>is</b> Key_Code <b>range</b> (Key_Max + 1) .. (Key_Max + 57);
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_142_12">Form_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57);
+ 
+    <FONT COLOR=green><EM>--  The prefix F_ stands for "Form Request"</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_146_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+-   <FONT COLOR=red><A NAME="ref_147_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+-   <FONT COLOR=red><A NAME="ref_148_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+-   F_Last_Page                : <b>constant</b> Form_Request_Code := Key_Max + 4;
+-
+-   <FONT COLOR=red><A NAME="ref_151_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+-   <FONT COLOR=red><A NAME="ref_152_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+-   <FONT COLOR=red><A NAME="ref_153_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+-   <FONT COLOR=red><A NAME="ref_154_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+-   <FONT COLOR=red><A NAME="ref_155_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+-   <FONT COLOR=red><A NAME="ref_156_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+-   <FONT COLOR=red><A NAME="ref_157_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+-   <FONT COLOR=red><A NAME="ref_158_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+-   <FONT COLOR=red><A NAME="ref_159_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+-   <FONT COLOR=red><A NAME="ref_160_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+-   <FONT COLOR=red><A NAME="ref_161_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+-   F_Down_Field               : <b>constant</b> Form_Request_Code := Key_Max + 16;
+-
+-   <FONT COLOR=red><A NAME="ref_164_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+-   <FONT COLOR=red><A NAME="ref_165_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
+-   <FONT COLOR=red><A NAME="ref_166_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
+-   <FONT COLOR=red><A NAME="ref_167_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
+-   <FONT COLOR=red><A NAME="ref_168_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
+-   <FONT COLOR=red><A NAME="ref_169_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
+-   <FONT COLOR=red><A NAME="ref_170_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
+-   <FONT COLOR=red><A NAME="ref_171_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
+-   <FONT COLOR=red><A NAME="ref_172_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
+-   <FONT COLOR=red><A NAME="ref_173_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
+-   <FONT COLOR=red><A NAME="ref_174_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
+-   <FONT COLOR=red><A NAME="ref_175_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
+-   <FONT COLOR=red><A NAME="ref_176_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
+-   F_Down_Char                : <b>constant</b> Form_Request_Code := Key_Max + 30;
+-
+-   <FONT COLOR=red><A NAME="ref_179_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
+-   <FONT COLOR=red><A NAME="ref_180_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
+-   <FONT COLOR=red><A NAME="ref_181_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
+-   <FONT COLOR=red><A NAME="ref_182_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
+-   <FONT COLOR=red><A NAME="ref_183_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
+-   <FONT COLOR=red><A NAME="ref_184_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
+-   <FONT COLOR=red><A NAME="ref_185_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
+-   <FONT COLOR=red><A NAME="ref_186_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
+-   <FONT COLOR=red><A NAME="ref_187_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
+-   <FONT COLOR=red><A NAME="ref_188_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
+-   <FONT COLOR=red><A NAME="ref_189_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
+-   F_Insert_Mode              : <b>constant</b> Form_Request_Code := Key_Max + 42;
++   <FONT COLOR=red><A NAME="ref_145_4">F_Next_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
++   <FONT COLOR=red><A NAME="ref_146_4">F_Previous_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
++   <FONT COLOR=red><A NAME="ref_147_4">F_First_Page</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
++   <FONT COLOR=red><A NAME="ref_148_4">F_Last_Page</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
++
++   <FONT COLOR=red><A NAME="ref_150_4">F_Next_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
++   <FONT COLOR=red><A NAME="ref_151_4">F_Previous_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
++   <FONT COLOR=red><A NAME="ref_152_4">F_First_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
++   <FONT COLOR=red><A NAME="ref_153_4">F_Last_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
++   <FONT COLOR=red><A NAME="ref_154_4">F_Sorted_Next_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
++   <FONT COLOR=red><A NAME="ref_155_4">F_Sorted_Previous_Field</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
++   <FONT COLOR=red><A NAME="ref_156_4">F_Sorted_First_Field</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
++   <FONT COLOR=red><A NAME="ref_157_4">F_Sorted_Last_Field</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
++   <FONT COLOR=red><A NAME="ref_158_4">F_Left_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
++   <FONT COLOR=red><A NAME="ref_159_4">F_Right_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
++   <FONT COLOR=red><A NAME="ref_160_4">F_Up_Field</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
++   <FONT COLOR=red><A NAME="ref_161_4">F_Down_Field</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
++
++   <FONT COLOR=red><A NAME="ref_163_4">F_Next_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
++   <FONT COLOR=red><A NAME="ref_164_4">F_Previous_Char</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
++   <FONT COLOR=red><A NAME="ref_165_4">F_Next_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
++   <FONT COLOR=red><A NAME="ref_166_4">F_Previous_Line</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
++   <FONT COLOR=red><A NAME="ref_167_4">F_Next_Word</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
++   <FONT COLOR=red><A NAME="ref_168_4">F_Previous_Word</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
++   <FONT COLOR=red><A NAME="ref_169_4">F_Begin_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
++   <FONT COLOR=red><A NAME="ref_170_4">F_End_Field</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
++   <FONT COLOR=red><A NAME="ref_171_4">F_Begin_Line</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
++   <FONT COLOR=red><A NAME="ref_172_4">F_End_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
++   <FONT COLOR=red><A NAME="ref_173_4">F_Left_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
++   <FONT COLOR=red><A NAME="ref_174_4">F_Right_Char</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
++   <FONT COLOR=red><A NAME="ref_175_4">F_Up_Char</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
++   <FONT COLOR=red><A NAME="ref_176_4">F_Down_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 30;
++
++   <FONT COLOR=red><A NAME="ref_178_4">F_New_Line</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
++   <FONT COLOR=red><A NAME="ref_179_4">F_Insert_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
++   <FONT COLOR=red><A NAME="ref_180_4">F_Insert_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
++   <FONT COLOR=red><A NAME="ref_181_4">F_Delete_Char</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
++   <FONT COLOR=red><A NAME="ref_182_4">F_Delete_Previous</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
++   <FONT COLOR=red><A NAME="ref_183_4">F_Delete_Line</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
++   <FONT COLOR=red><A NAME="ref_184_4">F_Delete_Word</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
++   <FONT COLOR=red><A NAME="ref_185_4">F_Clear_EOL</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
++   <FONT COLOR=red><A NAME="ref_186_4">F_Clear_EOF</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
++   <FONT COLOR=red><A NAME="ref_187_4">F_Clear_Field</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
++   <FONT COLOR=red><A NAME="ref_188_4">F_Overlay_Mode</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
++   <FONT COLOR=red><A NAME="ref_189_4">F_Insert_Mode</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 42;
+ 
+    <FONT COLOR=green><EM>--  Vertical Scrolling</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_193_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
+-   <FONT COLOR=red><A NAME="ref_194_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
+-   <FONT COLOR=red><A NAME="ref_195_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
+-   <FONT COLOR=red><A NAME="ref_196_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
+-   <FONT COLOR=red><A NAME="ref_197_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
+-   F_ScrollBackward_HalfPage  : <b>constant</b> Form_Request_Code := Key_Max + 48;
++   <FONT COLOR=red><A NAME="ref_192_4">F_ScrollForward_Line</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
++   <FONT COLOR=red><A NAME="ref_193_4">F_ScrollBackward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
++   <FONT COLOR=red><A NAME="ref_194_4">F_ScrollForward_Page</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
++   <FONT COLOR=red><A NAME="ref_195_4">F_ScrollBackward_Page</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
++   <FONT COLOR=red><A NAME="ref_196_4">F_ScrollForward_HalfPage</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
++   <FONT COLOR=red><A NAME="ref_197_4">F_ScrollBackward_HalfPage</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 48;
+ 
+    <FONT COLOR=green><EM>--  Horizontal Scrolling</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_201_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
+-   <FONT COLOR=red><A NAME="ref_202_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
+-   <FONT COLOR=red><A NAME="ref_203_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
+-   <FONT COLOR=red><A NAME="ref_204_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
+-   <FONT COLOR=red><A NAME="ref_205_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
+-   F_HScrollBackward_HalfLine : <b>constant</b> Form_Request_Code := Key_Max + 54;
+-
+-   <FONT COLOR=red><A NAME="ref_208_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
+-   <FONT COLOR=red><A NAME="ref_209_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
+-   F_Previous_Choice          : <b>constant</b> Form_Request_Code := Key_Max + 57;
++   <FONT COLOR=red><A NAME="ref_200_4">F_HScrollForward_Char</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
++   <FONT COLOR=red><A NAME="ref_201_4">F_HScrollBackward_Char</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
++   <FONT COLOR=red><A NAME="ref_202_4">F_HScrollForward_Line</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
++   <FONT COLOR=red><A NAME="ref_203_4">F_HScrollBackward_Line</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
++   <FONT COLOR=red><A NAME="ref_204_4">F_HScrollForward_HalfLine</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
++   <FONT COLOR=red><A NAME="ref_205_4">F_HScrollBackward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 54;
++
++   <FONT COLOR=red><A NAME="ref_207_4">F_Validate_Field</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
++   <FONT COLOR=red><A NAME="ref_208_4">F_Next_Choice</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
++   <FONT COLOR=red><A NAME="ref_209_4">F_Previous_Choice</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57;
+ 
+    <FONT COLOR=green><EM>--  For those who like the old 'C' style request names</EM></FONT>
+-   REQ_NEXT_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Next_Page</A>;
+-   REQ_PREV_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Previous_Page</A>;
+-   REQ_FIRST_PAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_First_Page</A>;
+-   REQ_LAST_PAGE    : Form_Request_Code <b>renames</b> F_Last_Page;
+-
+-   REQ_NEXT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Next_Field</A>;
+-   REQ_PREV_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Previous_Field</A>;
+-   REQ_FIRST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_First_Field</A>;
+-   REQ_LAST_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Last_Field</A>;
+-   REQ_SNEXT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Next_Field</A>;
+-   REQ_SPREV_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Previous_Field</A>;
+-   REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_First_Field</A>;
+-   REQ_SLAST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_Last_Field</A>;
+-   REQ_LEFT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Left_Field</A>;
+-   REQ_RIGHT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Right_Field</A>;
+-   REQ_UP_FIELD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Up_Field</A>;
+-   REQ_DOWN_FIELD   : Form_Request_Code <b>renames</b> F_Down_Field;
+-
+-   REQ_NEXT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Next_Char</A>;
+-   REQ_PREV_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Previous_Char</A>;
+-   REQ_NEXT_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Next_Line</A>;
+-   REQ_PREV_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Previous_Line</A>;
+-   REQ_NEXT_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Next_Word</A>;
+-   REQ_PREV_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Previous_Word</A>;
+-   REQ_BEG_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Begin_Field</A>;
+-   REQ_END_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_End_Field</A>;
+-   REQ_BEG_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_Begin_Line</A>;
+-   REQ_END_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_End_Line</A>;
+-   REQ_LEFT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Left_Char</A>;
+-   REQ_RIGHT_CHAR   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Right_Char</A>;
+-   REQ_UP_CHAR      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Up_Char</A>;
+-   REQ_DOWN_CHAR    : Form_Request_Code <b>renames</b> F_Down_Char;
+-
+-   REQ_NEW_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_New_Line</A>;
+-   REQ_INS_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Char</A>;
+-   REQ_INS_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Line</A>;
+-   REQ_DEL_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Char</A>;
+-   REQ_DEL_PREV     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Previous</A>;
+-   REQ_DEL_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Line</A>;
+-   REQ_DEL_WORD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Word</A>;
+-   REQ_CLR_EOL      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOL</A>;
+-   REQ_CLR_EOF      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOF</A>;
+-   REQ_CLR_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_Field</A>;
+-   REQ_OVL_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Overlay_Mode</A>;
+-   REQ_INS_MODE     : Form_Request_Code <b>renames</b> F_Insert_Mode;
+-
+-   REQ_SCR_FLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollForward_Line</A>;
+-   REQ_SCR_BLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollBackward_Line</A>;
+-   REQ_SCR_FPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollForward_Page</A>;
+-   REQ_SCR_BPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollBackward_Page</A>;
+-   REQ_SCR_FHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollForward_HalfPage</A>;
+-   REQ_SCR_BHPAGE   : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
+-
+-   REQ_SCR_FCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollForward_Char</A>;
+-   REQ_SCR_BCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollBackward_Char</A>;
+-   REQ_SCR_HFLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollForward_Line</A>;
+-   REQ_SCR_HBLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollBackward_Line</A>;
+-   REQ_SCR_HFHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollForward_HalfLine</A>;
+-   REQ_SCR_HBHALF   : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
+-
+-   REQ_VALIDATION   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Validate_Field</A>;
+-   REQ_NEXT_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Next_Choice</A>;
+-   REQ_PREV_CHOICE  : Form_Request_Code <b>renames</b> F_Previous_Choice;
++   REQ_NEXT_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_145_4">F_Next_Page</A>;
++   REQ_PREV_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Previous_Page</A>;
++   REQ_FIRST_PAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_First_Page</A>;
++   REQ_LAST_PAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_Last_Page</A>;
++
++   REQ_NEXT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Next_Field</A>;
++   REQ_PREV_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Previous_Field</A>;
++   REQ_FIRST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_First_Field</A>;
++   REQ_LAST_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Last_Field</A>;
++   REQ_SNEXT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Sorted_Next_Field</A>;
++   REQ_SPREV_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Previous_Field</A>;
++   REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_First_Field</A>;
++   REQ_SLAST_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Last_Field</A>;
++   REQ_LEFT_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Left_Field</A>;
++   REQ_RIGHT_FIELD  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Right_Field</A>;
++   REQ_UP_FIELD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Up_Field</A>;
++   REQ_DOWN_FIELD   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Down_Field</A>;
++
++   REQ_NEXT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Next_Char</A>;
++   REQ_PREV_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Previous_Char</A>;
++   REQ_NEXT_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Line</A>;
++   REQ_PREV_LINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Line</A>;
++   REQ_NEXT_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Word</A>;
++   REQ_PREV_WORD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Word</A>;
++   REQ_BEG_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Begin_Field</A>;
++   REQ_END_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_End_Field</A>;
++   REQ_BEG_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Line</A>;
++   REQ_END_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Line</A>;
++   REQ_LEFT_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Left_Char</A>;
++   REQ_RIGHT_CHAR   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Right_Char</A>;
++   REQ_UP_CHAR      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Up_Char</A>;
++   REQ_DOWN_CHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Down_Char</A>;
++
++   REQ_NEW_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_New_Line</A>;
++   REQ_INS_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Insert_Char</A>;
++   REQ_INS_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Line</A>;
++   REQ_DEL_CHAR     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Delete_Char</A>;
++   REQ_DEL_PREV     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Previous</A>;
++   REQ_DEL_LINE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Line</A>;
++   REQ_DEL_WORD     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Word</A>;
++   REQ_CLR_EOL      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Clear_EOL</A>;
++   REQ_CLR_EOF      : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOF</A>;
++   REQ_CLR_FIELD    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_Field</A>;
++   REQ_OVL_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Overlay_Mode</A>;
++   REQ_INS_MODE     : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Insert_Mode</A>;
++
++   REQ_SCR_FLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_ScrollForward_Line</A>;
++   REQ_SCR_BLINE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollBackward_Line</A>;
++   REQ_SCR_FPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Page</A>;
++   REQ_SCR_BPAGE    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Page</A>;
++   REQ_SCR_FHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_HalfPage</A>;
++   REQ_SCR_BHPAGE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_HalfPage</A>;
++
++   REQ_SCR_FCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_HScrollForward_Char</A>;
++   REQ_SCR_BCHAR    : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollBackward_Char</A>;
++   REQ_SCR_HFLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Line</A>;
++   REQ_SCR_HBLINE   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Line</A>;
++   REQ_SCR_HFHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_HalfLine</A>;
++   REQ_SCR_HBHALF   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_HalfLine</A>;
++
++   REQ_VALIDATION   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_Validate_Field</A>;
++   REQ_NEXT_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Next_Choice</A>;
++   REQ_PREV_CHOICE  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Previous_Choice</A>;
+ 
+-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Key</A></FONT>  : <b>in</b> Form_Request_Code;
+-                           Name : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_276_14" HREF="terminal_interface-curses-forms__adb.htm#ref_81_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_276_28" HREF="terminal_interface-curses-forms__adb.htm#ref_81_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A>;
++                           <FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Name</A></FONT> : <b>out</b> String);
+ 
+-   <b>function</b>  Request_Name (Key : Form_Request_Code) <b>return</b> String;
++   <b>function</b>  <FONT COLOR=red><A NAME="ref_279_14" HREF="terminal_interface-curses-forms__adb.htm#ref_90_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_279_28" HREF="terminal_interface-curses-forms__adb.htm#ref_90_27">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_142_12">Form_Request_Code</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Request_Name);
+ 
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+-   Form_Exception : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_286_4">Form_Exception</A></FONT> : <b>exception</b>;
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                    <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-                    <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                    <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Left</A></FONT>         : Column_Position;
+-                    <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A> := 0;
+-                    More_Buffers : Buffer_Number := Buffer_Number'First)
+-                    <b>return</b> Field;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_293_13" HREF="terminal_interface-curses-forms__adb.htm#ref_108_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_293_21" HREF="terminal_interface-curses-forms__adb.htm#ref_108_21">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                    <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Left</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                    <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Off_Screen</A></FONT>   : Natural := 0;
++                    <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First)
++                    <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded Create is defined later. Pragma Inline appears there.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_305_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                       <FONT COLOR=red><A NAME="ref_306_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-                       <FONT COLOR=red><A NAME="ref_307_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                       <FONT COLOR=red><A NAME="ref_308_24">Left</A></FONT>         : Column_Position;
+-                       <FONT COLOR=red><A NAME="ref_309_24">Off_Screen</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A> := 0;
+-                       More_Buffers : Buffer_Number := Buffer_Number'First)
+-                       <b>return</b> Field <b>renames</b> Create;
++   <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_304_24">Height</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                       <FONT COLOR=red><A NAME="ref_305_24">Width</A></FONT>        : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++                       <FONT COLOR=red><A NAME="ref_306_24">Top</A></FONT>          : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                       <FONT COLOR=red><A NAME="ref_307_24">Left</A></FONT>         : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                       <FONT COLOR=red><A NAME="ref_308_24">Off_Screen</A></FONT>   : Natural := 0;
++                       <FONT COLOR=red><A NAME="ref_309_24">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First)
++                       <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_293_13">Create</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
+    <b>pragma</b> Inline (New_Field);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Fld : <b>in</b> <b>out</b> Field);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-forms__adb.htm#ref_131_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_315_22" HREF="terminal_interface-curses-forms__adb.htm#ref_131_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Reset Fld to Null_Field</EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+-   <b>function</b> Duplicate (<FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+-                       <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                       Left : Column_Position) <b>return</b> Field;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_321_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses-forms__adb.htm#ref_147_24">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                       <FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                       <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT>
+    <b>pragma</b> Inline (Duplicate);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+-   <b>function</b> Link (<FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+-                  <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                  Left : Column_Position) <b>return</b> Field;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_328_13" HREF="terminal_interface-curses-forms__adb.htm#ref_168_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_328_19" HREF="terminal_interface-curses-forms__adb.htm#ref_168_19">Fld</A></FONT>  : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                  <FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Top</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT>
+-   <b>pragma</b> Inline (Link);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_328_13">Link</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
+-   <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field</A>;
+-                                Just : <b>in</b> Field_Justification := None);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_339_14" HREF="terminal_interface-curses-forms__adb.htm#ref_193_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_339_33" HREF="terminal_interface-curses-forms__adb.htm#ref_193_33">Fld</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                                <FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Just</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Justification);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_339_14">Set_Justification</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
+-   <b>function</b> Get_Justification (Fld : Field) <b>return</b> Field_Justification;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_345_13" HREF="terminal_interface-curses-forms__adb.htm#ref_211_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_345_32" HREF="terminal_interface-curses-forms__adb.htm#ref_211_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Justification);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_345_13">Get_Justification</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
+-   <b>procedure</b> Set_Buffer
+-     (<FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
+-      <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+-      Str    : <b>in</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_354_14" HREF="terminal_interface-curses-forms__adb.htm#ref_225_14">Set_Buffer</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_355_7" HREF="terminal_interface-curses-forms__adb.htm#ref_226_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++      <FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First;
++      <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Str</A></FONT>    : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
+-   <b>procedure</b> Get_Buffer
+-     (<FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
+-      <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+-      Str    : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_362_14" HREF="terminal_interface-curses-forms__adb.htm#ref_250_14">Get_Buffer</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_363_7" HREF="terminal_interface-curses-forms__adb.htm#ref_251_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++      <FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First;
++      <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Str</A></FONT>    : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
+ 
+-   <b>function</b> Get_Buffer
+-     (<FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Field</A>;
+-      Buffer : <b>in</b> Buffer_Number := Buffer_Number'First) <b>return</b> String;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_368_13" HREF="terminal_interface-curses-forms__adb.htm#ref_262_13">Get_Buffer</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_369_7" HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++      <FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>'First) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same but as function</EM></FONT>
+    <b>pragma</b> Inline (Get_Buffer);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
+-   <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Fld</A></FONT>    : <b>in</b> Field;
+-                         Status : <b>in</b> Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_376_14" HREF="terminal_interface-curses-forms__adb.htm#ref_275_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses-forms__adb.htm#ref_275_26">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Status</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Status);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_376_14">Set_Status</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
+-   <b>function</b> Changed (Fld : Field) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_382_13" HREF="terminal_interface-curses-forms__adb.htm#ref_291_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_382_22" HREF="terminal_interface-curses-forms__adb.htm#ref_291_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT>
+-   <b>pragma</b> Inline (Changed);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
+-   <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Fld</A></FONT> : <b>in</b> Field;
+-                               Max : <b>in</b> Natural := 0);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-forms__adb.htm#ref_307_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_387_32" HREF="terminal_interface-curses-forms__adb.htm#ref_307_32">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                               <FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Max</A></FONT> : <b>in</b> Natural := 0);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Maximum_Size);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_387_14">Set_Maximum_Size</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
+-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
+-                          Options : <b>in</b> Field_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_397_14" HREF="terminal_interface-curses-forms__adb.htm#ref_327_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_397_27" HREF="terminal_interface-curses-forms__adb.htm#ref_327_27">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                          <FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
+-                             <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
+-                             On      : Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_403_14" HREF="terminal_interface-curses-forms__adb.htm#ref_345_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_403_30" HREF="terminal_interface-curses-forms__adb.htm#ref_345_30">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                             <FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
++                             <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">On</A></FONT>      : Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: field_opts_off()</EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
+-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field</A>;
+-                          Options : <b>out</b> Field_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-forms__adb.htm#ref_371_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-forms__adb.htm#ref_371_27">Fld</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                          <FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
+-   <b>function</b> Get_Options (Fld : Field := Null_Field)
+-                         <b>return</b> Field_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_416_13" HREF="terminal_interface-curses-forms__adb.htm#ref_384_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_416_26" HREF="terminal_interface-curses-forms__adb.htm#ref_384_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>)
++                         <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+ 
+@@ -429,161 +428,161 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
+-   <b>procedure</b> Set_Foreground
+-     (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_426_14" HREF="terminal_interface-curses-forms__adb.htm#ref_399_14">Set_Foreground</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses-forms__adb.htm#ref_400_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++      <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Foreground);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_426_14">Set_Foreground</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
+-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-                         Fore : <b>out</b> Character_Attribute_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_434_14" HREF="terminal_interface-curses-forms__adb.htm#ref_421_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_434_26" HREF="terminal_interface-curses-forms__adb.htm#ref_421_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
+-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-                         <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-                         Color : <b>out</b> Color_Pair);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_439_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_439_26" HREF="terminal_interface-curses-forms__adb.htm#ref_430_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++                         <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
+    <b>pragma</b> Inline (Foreground);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
+-   <b>procedure</b> Set_Background
+-     (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-      <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_446_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Set_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses-forms__adb.htm#ref_444_7">Fld</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++      <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT>
+    <b>pragma</b> Inline (Set_Background);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
+-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-                         Back : <b>out</b> Character_Attribute_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-forms__adb.htm#ref_465_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_454_26" HREF="terminal_interface-curses-forms__adb.htm#ref_465_26">Fld</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
+-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+-                         <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-                         Color : <b>out</b> Color_Pair);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_459_14" HREF="terminal_interface-curses-forms__adb.htm#ref_474_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_459_26" HREF="terminal_interface-curses-forms__adb.htm#ref_474_26">Fld</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                         <FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++                         <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
+    <b>pragma</b> Inline (Background);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
+-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Fld</A></FONT> : <b>in</b> Field;
+-                                Pad : <b>in</b> Character := Space);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_466_14" HREF="terminal_interface-curses-forms__adb.htm#ref_487_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_466_33" HREF="terminal_interface-curses-forms__adb.htm#ref_487_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                                <FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Pad</A></FONT> : <b>in</b> Character := Space);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Pad_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_466_14">Set_Pad_Character</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
+-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Fld</A></FONT> : <b>in</b>  Field;
+-                            Pad : <b>out</b> Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_472_14" HREF="terminal_interface-curses-forms__adb.htm#ref_504_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_472_29" HREF="terminal_interface-curses-forms__adb.htm#ref_504_29">Fld</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                            <FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Pad</A></FONT> : <b>out</b> Character);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Pad_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_472_14">Pad_Character</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
+-   <b>procedure</b> Info (<FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Field</A>;
+-                   <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                   <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-                   <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                   <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">First_Column</A></FONT>       : <b>out</b> Column_Position;
+-                   <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Off_Screen</A></FONT>         : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Natural</A>;
+-                   Additional_Buffers : <b>out</b> Buffer_Number);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_482_14" HREF="terminal_interface-curses-forms__adb.htm#ref_519_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_482_20" HREF="terminal_interface-curses-forms__adb.htm#ref_519_20">Fld</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                   <FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Lines</A></FONT>              : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                   <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Columns</A></FONT>            : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++                   <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">First_Row</A></FONT>          : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Column</A></FONT>       : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">Off_Screen</A></FONT>         : <b>out</b> Natural;
++                   <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_9">Buffer_Number</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT>
+-   <b>pragma</b> Inline (Info);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
+-   <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Fld</A></FONT>     : <b>in</b> Field;
+-                           <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                           <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Columns</A></FONT> : <b>out</b> Column_Count;
+-                           Max     : <b>out</b> Natural);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_493_14" HREF="terminal_interface-curses-forms__adb.htm#ref_553_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_493_28" HREF="terminal_interface-curses-forms__adb.htm#ref_553_28">Fld</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                           <FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                           <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++                           <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Max</A></FONT>     : <b>out</b> Natural);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></FONT>
+-   <b>pragma</b> Inline (Dynamic_Info);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_493_14">Dynamic_Info</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
+-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
+-                         Win : <b>in</b> Window);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_505_14" HREF="terminal_interface-curses-forms__adb.htm#ref_582_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_505_26" HREF="terminal_interface-curses-forms__adb.htm#ref_582_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                         <FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_505_14">Set_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
+-   <b>function</b> Get_Window (Frm : Form) <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_511_13" HREF="terminal_interface-curses-forms__adb.htm#ref_598_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_511_25" HREF="terminal_interface-curses-forms__adb.htm#ref_598_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_511_13">Get_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
+-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
+-                             Win : <b>in</b> Window);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_516_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_516_30" HREF="terminal_interface-curses-forms__adb.htm#ref_610_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                             <FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Sub_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_516_14">Set_Sub_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
+-   <b>function</b> Get_Sub_Window (Frm : Form) <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_522_13" HREF="terminal_interface-curses-forms__adb.htm#ref_626_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_522_29" HREF="terminal_interface-curses-forms__adb.htm#ref_626_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Sub_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_522_13">Get_Sub_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
+-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Frm</A></FONT>     : <b>in</b> Form;
+-                    <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                    Columns : <b>out</b> Column_Count);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses-forms__adb.htm#ref_638_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_527_21" HREF="terminal_interface-curses-forms__adb.htm#ref_638_21">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                    <FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT>
+-   <b>pragma</b> Inline (Scale);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_527_14">Scale</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Form_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Frm : <b>in</b> Form);
+-   <b>pragma</b> Convention (C, Form_Hook_Function);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_537_9">Form_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_537_49">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
+-   <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
+-                                  Proc : <b>in</b> Form_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_541_14" HREF="terminal_interface-curses-forms__adb.htm#ref_662_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_541_35" HREF="terminal_interface-curses-forms__adb.htm#ref_662_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                                  <FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Field_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_541_14">Set_Field_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
+-   <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
+-                                  Proc : <b>in</b> Form_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-forms__adb.htm#ref_678_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_547_35" HREF="terminal_interface-curses-forms__adb.htm#ref_678_35">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                                  <FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Field_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_547_14">Set_Field_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
+-   <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
+-                                 Proc : <b>in</b> Form_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__adb.htm#ref_694_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_553_34" HREF="terminal_interface-curses-forms__adb.htm#ref_694_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                                 <FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Form_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_553_14">Set_Form_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
+-   <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
+-                                 Proc : <b>in</b> Form_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_559_14" HREF="terminal_interface-curses-forms__adb.htm#ref_710_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_559_34" HREF="terminal_interface-curses-forms__adb.htm#ref_710_34">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                                 <FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Form_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_559_14">Set_Form_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+-   <b>function</b> Get_Field_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_565_13">Get_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-forms__ads.htm#ref_565_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT>
+    <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
+-   <b>function</b> Get_Field_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_570_13">Get_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_570_34" HREF="terminal_interface-curses-forms__ads.htm#ref_570_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT>
+    <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
+-   <b>function</b> Get_Form_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_575_13">Get_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_575_33" HREF="terminal_interface-curses-forms__ads.htm#ref_575_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT>
+    <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
+-   <b>function</b> Get_Form_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_580_13">Get_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_580_33" HREF="terminal_interface-curses-forms__ads.htm#ref_580_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT>
+    <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
+ 
+@@ -592,52 +591,52 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
+-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Form</A>;
+-                       Flds : <b>in</b> Field_Array_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_589_14" HREF="terminal_interface-curses-forms__adb.htm#ref_730_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_589_24" HREF="terminal_interface-curses-forms__adb.htm#ref_730_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                       <FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
+-   <b>pragma</b> Inline (Redefine);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
+-   <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="ref_596_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Form</A>;
+-                         Flds : <b>in</b> Field_Array_Access) <b>renames</b> Redefine;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_595_14">Set_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_595_26">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                         <FONT COLOR=red><A NAME="ref_596_26">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  pragma Inline (Set_Fields);</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
+-   <b>function</b> Fields (<FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Frm</A></FONT>   : Form;
+-                    Index : Positive) <b>return</b> Field;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_601_13" HREF="terminal_interface-curses-forms__adb.htm#ref_752_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_601_21" HREF="terminal_interface-curses-forms__adb.htm#ref_752_21">Frm</A></FONT>   : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                    <FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT>
+-   <b>pragma</b> Inline (Fields);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
+-   <b>function</b> Field_Count (Frm : Form) <b>return</b> Natural;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_607_13" HREF="terminal_interface-curses-forms__adb.htm#ref_772_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_607_26" HREF="terminal_interface-curses-forms__adb.htm#ref_772_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT>
+-   <b>pragma</b> Inline (Field_Count);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
+-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+-                   <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                   Column : <b>in</b> Column_Position);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_612_14" HREF="terminal_interface-curses-forms__adb.htm#ref_782_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_612_20" HREF="terminal_interface-curses-forms__adb.htm#ref_782_20">Fld</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                   <FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT>
+-   <b>pragma</b> Inline (Move);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_612_14">Move</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+-   <b>function</b> Create (Fields : Field_Array_Access) <b>return</b> Form;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_623_13" HREF="terminal_interface-curses-forms__adb.htm#ref_802_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_623_21" HREF="terminal_interface-curses-forms__adb.htm#ref_802_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
+    <b>pragma</b> Inline (Create);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
+-   <b>function</b> New_Form (Fields : Field_Array_Access) <b>return</b> Form
+-     <b>renames</b> Create;
++   <b>function</b> New_Form (<FONT COLOR=red><A NAME="ref_628_23">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_134_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>
++     <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  pragma Inline (New_Form);</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Frm : <b>in</b> <b>out</b> Form);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses-forms__adb.htm#ref_823_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_634_22" HREF="terminal_interface-curses-forms__adb.htm#ref_823_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Reset Frm to Null_Form</EM></FONT>
+    <b>pragma</b> Inline (Delete);
+@@ -647,26 +646,26 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
+-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
+-                          Options : <b>in</b> Form_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-forms__adb.htm#ref_842_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27" HREF="terminal_interface-curses-forms__adb.htm#ref_842_27">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                          <FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT>
+    <b>pragma</b> Inline (Set_Options);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
+-                             <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
+-                             On      : Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_650_14" HREF="terminal_interface-curses-forms__adb.htm#ref_860_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_650_30" HREF="terminal_interface-curses-forms__adb.htm#ref_860_30">Frm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                             <FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
++                             <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">On</A></FONT>      : Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: form_opts_off()</EM></FONT>
+    <b>pragma</b> Inline (Switch_Options);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form</A>;
+-                          Options : <b>out</b> Form_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_658_14" HREF="terminal_interface-curses-forms__adb.htm#ref_886_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_658_27" HREF="terminal_interface-curses-forms__adb.htm#ref_886_27">Frm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                          <FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
+-   <b>function</b> Get_Options (Frm : Form := Null_Form) <b>return</b> Form_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_663_13" HREF="terminal_interface-curses-forms__adb.htm#ref_899_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_663_26" HREF="terminal_interface-curses-forms__adb.htm#ref_899_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_107_9">Form_Option_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
+    <b>pragma</b> Inline (Get_Options);
+ 
+@@ -675,47 +674,47 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
+-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Frm</A></FONT>  : <b>in</b> Form;
+-                   Post : <b>in</b> Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_672_14" HREF="terminal_interface-curses-forms__adb.htm#ref_913_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_672_20" HREF="terminal_interface-curses-forms__adb.htm#ref_913_20">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                   <FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Post</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: unpost_form()</EM></FONT>
+-   <b>pragma</b> Inline (Post);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_672_14">Post</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
+-   <b>procedure</b> Position_Cursor (Frm : Form);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_683_14" HREF="terminal_interface-curses-forms__adb.htm#ref_939_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_683_31" HREF="terminal_interface-curses-forms__adb.htm#ref_939_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT>
+-   <b>pragma</b> Inline (Position_Cursor);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_683_14">Position_Cursor</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
+-   <b>function</b> Data_Ahead (Frm : Form) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_692_13" HREF="terminal_interface-curses-forms__adb.htm#ref_957_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_692_25" HREF="terminal_interface-curses-forms__adb.htm#ref_957_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT>
+-   <b>pragma</b> Inline (Data_Ahead);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_692_13">Data_Ahead</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
+-   <b>function</b> Data_Behind (Frm : Form) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_697_13" HREF="terminal_interface-curses-forms__adb.htm#ref_973_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_697_26" HREF="terminal_interface-curses-forms__adb.htm#ref_973_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT>
+-   <b>pragma</b> Inline (Data_Behind);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_697_13">Data_Behind</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_706_27">Form_Ok</A></FONT>,
+-                          <FONT COLOR=red><A NAME="ref_707_27">Request_Denied</A></FONT>,
+-                          <FONT COLOR=red><A NAME="ref_708_27">Unknown_Request</A></FONT>,
+-                          Invalid_Field);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_705_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_705_27">Form_Ok</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_706_27">Request_Denied</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_707_27">Unknown_Request</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_708_27">Invalid_Field</A></FONT>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
+-   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Form</A>;
+-                    Key : Key_Code) <b>return</b> Driver_Result;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_711_13" HREF="terminal_interface-curses-forms__adb.htm#ref_993_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_711_21" HREF="terminal_interface-curses-forms__adb.htm#ref_993_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                    <FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_9">Driver_Result</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Driver not inlined</EM></FONT>
+ 
+@@ -723,52 +722,52 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Page_Number <b>is</b> <b>new</b> Natural;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_720_9">Page_Number</A></FONT> <b>is</b> <b>new</b> Natural;
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
+-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+-                          Fld : <b>in</b> Field);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_723_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_723_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                          <FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Current);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_723_14">Set_Current</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
+-   <b>function</b> Current (Frm : <b>in</b> Form) <b>return</b> Field;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_729_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_729_22" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_22">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></FONT>
+-   <b>pragma</b> Inline (Current);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_729_13">Current</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
+-   <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Form</A>;
+-                       Page : <b>in</b> Page_Number := Page_Number'First);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_734_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_734_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_24">Frm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++                       <FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Page</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Page);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_734_14">Set_Page</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
+-   <b>function</b> Page (Frm : Form) <b>return</b> Page_Number;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_740_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_740_19" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT>
+-   <b>pragma</b> Inline (Page);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
+-   <b>function</b> Get_Index (Fld : Field) <b>return</b> Positive;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_745_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_745_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Please note that in this binding we start the numbering of fields</EM></FONT>
+    <FONT COLOR=green><EM>--  with 1. So this is number is one more than you get from the low</EM></FONT>
+    <FONT COLOR=green><EM>--  level call.</EM></FONT>
+-   <b>pragma</b> Inline (Get_Index);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_745_13">Get_Index</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
+-   <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">Fld</A></FONT>      : <b>in</b> Field;
+-                           New_Page : <b>in</b> Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_757_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_757_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_28">Fld</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++                           <FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">New_Page</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_New_Page);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_757_14">Set_New_Page</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
+-   <b>function</b> Is_New_Page (Fld : Field) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_763_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_763_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
+-   <b>pragma</b> Inline (Is_New_Page);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></FONT>
+@@ -777,11 +776,11 @@
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <b>private</b>
+-   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+-   <b>type</b> Form  <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++   <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>  <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ 
+-   <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field</A> := 0;
+-   Null_Form  : <b>constant</b> Form  := 0;
++   <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := 0;
++   <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>  : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>  := 0;
+ 
+-<b>end</b> Terminal_Interface.Curses.Forms;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -47,10 +46,10 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>generic</b>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">;</A>
+-<b>package</b> Terminal_Interface.Curses.Menus.Item_User_Data <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  The binding uses the same user pointer for menu items</EM></FONT>
+    <FONT COLOR=green><EM>--  as the low level C implementation. So you can safely</EM></FONT>
+@@ -61,21 +60,21 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">Item</A>;
+-                            Data : <b>in</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                            <FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_User_Data);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">Item</A>;
+-                            Data : <b>out</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_29">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                            <FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>function</b> Get_User_Data (Itm  : <b>in</b>  Item) <b>return</b> User_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_28">Itm</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Get_User_Data);
+ 
+-<b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -46,31 +45,31 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>generic</b>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">;</A>
+-<b>package</b> Terminal_Interface.Curses.Menus.Menu_User_Data <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
+-                            Data : <b>in</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_User_Data);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
+-                            Data : <b>out</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_29">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>function</b> Get_User_Data (Men  : <b>in</b>  Menu) <b>return</b> User_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_28">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Get_User_Data);
+ 
+-<b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-menus__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-menus__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -41,8 +40,8 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--  Author:  Juergen Pfeifer, 1996</EM></FONT>
+ <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>--  @Revision: 1.26 @</EM></FONT>
+-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Revision: 1.27 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:20:52 @</EM></FONT>
+ <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--  menu binding.</EM></FONT>
+@@ -52,90 +51,90 @@
+ <b>with</b> System;
+ <b>with</b> Ada.Characters.Latin_1;
+ 
+-<b>package</b> Terminal_Interface.Curses.Menus <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-menus__adb.htm#ref_51_40">Menus</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>);
+    <b>pragma</b> Linker_Options ("-lmenu");
+    <b>pragma</b> Linker_Options ("-lncurses");
+ 
+    Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
+ 
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Item</A></FONT> <b>is</b> <b>private</b>;
+-   <b>type</b> Menu <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Menu</A></FONT> <b>is</b> <b>private</b>;
+ 
+    <FONT COLOR=green><EM>---------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Interface constants  --</EM></FONT>
+    <FONT COLOR=green><EM>---------------------------</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_63_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A>;
+-   Null_Menu : <b>constant</b> Menu;
++   <FONT COLOR=red><A NAME="ref_62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++   <FONT COLOR=red><A NAME="ref_63_4">Null_Menu</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+ 
+-   <b>subtype</b> Menu_Request_Code <b>is</b> Key_Code
+-     <b>range</b> (Key_Max + 1) .. (Key_Max + 17);
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Menu_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
++     <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17);
+ 
+    <FONT COLOR=green><EM>--  The prefix M_ stands for "Menu Request"</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_70_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+-   <FONT COLOR=red><A NAME="ref_71_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+-   <FONT COLOR=red><A NAME="ref_72_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+-   <FONT COLOR=red><A NAME="ref_73_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+-   <FONT COLOR=red><A NAME="ref_74_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+-   <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+-   <FONT COLOR=red><A NAME="ref_76_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+-   <FONT COLOR=red><A NAME="ref_77_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+-   <FONT COLOR=red><A NAME="ref_78_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+-   <FONT COLOR=red><A NAME="ref_79_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+-   <FONT COLOR=red><A NAME="ref_80_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+-   <FONT COLOR=red><A NAME="ref_81_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+-   <FONT COLOR=red><A NAME="ref_82_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+-   <FONT COLOR=red><A NAME="ref_83_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+-   <FONT COLOR=red><A NAME="ref_84_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+-   <FONT COLOR=red><A NAME="ref_85_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
+-   M_Previous_Match  : <b>constant</b> Menu_Request_Code := Key_Max + 17;
++   <FONT COLOR=red><A NAME="ref_69_4">M_Left_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
++   <FONT COLOR=red><A NAME="ref_70_4">M_Right_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
++   <FONT COLOR=red><A NAME="ref_71_4">M_Up_Item</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
++   <FONT COLOR=red><A NAME="ref_72_4">M_Down_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
++   <FONT COLOR=red><A NAME="ref_73_4">M_ScrollUp_Line</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
++   <FONT COLOR=red><A NAME="ref_74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
++   <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
++   <FONT COLOR=red><A NAME="ref_76_4">M_ScrollUp_Page</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
++   <FONT COLOR=red><A NAME="ref_77_4">M_First_Item</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
++   <FONT COLOR=red><A NAME="ref_78_4">M_Last_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
++   <FONT COLOR=red><A NAME="ref_79_4">M_Next_Item</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
++   <FONT COLOR=red><A NAME="ref_80_4">M_Previous_Item</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
++   <FONT COLOR=red><A NAME="ref_81_4">M_Toggle_Item</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
++   <FONT COLOR=red><A NAME="ref_82_4">M_Clear_Pattern</A></FONT>   : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
++   <FONT COLOR=red><A NAME="ref_83_4">M_Back_Pattern</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
++   <FONT COLOR=red><A NAME="ref_84_4">M_Next_Match</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
++   <FONT COLOR=red><A NAME="ref_85_4">M_Previous_Match</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+ 
+    <FONT COLOR=green><EM>--  For those who like the old 'C' names for the request codes</EM></FONT>
+-   REQ_LEFT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Left_Item</A>;
+-   REQ_RIGHT_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Right_Item</A>;
+-   REQ_UP_ITEM       : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Up_Item</A>;
+-   REQ_DOWN_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_Down_Item</A>;
+-   REQ_SCR_ULINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollUp_Line</A>;
+-   REQ_SCR_DLINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Line</A>;
+-   REQ_SCR_DPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollDown_Page</A>;
+-   REQ_SCR_UPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_ScrollUp_Page</A>;
+-   REQ_FIRST_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_First_Item</A>;
+-   REQ_LAST_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Last_Item</A>;
+-   REQ_NEXT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Next_Item</A>;
+-   REQ_PREV_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Previous_Item</A>;
+-   REQ_TOGGLE_ITEM   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Toggle_Item</A>;
+-   REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Clear_Pattern</A>;
+-   REQ_BACK_PATTERN  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Back_Pattern</A>;
+-   REQ_NEXT_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Next_Match</A>;
+-   REQ_PREV_MATCH    : Menu_Request_Code <b>renames</b> M_Previous_Match;
++   REQ_LEFT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_Left_Item</A>;
++   REQ_RIGHT_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Right_Item</A>;
++   REQ_UP_ITEM       : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Up_Item</A>;
++   REQ_DOWN_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Down_Item</A>;
++   REQ_SCR_ULINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_ScrollUp_Line</A>;
++   REQ_SCR_DLINE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollDown_Line</A>;
++   REQ_SCR_DPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Page</A>;
++   REQ_SCR_UPAGE     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollUp_Page</A>;
++   REQ_FIRST_ITEM    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_First_Item</A>;
++   REQ_LAST_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Last_Item</A>;
++   REQ_NEXT_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Next_Item</A>;
++   REQ_PREV_ITEM     : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Previous_Item</A>;
++   REQ_TOGGLE_ITEM   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Toggle_Item</A>;
++   REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Clear_Pattern</A>;
++   REQ_BACK_PATTERN  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Back_Pattern</A>;
++   REQ_NEXT_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Next_Match</A>;
++   REQ_PREV_MATCH    : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Previous_Match</A>;
+ 
+-   <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Key</A></FONT>  : <b>in</b> Menu_Request_Code;
+-                           Name : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__adb.htm#ref_77_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_77_28">Key</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>;
++                           <FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Name</A></FONT> : <b>out</b> String);
+ 
+-   <b>function</b>  Request_Name (Key : Menu_Request_Code) <b>return</b> String;
++   <b>function</b>  <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-menus__adb.htm#ref_86_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_109_28" HREF="terminal_interface-curses-menus__adb.htm#ref_86_27">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+ 
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+ 
+-   Menu_Exception : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_116_4">Menu_Exception</A></FONT> : <b>exception</b>;
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--  Menu options</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <b>pragma</b> Warnings (Off);
+-   <b>type</b> Menu_Option_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_121_9">Menu_Option_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_124_10">One_Valued</A></FONT>        : Boolean;
+-         <FONT COLOR=red><A NAME="ref_125_10">Show_Descriptions</A></FONT> : Boolean;
+-         <FONT COLOR=red><A NAME="ref_126_10">Row_Major_Order</A></FONT>   : Boolean;
+-         <FONT COLOR=red><A NAME="ref_127_10">Ignore_Case</A></FONT>       : Boolean;
+-         <FONT COLOR=red><A NAME="ref_128_10">Show_Matches</A></FONT>      : Boolean;
+-         Non_Cyclic        : Boolean;
++         <FONT COLOR=red><A NAME="ref_123_10">One_Valued</A></FONT>        : Boolean;
++         <FONT COLOR=red><A NAME="ref_124_10">Show_Descriptions</A></FONT> : Boolean;
++         <FONT COLOR=red><A NAME="ref_125_10">Row_Major_Order</A></FONT>   : Boolean;
++         <FONT COLOR=red><A NAME="ref_126_10">Ignore_Case</A></FONT>       : Boolean;
++         <FONT COLOR=red><A NAME="ref_127_10">Show_Matches</A></FONT>      : Boolean;
++         <FONT COLOR=red><A NAME="ref_128_10">Non_Cyclic</A></FONT>        : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Menu_Option_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
+ 
+-   <b>for</b> Menu_Option_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> <b>use</b>
+       <b>record</b>
+          One_Valued        <b>at</b> 0 <b>range</b>  0 ..  0;
+          Show_Descriptions <b>at</b> 0 <b>range</b>  1 ..  1;
+@@ -144,47 +143,47 @@
+          Show_Matches      <b>at</b> 0 <b>range</b>  4 ..  4;
+          Non_Cyclic        <b>at</b> 0 <b>range</b>  5 ..  5;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Menu_Option_Set'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>'Size <b>use</b> 32;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+    <b>pragma</b> Warnings (On);
+ 
+-   <b>function</b> Default_Menu_Options <b>return</b> Menu_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_146_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1009_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+    <FONT COLOR=green><EM>--  Initial default options for a menu.</EM></FONT>
+-   <b>pragma</b> Inline (Default_Menu_Options);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</A>);
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--  Item options</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <b>pragma</b> Warnings (Off);
+-   <b>type</b> Item_Option_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_153_9">Item_Option_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         Selectable  : Boolean;
++         <FONT COLOR=red><A NAME="ref_155_10">Selectable</A></FONT>  : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Item_Option_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
+ 
+-   <b>for</b> Item_Option_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A> <b>use</b>
+       <b>record</b>
+          Selectable  <b>at</b> 0 <b>range</b>  0 ..  0;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Item_Option_Set'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>'Size <b>use</b> 32;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+    <b>pragma</b> Warnings (On);
+ 
+-   <b>function</b> Default_Item_Options <b>return</b> Item_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1015_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
+    <FONT COLOR=green><EM>--  Initial default options for an item.</EM></FONT>
+-   <b>pragma</b> Inline (Default_Item_Options);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_168_13">Default_Item_Options</A>);
+ 
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--  Item Array</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Item;
+-   <b>pragma</b> Convention (C, Item_Array);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_175_9">Item_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_175_9">Item_Array</A>);
+ 
+-   <b>type</b> Item_Array_Access <b>is</b> <b>access</b> Item_Array;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_178_9">Item_Array_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_175_9">Item_Array</A>;
+ 
+-   <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_181_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">IA</A></FONT>         : <b>in</b> <b>out</b> Item_Array_Access;
+-                   Free_Items : Boolean := False);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_180_14" HREF="terminal_interface-curses-menus__adb.htm#ref_992_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_180_20" HREF="terminal_interface-curses-menus__adb.htm#ref_992_20">IA</A></FONT>         : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>;
++                   <FONT COLOR=red><A NAME="ref_181_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">Free_Items</A></FONT> : Boolean := False);
+    <FONT COLOR=green><EM>--  Release the memory for an allocated item array</EM></FONT>
+    <FONT COLOR=green><EM>--  If Free_Items is True, call Delete() for all the items in</EM></FONT>
+    <FONT COLOR=green><EM>--  the array.</EM></FONT>
+@@ -194,19 +193,19 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>function</b> Create (<FONT COLOR=red><A NAME="ref_192_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Name</A></FONT>        : String;
+-                    Description : String := "") <b>return</b> Item;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_191_13" HREF="terminal_interface-curses-menus__adb.htm#ref_94_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_191_21" HREF="terminal_interface-curses-menus__adb.htm#ref_94_21">Name</A></FONT>        : String;
++                    <FONT COLOR=red><A NAME="ref_192_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Not inlined.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_198_23">Name</A></FONT>        : String;
+-             <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_13"> </A>        Description : String := "") <b>return</b> Item
+-     <b>renames</b> Create;
++   <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_197_23">Name</A></FONT>        : String;
++                      <FONT COLOR=red><A NAME="ref_198_23">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
++     <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_13">Create</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Itm : <b>in</b> <b>out</b> Item);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_203_14" HREF="terminal_interface-curses-menus__adb.htm#ref_124_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_203_22" HREF="terminal_interface-curses-menus__adb.htm#ref_124_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Resets Itm to Null_Item</EM></FONT>
+ 
+@@ -215,51 +214,51 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+-   <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="ref_213_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Itm</A></FONT>   : <b>in</b> Item;
+-                        Value : <b>in</b> Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_212_14" HREF="terminal_interface-curses-menus__adb.htm#ref_152_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_212_25" HREF="terminal_interface-curses-menus__adb.htm#ref_152_25">Itm</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                        <FONT COLOR=red><A NAME="ref_213_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Value</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Value);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_212_14">Set_Value</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+-   <b>function</b> Value (Itm : Item) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_218_13" HREF="terminal_interface-curses-menus__adb.htm#ref_166_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_218_20" HREF="terminal_interface-curses-menus__adb.htm#ref_166_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT>
+-   <b>pragma</b> Inline (Value);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_218_13">Value</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
+-   <b>function</b> Visible (Itm : Item) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_227_13" HREF="terminal_interface-curses-menus__adb.htm#ref_179_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_227_22" HREF="terminal_interface-curses-menus__adb.htm#ref_179_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT>
+-   <b>pragma</b> Inline (Visible);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_227_13">Visible</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
+-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_237_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
+-                          Options : <b>in</b> Item_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_236_14" HREF="terminal_interface-curses-menus__adb.htm#ref_191_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_236_27" HREF="terminal_interface-curses-menus__adb.htm#ref_191_27">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                          <FONT COLOR=red><A NAME="ref_237_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded Set_Options is defined later. Pragma Inline appears there</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
+-                             <FONT COLOR=red><A NAME="ref_244_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
+-                             On      : Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses-menus__adb.htm#ref_207_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_207_30">Itm</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                             <FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
++                             <FONT COLOR=red><A NAME="ref_244_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">On</A></FONT>      : Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: item_opts_off()</EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded Switch_Options is defined later.</EM></FONT>
+    <FONT COLOR=green><EM>--  Pragma Inline appears there</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
+-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_252_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item</A>;
+-                          Options : <b>out</b> Item_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_251_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_251_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                          <FONT COLOR=red><A NAME="ref_252_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
+-   <b>function</b> Get_Options (Itm : Item := Null_Item) <b>return</b> Item_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_256_13" HREF="terminal_interface-curses-menus__adb.htm#ref_242_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_256_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_9">Item_Option_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT>
+ 
+@@ -268,20 +267,20 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
+-   <b>procedure</b> Name (<FONT COLOR=red><A NAME="ref_266_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Itm</A></FONT>  : <b>in</b> Item;
+-                   Name : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_265_14" HREF="terminal_interface-curses-menus__adb.htm#ref_250_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_265_20" HREF="terminal_interface-curses-menus__adb.htm#ref_250_20">Itm</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                   <FONT COLOR=red><A NAME="ref_266_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Name</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
+-   <b>function</b>  Name (Itm : Item) <b>return</b> String;
++   <b>function</b>  <FONT COLOR=red><A NAME="ref_268_14" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_268_20" HREF="terminal_interface-curses-menus__adb.htm#ref_259_19">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
+    <b>pragma</b> Inline (Name);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
+-   <b>procedure</b> Description (<FONT COLOR=red><A NAME="ref_275_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Itm</A></FONT>         : <b>in</b> Item;
+-                          Description : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_274_14" HREF="terminal_interface-curses-menus__adb.htm#ref_267_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_274_27" HREF="terminal_interface-curses-menus__adb.htm#ref_267_27">Itm</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++                          <FONT COLOR=red><A NAME="ref_275_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Description</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
+ 
+-   <b>function</b>  Description (Itm : Item) <b>return</b> String;
++   <b>function</b>  <FONT COLOR=red><A NAME="ref_278_14" HREF="terminal_interface-curses-menus__adb.htm#ref_276_13">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_278_27" HREF="terminal_interface-curses-menus__adb.htm#ref_276_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
+    <b>pragma</b> Inline (Description);
+@@ -291,71 +290,71 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
+-   <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_289_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+-                          Itm : <b>in</b> Item);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_288_14" HREF="terminal_interface-curses-menus__adb.htm#ref_284_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_288_27" HREF="terminal_interface-curses-menus__adb.htm#ref_284_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                          <FONT COLOR=red><A NAME="ref_289_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Current);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_288_14">Set_Current</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
+-   <b>function</b> Current (Men : Menu) <b>return</b> Item;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_294_13" HREF="terminal_interface-curses-menus__adb.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_294_22" HREF="terminal_interface-curses-menus__adb.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></FONT>
+-   <b>pragma</b> Inline (Current);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_294_13">Current</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
+-   <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Menu</A>;
+-                          Line : <b>in</b> Line_Position);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_299_14" HREF="terminal_interface-curses-menus__adb.htm#ref_311_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_299_27" HREF="terminal_interface-curses-menus__adb.htm#ref_311_27">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                          <FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Top_Row);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_299_14">Set_Top_Row</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
+-   <b>function</b> Top_Row (Men : Menu) <b>return</b> Line_Position;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_305_13" HREF="terminal_interface-curses-menus__adb.htm#ref_325_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses-menus__adb.htm#ref_325_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT>
+-   <b>pragma</b> Inline (Top_Row);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_305_13">Top_Row</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
+-   <b>function</b> Get_Index (Itm : Item) <b>return</b> Positive;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_310_13" HREF="terminal_interface-curses-menus__adb.htm#ref_338_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_310_24" HREF="terminal_interface-curses-menus__adb.htm#ref_338_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Please note that in this binding we start the numbering of items</EM></FONT>
+    <FONT COLOR=green><EM>--  with 1. So this is number is one more than you get from the low</EM></FONT>
+    <FONT COLOR=green><EM>--  level call.</EM></FONT>
+-   <b>pragma</b> Inline (Get_Index);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_310_13">Get_Index</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
+-   <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_323_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Men</A></FONT>  : <b>in</b> Menu;
+-                   Post : <b>in</b> Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_322_14" HREF="terminal_interface-curses-menus__adb.htm#ref_351_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_322_20" HREF="terminal_interface-curses-menus__adb.htm#ref_351_20">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                   <FONT COLOR=red><A NAME="ref_323_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Post</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: unpost_menu()</EM></FONT>
+-   <b>pragma</b> Inline (Post);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_322_14">Post</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
+-   <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
+-                          Options : <b>in</b> Menu_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_333_14" HREF="terminal_interface-curses-menus__adb.htm#ref_371_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses-menus__adb.htm#ref_371_27">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                          <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT>
+    <b>pragma</b> Inline (Set_Options);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
+-                             <FONT COLOR=red><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
+-                             On      : Boolean := True);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_339_14" HREF="terminal_interface-curses-menus__adb.htm#ref_387_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_387_30">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                             <FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
++                             <FONT COLOR=red><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">On</A></FONT>      : Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: menu_opts_off()</EM></FONT>
+    <b>pragma</b> Inline (Switch_Options);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
+-   <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_348_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu</A>;
+-                          Options : <b>out</b> Menu_Option_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_347_14" HREF="terminal_interface-curses-menus__adb.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_347_27" HREF="terminal_interface-curses-menus__adb.htm#ref_411_27">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                          <FONT COLOR=red><A NAME="ref_348_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
+-   <b>function</b> Get_Options (Men : Menu := Null_Menu) <b>return</b> Menu_Option_Set;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_352_13" HREF="terminal_interface-curses-menus__adb.htm#ref_422_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses-menus__adb.htm#ref_422_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
+    <b>pragma</b> Inline (Get_Options);
+ 
+@@ -364,185 +363,185 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
+-   <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_362_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
+-                         Win : <b>in</b> Window);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_361_14" HREF="terminal_interface-curses-menus__adb.htm#ref_430_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_361_26" HREF="terminal_interface-curses-menus__adb.htm#ref_430_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_362_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_361_14">Set_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
+-   <b>function</b> Get_Window (Men : Menu) <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_367_13" HREF="terminal_interface-curses-menus__adb.htm#ref_444_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_367_25" HREF="terminal_interface-curses-menus__adb.htm#ref_444_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_367_13">Get_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
+-   <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_373_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
+-                             Win : <b>in</b> Window);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses-menus__adb.htm#ref_454_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_372_30" HREF="terminal_interface-curses-menus__adb.htm#ref_454_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                             <FONT COLOR=red><A NAME="ref_373_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Sub_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_372_14">Set_Sub_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
+-   <b>function</b> Get_Sub_Window (Men : Menu) <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_378_13" HREF="terminal_interface-curses-menus__adb.htm#ref_468_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_378_29" HREF="terminal_interface-curses-menus__adb.htm#ref_468_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Sub_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_378_13">Get_Sub_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
+-   <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Men</A></FONT>     : <b>in</b> Menu;
+-                    <FONT COLOR=red><A NAME="ref_385_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                    Columns : <b>out</b> Column_Count);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_383_14" HREF="terminal_interface-curses-menus__adb.htm#ref_478_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_478_21">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                    <FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_385_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT>
+-   <b>pragma</b> Inline (Scale);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_383_14">Scale</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
+-   <b>procedure</b> Position_Cursor (Men : Menu);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_394_14" HREF="terminal_interface-curses-menus__adb.htm#ref_497_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_394_31" HREF="terminal_interface-curses-menus__adb.htm#ref_497_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT>
+-   <b>pragma</b> Inline (Position_Cursor);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_394_14">Position_Cursor</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
+-   <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="ref_404_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Men</A></FONT>  : <b>in</b> Menu;
+-                       Mark : <b>in</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_403_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_403_24" HREF="terminal_interface-curses-menus__adb.htm#ref_510_24">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                       <FONT COLOR=red><A NAME="ref_404_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Mark</A></FONT> : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Mark);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_403_14">Set_Mark</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
+-   <b>procedure</b> Mark (<FONT COLOR=red><A NAME="ref_410_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Men</A></FONT>  : <b>in</b>  Menu;
+-                   Mark : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_409_14" HREF="terminal_interface-curses-menus__adb.htm#ref_529_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_409_20" HREF="terminal_interface-curses-menus__adb.htm#ref_529_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                   <FONT COLOR=red><A NAME="ref_410_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Mark</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
+ 
+-   <b>function</b>  Mark (Men : Menu) <b>return</b> String;
++   <b>function</b>  <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses-menus__adb.htm#ref_538_13">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_413_20" HREF="terminal_interface-curses-menus__adb.htm#ref_538_19">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Implemented as function</EM></FONT>
+    <b>pragma</b> Inline (Mark);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></EM></FONT>
++   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
+-   <b>procedure</b> Set_Foreground
+-     (<FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-      <FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_fore()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Foreground);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_423_14" HREF="terminal_interface-curses-menus__adb.htm#ref_547_14">Set_Foreground</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++      <FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Fore</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_423_14">Set_Foreground</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
+-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-                         Fore  : <b>out</b> Character_Attribute_Set);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_431_14" HREF="terminal_interface-curses-menus__adb.htm#ref_566_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__adb.htm#ref_566_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
+-   <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-                         <FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-                         Color : <b>out</b> Color_Pair);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_436_14" HREF="terminal_interface-curses-menus__adb.htm#ref_575_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_575_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Fore</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++                         <FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
+    <b>pragma</b> Inline (Foreground);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
+-   <b>procedure</b> Set_Background
+-     (<FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_back()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-menus__adb.htm#ref_586_14">Set_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_587_7">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Back</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></FONT>
+    <b>pragma</b> Inline (Set_Background);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
+-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_452_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-                         Back : <b>out</b> Character_Attribute_Set);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_451_14" HREF="terminal_interface-curses-menus__adb.htm#ref_605_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_451_26" HREF="terminal_interface-curses-menus__adb.htm#ref_605_26">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_452_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+ 
+-   <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-                         <FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-                         Color : <b>out</b> Color_Pair);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_456_14" HREF="terminal_interface-curses-menus__adb.htm#ref_614_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_614_26">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Back</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++                         <FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
+    <b>pragma</b> Inline (Background);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
+-   <b>procedure</b> Set_Grey
+-     (<FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-      <FONT COLOR=red><A NAME="ref_466_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_grey()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Grey);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_463_14" HREF="terminal_interface-curses-menus__adb.htm#ref_625_14">Set_Grey</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_625_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++      <FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Grey</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_466_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_463_14">Set_Grey</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
+-   <b>procedure</b> Grey (<FONT COLOR=red><A NAME="ref_472_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-                   Grey : <b>out</b> Character_Attribute_Set);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_471_14" HREF="terminal_interface-curses-menus__adb.htm#ref_644_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_471_20" HREF="terminal_interface-curses-menus__adb.htm#ref_644_20">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                   <FONT COLOR=red><A NAME="ref_472_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
+-   <b>procedure</b> Grey
+-     (<FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+-      <FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-      Color : <b>out</b> Color_Pair);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_476_14" HREF="terminal_interface-curses-menus__adb.htm#ref_653_14">Grey</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_653_20">Men</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++      <FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Grey</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++      <FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
+    <b>pragma</b> Inline (Grey);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
+-   <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_485_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Men</A></FONT> : <b>in</b> Menu;
+-                                Pad : <b>in</b> Character := Space);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_pad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Pad_Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_484_14" HREF="terminal_interface-curses-menus__adb.htm#ref_664_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_484_33" HREF="terminal_interface-curses-menus__adb.htm#ref_664_33">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                                <FONT COLOR=red><A NAME="ref_485_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Pad</A></FONT> : <b>in</b> Character := Space);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_484_14">Set_Pad_Character</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
+-   <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_491_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Men</A></FONT> : <b>in</b>  Menu;
+-                            Pad : <b>out</b> Character);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attribs.3x.html">menu_pad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Pad_Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses-menus__adb.htm#ref_679_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_490_29" HREF="terminal_interface-curses-menus__adb.htm#ref_679_29">Men</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                            <FONT COLOR=red><A NAME="ref_491_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Pad</A></FONT> : <b>out</b> Character);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_490_14">Pad_Character</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
+-   <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Menu</A>;
+-                          <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
+-                          <FONT COLOR=red><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>   := 0;
+-                          Col   : <b>in</b> Column_Position := 0);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_500_14" HREF="terminal_interface-curses-menus__adb.htm#ref_688_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_688_27">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                          <FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0;
++                          <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>   := 0;
++                          <FONT COLOR=red><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Col</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Spacing);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_500_14">Set_Spacing</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
+-   <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Men</A></FONT>   : <b>in</b> Menu;
+-                      <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-                      <FONT COLOR=red><A NAME="ref_511_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                      Col   : <b>out</b> Column_Position);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_508_14" HREF="terminal_interface-curses-menus__adb.htm#ref_707_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_707_23">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                      <FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                      <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Row</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                      <FONT COLOR=red><A NAME="ref_511_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Col</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT>
+-   <b>pragma</b> Inline (Spacing);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_508_14">Spacing</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
+-   <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="ref_521_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Men</A></FONT>  : Menu;
+-                         Text : String) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses-menus__adb.htm#ref_732_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_520_26" HREF="terminal_interface-curses-menus__adb.htm#ref_732_26">Men</A></FONT>  : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_521_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Text</A></FONT> : String) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Return TRUE if the pattern matches, FALSE otherwise</EM></FONT>
+-   <b>pragma</b> Inline (Set_Pattern);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_520_13">Set_Pattern</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+-   <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="ref_528_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Men</A></FONT>  : <b>in</b>  Menu;
+-                      Text : <b>out</b> String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses-menus__adb.htm#ref_755_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_527_23" HREF="terminal_interface-curses-menus__adb.htm#ref_755_23">Men</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                      <FONT COLOR=red><A NAME="ref_528_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Text</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></FONT>
+-   <b>pragma</b> Inline (Pattern);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_527_14">Pattern</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
+-   <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+-                         <FONT COLOR=red><A NAME="ref_539_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                         Columns : <b>in</b> Column_Count);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_537_14" HREF="terminal_interface-curses-menus__adb.htm#ref_764_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_764_26">Men</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                         <FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Lines</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                         <FONT COLOR=red><A NAME="ref_539_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Columns</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  Not implemented: 0 argument for Lines or Columns;</EM></FONT>
+    <FONT COLOR=green><EM>--  instead use Format to get the current sizes</EM></FONT>
+    <FONT COLOR=green><EM>--      The  default  format  is  16  rows,  1  column.    Calling</EM></FONT>
+@@ -551,104 +550,104 @@
+    <FONT COLOR=green><EM>--      is  interpreted  as  a  request  not to change the current</EM></FONT>
+    <FONT COLOR=green><EM>--      value.</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Format);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_537_14">Set_Format</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
+-   <b>procedure</b> Format (<FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+-                     <FONT COLOR=red><A NAME="ref_553_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                     Columns : <b>out</b> Column_Count);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses-menus__adb.htm#ref_782_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_782_22">Men</A></FONT>     : <b>in</b>  <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                     <FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                     <FONT COLOR=red><A NAME="ref_553_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT>
+-   <b>pragma</b> Inline (Format);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_551_14">Format</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Menu_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Men : <b>in</b> Menu);
+-   <b>pragma</b> Convention (C, Menu_Hook_Function);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_561_9">Menu_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_561_49">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
+-   <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="ref_566_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
+-                                 Proc : <b>in</b> Menu_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_565_14" HREF="terminal_interface-curses-menus__adb.htm#ref_802_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-menus__adb.htm#ref_802_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                                 <FONT COLOR=red><A NAME="ref_566_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Item_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_565_14">Set_Item_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
+-   <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="ref_572_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
+-                                 Proc : <b>in</b> Menu_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_571_14" HREF="terminal_interface-curses-menus__adb.htm#ref_816_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_571_34" HREF="terminal_interface-curses-menus__adb.htm#ref_816_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                                 <FONT COLOR=red><A NAME="ref_572_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Item_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_571_14">Set_Item_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+-   <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="ref_578_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
+-                                 Proc : <b>in</b> Menu_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_577_14" HREF="terminal_interface-curses-menus__adb.htm#ref_830_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_577_34" HREF="terminal_interface-curses-menus__adb.htm#ref_830_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                                 <FONT COLOR=red><A NAME="ref_578_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Menu_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_577_14">Set_Menu_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
+-   <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="ref_584_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu</A>;
+-                                 Proc : <b>in</b> Menu_Hook_Function);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_583_14" HREF="terminal_interface-curses-menus__adb.htm#ref_844_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_583_34" HREF="terminal_interface-curses-menus__adb.htm#ref_844_34">Men</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                                 <FONT COLOR=red><A NAME="ref_584_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Menu_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_583_14">Set_Menu_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
+-   <b>function</b> Get_Item_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_589_13" HREF="terminal_interface-curses-menus__adb.htm#ref_858_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_589_33" HREF="terminal_interface-curses-menus__adb.htm#ref_858_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Item_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_589_13">Get_Item_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
+-   <b>function</b> Get_Item_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_594_13" HREF="terminal_interface-curses-menus__adb.htm#ref_866_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_594_33" HREF="terminal_interface-curses-menus__adb.htm#ref_866_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Item_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_594_13">Get_Item_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
+-   <b>function</b> Get_Menu_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_599_13" HREF="terminal_interface-curses-menus__adb.htm#ref_874_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_599_33" HREF="terminal_interface-curses-menus__adb.htm#ref_874_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Menu_Init_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_599_13">Get_Menu_Init_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
+-   <b>function</b> Get_Menu_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_604_13" HREF="terminal_interface-curses-menus__adb.htm#ref_882_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_604_33" HREF="terminal_interface-curses-menus__adb.htm#ref_882_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_561_9">Menu_Hook_Function</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Menu_Term_Hook);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_604_13">Get_Menu_Term_Hook</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
+-   <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Menu</A>;
+-                       Items : <b>in</b> Item_Array_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_613_14" HREF="terminal_interface-curses-menus__adb.htm#ref_890_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_613_24" HREF="terminal_interface-curses-menus__adb.htm#ref_890_24">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                       <FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT>
+-   <b>pragma</b> Inline (Redefine);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_14">Redefine</A>);
+ 
+-   <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="ref_619_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Menu</A>;
+-                        Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_618_14">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_618_25">Men</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                        <FONT COLOR=red><A NAME="ref_619_25">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_14">Redefine</A>;
+    <FONT COLOR=green><EM>--  pragma Inline (Set_Items);</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
+-   <b>function</b> Items (<FONT COLOR=red><A NAME="ref_624_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Men</A></FONT>   : Menu;
+-                   Index : Positive) <b>return</b> Item;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_623_13" HREF="terminal_interface-curses-menus__adb.htm#ref_918_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_623_20" HREF="terminal_interface-curses-menus__adb.htm#ref_918_20">Men</A></FONT>   : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                   <FONT COLOR=red><A NAME="ref_624_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT>
+-   <b>pragma</b> Inline (Items);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_623_13">Items</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
+-   <b>function</b> Item_Count (Men : Menu) <b>return</b> Natural;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_629_13" HREF="terminal_interface-curses-menus__adb.htm#ref_910_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_629_25" HREF="terminal_interface-curses-menus__adb.htm#ref_910_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT>
+-   <b>pragma</b> Inline (Item_Count);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_629_13">Item_Count</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
+-   <b>function</b> Create (Items : Item_Array_Access) <b>return</b> Menu;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_638_13" HREF="terminal_interface-curses-menus__adb.htm#ref_937_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-menus__adb.htm#ref_937_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
+ 
+-   <b>function</b> New_Menu (Items : Item_Array_Access) <b>return</b> Menu <b>renames</b> Create;
++   <b>function</b> New_Menu (<FONT COLOR=red><A NAME="ref_642_23">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_638_13">Create</A>;
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Men : <b>in</b> <b>out</b> Menu);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_645_14" HREF="terminal_interface-curses-menus__adb.htm#ref_956_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_645_22" HREF="terminal_interface-curses-menus__adb.htm#ref_956_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Reset Men to Null_Menu</EM></FONT>
+    <FONT COLOR=green><EM>--  Not inlined</EM></FONT>
+@@ -657,14 +656,14 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_655_27">Menu_Ok</A></FONT>,
+-                          <FONT COLOR=red><A NAME="ref_656_27">Request_Denied</A></FONT>,
+-                          <FONT COLOR=red><A NAME="ref_657_27">Unknown_Request</A></FONT>,
+-                          No_Match);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_654_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_654_27">Menu_Ok</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_655_27">Request_Denied</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_656_27">Unknown_Request</A></FONT>,
++                          <FONT COLOR=red><A NAME="ref_657_27">No_Match</A></FONT>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
+-   <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_661_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Menu</A>;
+-                    Key : Key_Code) <b>return</b> Driver_Result;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_660_13" HREF="terminal_interface-curses-menus__adb.htm#ref_970_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_660_21" HREF="terminal_interface-curses-menus__adb.htm#ref_970_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++                    <FONT COLOR=red><A NAME="ref_661_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_654_9">Driver_Result</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Driver is not inlined</EM></FONT>
+ 
+@@ -672,11 +671,11 @@
+    <FONT COLOR=green><EM>--  Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
+ <FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+ <b>private</b>
+-   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+-   <b>type</b> Menu   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++   <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>   <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ 
+-   <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Item</A> := 0;
+-   Null_Menu : <b>constant</b> Menu := 0;
++   <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := 0;
++   <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := 0;
+ 
+-<b>end</b> Terminal_Interface.Curses.Menus;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-mouse__adb.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__adb.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-mouse__adb.htm	2007-05-05 20:35:20.000000000 +0000
+@@ -60,7 +60,7 @@
+       <b>function</b> <FONT COLOR=red><A NAME="ref_55_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mouse_Avail, "_nc_has_mouse");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A> /= 0 <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A> /= 0 <b>then</b>
+          <b>return</b> True;
+       <b>else</b>
+          <b>return</b> False;
+@@ -123,7 +123,7 @@
+    <b>begin</b>
+       <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>'<b>Access</b>);
+       <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
++         <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
+       <b>end</b> <b>if</b>;
+       <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>;
+    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>;
+@@ -132,7 +132,7 @@
+    <b>is</b>
+    <b>begin</b>
+       <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
++         <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
+       <b>end</b> <b>if</b>;
+    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>;
+ 
+@@ -199,15 +199,15 @@
+       <b>end</b> <b>if</b>;
+    <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+                                 <FONT COLOR=red><A NAME="ref_198_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean
+    <b>is</b>
+       <b>function</b> <FONT COLOR=red><A NAME="ref_200_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_200_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_200_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_200_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+-                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++                         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Wenclose, "wenclose");
+    <b>begin</b>
+       <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>))
+-        = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++        = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+Index: doc/html/ada/terminal_interface-curses-mouse__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-mouse__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-mouse__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -51,8 +50,8 @@
+ <FONT COLOR=green><EM>--  |</EM></FONT>
+ <b>with</b> System;
+ 
+-<b>package</b> Terminal_Interface.Curses.Mouse <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Mouse);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_48_40">Mouse</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
+@@ -67,56 +66,56 @@
+    <FONT COLOR=green><EM>--  Not implemented:</EM></FONT>
+    <FONT COLOR=green><EM>--  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT>
+    <FONT COLOR=green><EM>--  or Start_Mouse)</EM></FONT>
+-   <b>type</b> Event_Mask <b>is</b> <b>private</b>;
+-   <FONT COLOR=red><A NAME="ref_66_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+-   All_Events : <b>constant</b> Event_Mask;
+-
+-   <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="ref_69_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+-                         <FONT COLOR=red><A NAME="ref_70_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+-                         <FONT COLOR=red><A NAME="ref_71_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+-                         <FONT COLOR=red><A NAME="ref_72_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+-                         <FONT COLOR=red><A NAME="ref_73_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+-                         <FONT COLOR=red><A NAME="ref_74_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
+-                         Alt);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
+-
+-   <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Left</A> .. Button4;
+-   <b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
+-
+-   <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="ref_80_26">Released</A></FONT>,
+-                         <FONT COLOR=red><A NAME="ref_81_26">Pressed</A></FONT>,
+-                         <FONT COLOR=red><A NAME="ref_82_26">Clicked</A></FONT>,
+-                         <FONT COLOR=red><A NAME="ref_83_26">Double_Clicked</A></FONT>,
+-                         Triple_Clicked);
+-
+-   <b>type</b> Button_States <b>is</b> <b>array</b> (Button_State) <b>of</b> Boolean;
+-   <b>pragma</b> Pack (Button_States);
+-
+-   All_Clicks : <b>constant</b> Button_States := (Clicked .. Triple_Clicked =&gt; True,
+-   <FONT COLOR=red><A NAME="ref_90_4"> </A></FONT>                     <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9"> </A>                 <b>others</b> =&gt; False);
+-   All_States : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_64_9">Event_Mask</A></FONT> <b>is</b> <b>private</b>;
++   <FONT COLOR=red><A NAME="ref_65_4">No_Events</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
++   <FONT COLOR=red><A NAME="ref_66_4">All_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Mouse_Button</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_68_26">Left</A></FONT>,     <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_69_26">Middle</A></FONT>,   <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_70_26">Right</A></FONT>,    <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_71_26">Button4</A></FONT>,  <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_72_26">Control</A></FONT>,  <FONT COLOR=green><EM>-- Control Key</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_73_26">Shift</A></FONT>,    <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
++                         <FONT COLOR=red><A NAME="ref_74_26">Alt</A></FONT>);     <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
++
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_76_12">Real_Buttons</A></FONT>  <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_26">Button4</A>;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Modifier_Keys</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_26">Alt</A>;
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_79_9">Button_State</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_79_26">Released</A></FONT>,
++                         <FONT COLOR=red><A NAME="ref_80_26">Pressed</A></FONT>,
++                         <FONT COLOR=red><A NAME="ref_81_26">Clicked</A></FONT>,
++                         <FONT COLOR=red><A NAME="ref_82_26">Double_Clicked</A></FONT>,
++                         <FONT COLOR=red><A NAME="ref_83_26">Triple_Clicked</A></FONT>);
++
++   <b>type</b> <FONT COLOR=red><A NAME="ref_85_9">Button_States</A></FONT> <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>) <b>of</b> Boolean;
++   <b>pragma</b> Pack (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>);
++
++   <FONT COLOR=red><A NAME="ref_88_4">All_Clicks</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A> := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_81_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_83_26">Triple_Clicked</A> =&gt; True,
++                                           <b>others</b> =&gt; False);
++   <FONT COLOR=red><A NAME="ref_90_4">All_States</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A> := (<b>others</b> =&gt; True);
+ 
+-   <b>type</b> Mouse_Event <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Mouse_Event</A></FONT> <b>is</b> <b>private</b>;
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <b>function</b> Has_Mouse <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_98_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_53_13">Has_Mouse</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  Return true if a mouse device is supported, false otherwise.</EM></FONT>
+ 
+-   <b>procedure</b> Register_Reportable_Event
+-     (<FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
+-      <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">State</A></FONT>  : <b>in</b> Button_State;
+-      Mask   : <b>in</b> <b>out</b> Event_Mask);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_101_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_80_14">Register_Reportable_Event</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_102_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_80_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
++      <FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>;
++      <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>);
+    <FONT COLOR=green><EM>--  Stores the event described by the button and the state in the mask.</EM></FONT>
+    <FONT COLOR=green><EM>--  Before you call this the first time, you should init the mask</EM></FONT>
+    <FONT COLOR=green><EM>--  with the Empty_Mask constant</EM></FONT>
+-   <b>pragma</b> Inline (Register_Reportable_Event);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A>);
+ 
+-   <b>procedure</b> Register_Reportable_Events
+-     (<FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Button</A>;
+-      <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">State</A></FONT>  : <b>in</b> Button_States;
+-      Mask   : <b>in</b> <b>out</b> Event_Mask);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_110_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_98_14">Register_Reportable_Events</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_111_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_98_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
++      <FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">State</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>;
++      <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">Mask</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>);
+    <FONT COLOR=green><EM>--  Register all events described by the Button and the State bitmap.</EM></FONT>
+    <FONT COLOR=green><EM>--  Before you call this the first time, you should init the mask</EM></FONT>
+    <FONT COLOR=green><EM>--  with the Empty_Mask constant</EM></FONT>
+@@ -126,62 +125,62 @@
+    <FONT COLOR=green><EM>--  old mask, that means the event mask value before this call.</EM></FONT>
+    <FONT COLOR=green><EM>--  Not Implemented: The library version</EM></FONT>
+    <FONT COLOR=green><EM>--  returns a Mouse_Mask that tells which events are reported.</EM></FONT>
+-   <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := All_Events)
+-                         <b>return</b> Event_Mask;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_123_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_123_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A>)
++                         <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
+-   <b>pragma</b> Inline (Start_Mouse);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>);
+ 
+-   <b>procedure</b> End_Mouse (Mask : <b>in</b> Event_Mask := No_Events);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_126_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_128_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_126_25">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>);
+    <FONT COLOR=green><EM>--  Terminates the mouse, restores the specified event mask</EM></FONT>
+-   <b>pragma</b> Inline (End_Mouse);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>function</b> Get_Mouse <b>return</b> Mouse_Event;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_133_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_65_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Mouse);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A>);
+ 
+-   <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Mouse_Event</A>;
+-                        <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                        <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Column_Position</A>;
+-                        <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
+-                        State  : <b>out</b> Button_State);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_137_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_137_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Event</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
++                        <FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Y</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                        <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">X</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                        <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
++                        <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">State</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>);
+    <FONT COLOR=green><EM>--  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
+    <FONT COLOR=green><EM>--  may not be identical to window coordinates.</EM></FONT>
+    <FONT COLOR=green><EM>--  Not Implemented: Get_Event only reports one event, the C library</EM></FONT>
+    <FONT COLOR=green><EM>--  version supports multiple events, e.g. {click-1, click-3}</EM></FONT>
+-   <b>pragma</b> Inline (Get_Event);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>procedure</b> Unget_Mouse (Event : <b>in</b> Mouse_Event);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_149_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_187_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_149_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_187_27">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></FONT>
+-   <b>pragma</b> Inline (Unget_Mouse);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+-   <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Win</A></FONT>    : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Window</A> := Standard_Window;
+-                                Event  : Mouse_Event) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_154_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_154_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_33">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                                <FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Event</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  But : use event instead of screen coordinates.</EM></FONT>
+-   <b>pragma</b> Inline (Enclosed_In_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+-   <b>function</b> Mouse_Interval (Msec : Natural := 200) <b>return</b> Natural;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_161_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_212_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_161_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_212_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
+-   <b>pragma</b> Inline (Mouse_Interval);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A>);
+ 
+ <b>private</b>
+-   <b>type</b> Event_Mask <b>is</b> <b>new</b> Interfaces.C.unsigned_long;
++   <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
+ 
+-   <b>type</b> Mouse_Event <b>is</b>
++   <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A> <b>is</b>
+       <b>record</b>
+-         Id      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
+-         <FONT COLOR=red><A NAME="ref_172_10"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_13"> </A></FONT>  <FONT COLOR=red><A NAME="ref_172_16"> </A></FONT>                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+-         X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
+-         <FONT COLOR=red><A NAME="ref_174_10"> </A></FONT>         <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9"> </A>             Integer (Interfaces.C.int'Last);
+-         Bstate  : Event_Mask;
++         <FONT COLOR=red><A NAME="ref_170_10">Id</A></FONT>      : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
++                                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
++         <FONT COLOR=red><A NAME="ref_172_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_172_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_172_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
++                                 Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last);
++         <FONT COLOR=red><A NAME="ref_174_10">Bstate</A></FONT>  : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Mouse_Event);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>);
+ 
+-   <b>for</b> Mouse_Event <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A> <b>use</b>
+       <b>record</b>
+          Id      <b>at</b> 0 <b>range</b>   0 ..  15;
+          X       <b>at</b> 0 <b>range</b>  32 ..  63;
+@@ -192,45 +191,45 @@
+       <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+ 
+-   Generation_Bit_Order : <b>constant</b> System.Bit_Order := System.Low_Order_First;
++   <FONT COLOR=red><A NAME="ref_189_4">Generation_Bit_Order</A></FONT> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
+    <FONT COLOR=green><EM>--  This constant may be different on your system.</EM></FONT>
+ 
+-   <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
+-   <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
+-   <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
+-   <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
+-   <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
+-   <FONT COLOR=red><A NAME="ref_198_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
+-   <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
+-   <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
+-   <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
+-   <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
+-   <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
+-   <FONT COLOR=red><A NAME="ref_204_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
+-   <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
+-   <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
+-   <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
+-   <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
+-   <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
+-   <FONT COLOR=red><A NAME="ref_210_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
+-   <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
+-   <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
+-   <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
+-   <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
+-   <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
+-   <FONT COLOR=red><A NAME="ref_216_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
+-   <FONT COLOR=red><A NAME="ref_217_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
+-   <FONT COLOR=red><A NAME="ref_218_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
+-   <FONT COLOR=red><A NAME="ref_219_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
+-   <FONT COLOR=red><A NAME="ref_220_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
+-   <FONT COLOR=red><A NAME="ref_221_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
+-   <FONT COLOR=red><A NAME="ref_222_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
+-   <FONT COLOR=red><A NAME="ref_223_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
+-   <FONT COLOR=red><A NAME="ref_224_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
+-   BUTTON4_EVENTS            : <b>constant</b> Event_Mask := 8#00077000000#;
++   <FONT COLOR=red><A NAME="ref_192_4">BUTTON1_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
++   <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
++   <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
++   <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
++   <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
++   <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
++   <FONT COLOR=red><A NAME="ref_198_4">BUTTON2_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
++   <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
++   <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
++   <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
++   <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
++   <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
++   <FONT COLOR=red><A NAME="ref_204_4">BUTTON3_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
++   <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
++   <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
++   <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
++   <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
++   <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
++   <FONT COLOR=red><A NAME="ref_210_4">BUTTON4_RELEASED</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
++   <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_PRESSED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
++   <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_CLICKED</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
++   <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_DOUBLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
++   <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_TRIPLE_CLICKED</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
++   <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_RESERVED_EVENT</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
++   <FONT COLOR=red><A NAME="ref_216_4">BUTTON_CTRL</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
++   <FONT COLOR=red><A NAME="ref_217_4">BUTTON_SHIFT</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
++   <FONT COLOR=red><A NAME="ref_218_4">BUTTON_ALT</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
++   <FONT COLOR=red><A NAME="ref_219_4">REPORT_MOUSE_POSITION</A></FONT>     : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
++   <FONT COLOR=red><A NAME="ref_220_4">ALL_MOUSE_EVENTS</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
++   <FONT COLOR=red><A NAME="ref_221_4">BUTTON1_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
++   <FONT COLOR=red><A NAME="ref_222_4">BUTTON2_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
++   <FONT COLOR=red><A NAME="ref_223_4">BUTTON3_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
++   <FONT COLOR=red><A NAME="ref_224_4">BUTTON4_EVENTS</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00077000000#;
+ 
+-   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">0</A>;
+-   All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
++   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>  : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 0;
++   <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">ALL_MOUSE_EVENTS</A>;
+ 
+-<b>end</b> Terminal_Interface.Curses.Mouse;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm	2006-09-23 20:31:31.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -46,31 +45,31 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>generic</b>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+-   <b>type</b> <A HREF="terminal_interface__ads.htm#ref_42_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">User</A>;
+-<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35"> </A><b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
+-                            Data : <b>in</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++                            <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_User_Data);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
+-                            Data : <b>out</b> User_Access);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++                            <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>function</b> Get_User_Data (Pan  : <b>in</b>  Panel) <b>return</b> User_Access;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Get_User_Data);
+ 
+-<b>end</b> Terminal_Interface.Curses.Panels.User_Data;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-panels__ads.htm	2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-panels__ads.htm	2007-09-01 23:56:31.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -47,108 +46,108 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <b>with</b> System;
+ 
+-<b>package</b> Terminal_Interface.Curses.Panels <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>);
+    <b>pragma</b> Linker_Options ("-lpanel");
+    <b>pragma</b> Linker_Options ("-lncurses");
+ 
+-   <b>type</b> Panel <b>is</b> <b>private</b>;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_49_9">Panel</A></FONT> <b>is</b> <b>private</b>;
+ 
+    <FONT COLOR=green><EM>---------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Interface constants  --</EM></FONT>
+    <FONT COLOR=green><EM>---------------------------</EM></FONT>
+-   Null_Panel : <b>constant</b> Panel;
++   <FONT COLOR=red><A NAME="ref_54_4">Null_Panel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+ 
+    <FONT COLOR=green><EM>-------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Exceptions   --</EM></FONT>
+    <FONT COLOR=green><EM>-------------------</EM></FONT>
+ 
+-   Panel_Exception : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_60_4">Panel_Exception</A></FONT> : <b>exception</b>;
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>function</b> Create (Win : Window) <b>return</b> Panel;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
+    <b>pragma</b> Inline (Create);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>function</b> New_Panel (Win : Window) <b>return</b> Panel <b>renames</b> Create;
++   <b>function</b> New_Panel (<FONT COLOR=red><A NAME="ref_72_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  pragma Inline (New_Panel);</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>procedure</b> Bottom (Pan : <b>in</b> Panel);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Bottom);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+-   <b>procedure</b> Top (Pan : <b>in</b> Panel);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Top);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+-   <b>procedure</b> Show (Pan : <b>in</b> Panel);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Show);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
+-   <b>procedure</b> Update_Panels;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14">Update_Panels</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT>
+    <b>pragma</b> Import (C, Update_Panels, "update_panels");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
+-   <b>procedure</b> Hide (Pan : <b>in</b> Panel);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Hide);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
+-   <b>function</b> Get_Window (Pan : Panel) <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
+-   <b>function</b> Panel_Window (Pan : Panel) <b>return</b> Window <b>renames</b> Get_Window;
++   <b>function</b> Panel_Window (<FONT COLOR=red><A NAME="ref_107_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
+    <FONT COLOR=green><EM>--  pragma Inline (Panel_Window);</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
+-   <b>procedure</b> Replace (<FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Panel</A>;
+-                      Win : <b>in</b> Window);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++                      <FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Replace);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
+-   <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Panel</A>;
+-                   <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                   Column : <b>in</b> Column_Position);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++                   <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT>
+-   <b>pragma</b> Inline (Move);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
+-   <b>function</b> Is_Hidden (Pan : Panel) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT>
+-   <b>pragma</b> Inline (Is_Hidden);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
+-   <b>function</b> Above (Pan : Panel) <b>return</b> Panel;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_129_13">Above</A></FONT> (<FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT>
+    <b>pragma</b> Import (C, Above, "panel_above");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
+-   <b>function</b> Below (Pan : Panel) <b>return</b> Panel;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_134_13">Below</A></FONT> (<FONT COLOR=red><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT>
+    <b>pragma</b> Import (C, Below, "panel_below");
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Pan : <b>in</b> <b>out</b> Panel);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT>
+    <b>pragma</b> Inline (Delete);
+ 
+ <b>private</b>
+-      <b>type</b> Panel <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+-      Null_Panel : <b>constant</b> Panel := 0;
++      <b>type</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++      <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> := 0;
+ 
+-<b>end</b> Terminal_Interface.Curses.Panels;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-terminfo__adb.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-terminfo__adb.htm	2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-terminfo__adb.htm	2007-05-05 20:35:20.000000000 +0000
+@@ -71,13 +71,13 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+    <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></FONT> : String) <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, tigetflag);
+       <FONT COLOR=red><A NAME="ref_71_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length);
+       <FONT COLOR=red><A NAME="ref_72_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+       To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
+          <b>return</b> True;
+       <b>else</b>
+          <b>return</b> False;
+Index: doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm	2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm	2007-05-05 20:35:20.000000000 +0000
+@@ -76,7 +76,7 @@
+             <b>end</b> <b>if</b>;
+ 
+             <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A>);
+-            <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
++            <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
+             <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
+                <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A> <b>then</b>
+                   <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_134_4">Layout_Error</A>;
+@@ -92,7 +92,7 @@
+                      <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_84_22">Filler</A>);
+                   <b>end</b>;
+                <b>end</b> <b>if</b>;
+-               <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
++               <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
+                <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
+                   <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>);
+                <b>end</b> <b>if</b>;
+Index: doc/html/ada/terminal_interface-curses-text_io__adb.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-text_io__adb.htm	2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-text_io__adb.htm	2007-05-05 20:35:20.000000000 +0000
+@@ -58,7 +58,7 @@
+    <b>is</b>
+    <b>begin</b>
+       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
++         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
+       <b>else</b>
+          <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A>;
+       <b>end</b> <b>if</b>;
+@@ -68,7 +68,7 @@
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
+    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A>;
+ 
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></FONT>
+@@ -91,7 +91,7 @@
+       <FONT COLOR=red><A NAME="ref_86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+       <FONT COLOR=red><A NAME="ref_87_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+       <FONT COLOR=green><EM>--  if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></FONT>
+       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
+       <FONT COLOR=green><EM>--  end if;</EM></FONT>
+@@ -109,10 +109,10 @@
+       <FONT COLOR=red><A NAME="ref_104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+       <FONT COLOR=red><A NAME="ref_105_7">N_Cols</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
+          <b>return</b> 0;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
+          <FONT COLOR=green><EM>--  if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></FONT>
+          <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
+          <FONT COLOR=green><EM>--  end if;</EM></FONT>
+@@ -141,7 +141,7 @@
+          <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> <b>then</b>
+             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
+          <b>else</b>
+-            <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
++            <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
+          <b>end</b> <b>if</b>;
+       <b>end</b> <b>loop</b>;
+    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>;
+@@ -155,7 +155,7 @@
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
+    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A>;
+ 
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></FONT>
+@@ -175,7 +175,7 @@
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+ 
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1;
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
+       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
+@@ -209,7 +209,7 @@
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+ 
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>  := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> - 1;
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>);
+       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> <b>then</b>
+@@ -233,7 +233,7 @@
+       <FONT COLOR=red><A NAME="ref_228_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+       <FONT COLOR=red><A NAME="ref_229_7">N</A></FONT> : Natural;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> + 1;
+       <FONT COLOR=green><EM>--  if N &gt; Natural (Count'Last) then</EM></FONT>
+       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
+@@ -253,7 +253,7 @@
+       <FONT COLOR=red><A NAME="ref_248_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+       <FONT COLOR=red><A NAME="ref_249_7">N</A></FONT> : Natural;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
+       <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> + 1;
+       <FONT COLOR=green><EM>--  if N &gt; Natural (Count'Last) then</EM></FONT>
+       <FONT COLOR=green><EM>--     raise Layout_Error;</EM></FONT>
+@@ -280,13 +280,13 @@
+       <FONT COLOR=red><A NAME="ref_275_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+    <b>begin</b>
+       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_271_7">P_Size</A> &gt; 0 <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
+          <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A> <b>then</b>
+             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
+          <b>end</b> <b>if</b>;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A>);
+    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>;
+ 
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_287_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_287_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : <b>in</b> Character)
+@@ -308,13 +308,13 @@
+       <FONT COLOR=red><A NAME="ref_303_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+    <b>begin</b>
+       <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_299_7">P_Size</A> &gt; 0 <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
+          <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A> <b>then</b>
+             <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
+          <b>end</b> <b>if</b>;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>);
+    <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>;
+ 
+    <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_315_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : <b>in</b> String)
+Index: doc/html/ada/terminal_interface-curses-trace__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses-trace__ads.htm	2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses-trace__ads.htm	2007-09-01 23:56:32.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -45,28 +44,28 @@
+ <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+-<b>package</b> Terminal_Interface.Curses.Trace <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Trace);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>);
+ 
+    <b>pragma</b> Warnings (Off);
+-   <b>type</b> Trace_Attribute_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Trace_Attribute_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_49_10">Times</A></FONT>            : Boolean;
+-         <FONT COLOR=red><A NAME="ref_50_10">Tputs</A></FONT>            : Boolean;
+-         <FONT COLOR=red><A NAME="ref_51_10">Update</A></FONT>           : Boolean;
+-         <FONT COLOR=red><A NAME="ref_52_10">Cursor_Move</A></FONT>      : Boolean;
+-         <FONT COLOR=red><A NAME="ref_53_10">Character_Output</A></FONT> : Boolean;
+-         <FONT COLOR=red><A NAME="ref_54_10">Calls</A></FONT>            : Boolean;
+-         <FONT COLOR=red><A NAME="ref_55_10">Virtual_Puts</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_56_10">Input_Events</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_57_10">TTY_State</A></FONT>        : Boolean;
+-         <FONT COLOR=red><A NAME="ref_58_10">Internal_Calls</A></FONT>   : Boolean;
+-         <FONT COLOR=red><A NAME="ref_59_10">Character_Calls</A></FONT>  : Boolean;
+-         Termcap_TermInfo : Boolean;
++         <FONT COLOR=red><A NAME="ref_48_10">Times</A></FONT>            : Boolean;
++         <FONT COLOR=red><A NAME="ref_49_10">Tputs</A></FONT>            : Boolean;
++         <FONT COLOR=red><A NAME="ref_50_10">Update</A></FONT>           : Boolean;
++         <FONT COLOR=red><A NAME="ref_51_10">Cursor_Move</A></FONT>      : Boolean;
++         <FONT COLOR=red><A NAME="ref_52_10">Character_Output</A></FONT> : Boolean;
++         <FONT COLOR=red><A NAME="ref_53_10">Calls</A></FONT>            : Boolean;
++         <FONT COLOR=red><A NAME="ref_54_10">Virtual_Puts</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_55_10">Input_Events</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_56_10">TTY_State</A></FONT>        : Boolean;
++         <FONT COLOR=red><A NAME="ref_57_10">Internal_Calls</A></FONT>   : Boolean;
++         <FONT COLOR=red><A NAME="ref_58_10">Character_Calls</A></FONT>  : Boolean;
++         <FONT COLOR=red><A NAME="ref_59_10">Termcap_TermInfo</A></FONT> : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Trace_Attribute_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+ 
+-   <b>for</b> Trace_Attribute_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> <b>use</b>
+       <b>record</b>
+          Times            <b>at</b> 0 <b>range</b>  0 ..  0;
+          Tputs            <b>at</b> 0 <b>range</b>  1 ..  1;
+@@ -81,22 +80,22 @@
+          Character_Calls  <b>at</b> 0 <b>range</b> 10 .. 10;
+          Termcap_TermInfo <b>at</b> 0 <b>range</b> 11 .. 11;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Trace_Attribute_Set'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> 32;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+ 
+    <b>pragma</b> Warnings (On);
+ 
+-   Trace_Disable  : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; False);
++   <FONT COLOR=red><A NAME="ref_84_4">Trace_Disable</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False);
+ 
+-   Trace_Ordinary : <b>constant</b> Trace_Attribute_Set :=
+-     (<A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Times</A>            =&gt; True,
+-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Tputs</A>            =&gt; True,
+-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Update</A>           =&gt; True,
+-      <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Cursor_Move</A>      =&gt; True,
+-      Character_Output =&gt; True,
+-   <FONT COLOR=red><A NAME="ref_93_4"> </A></FONT>  <b>others</b>           =&gt; False);
+-   Trace_Maximum : <b>constant</b> Trace_Attribute_Set := (<b>others</b> =&gt; True);
++   <FONT COLOR=red><A NAME="ref_86_4">Trace_Ordinary</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> :=
++     (<A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A>            =&gt; True,
++      <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A>            =&gt; True,
++      <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A>           =&gt; True,
++      <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A>      =&gt; True,
++      <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> =&gt; True,
++      <b>others</b>           =&gt; False);
++   <FONT COLOR=red><A NAME="ref_93_4">Trace_Maximum</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True);
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+@@ -105,15 +104,15 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>procedure</b> Trace_On (x : Trace_Attribute_Set);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_102_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_102_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+    <FONT COLOR=green><EM>--  The debugging library has trace.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Trace_Put (str : String);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></FONT> : String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT>
+ 
+-   Current_Trace_Setting : Trace_Attribute_Set;
+-   <b>pragma</b> Import (C, Current_Trace_Setting, "_nc_tracing");
++   <FONT COLOR=red><A NAME="ref_109_4">Current_Trace_Setting</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>;
++   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_109_4">Current_Trace_Setting</A>, "_nc_tracing");
+ 
+-<b>end</b> Terminal_Interface.Curses.Trace;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses__adb.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses__adb.htm	2006-09-23 20:31:33.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses__adb.htm	2007-05-05 20:35:21.000000000 +0000
+@@ -12,7 +12,7 @@
+ <FONT COLOR=green><EM>--                                 B O D Y                                  --</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --</EM></FONT>
++<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+ <FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+@@ -40,8 +40,8 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--  Author: Juergen Pfeifer, 1996</EM></FONT>
+ <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>--  @Revision: 1.34 @</EM></FONT>
+-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Revision: 1.4 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:09:10 @</EM></FONT>
+ <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <b>with</b> System;
+@@ -49,2522 +49,2512 @@
+ <b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+ <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;                  <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+ <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;          <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
+ <b>with</b> Ada.Characters.Handling;       <b>use</b> Ada.Characters.Handling;
+ <b>with</b> Ada.Strings.Fixed;
+-<b>with</b> Ada.Unchecked_Conversion;
+ 
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_52_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
+ 
+    <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+    <b>use</b> <b>type</b> System.Bit_Order;
+ 
+-   <b>package</b> <FONT COLOR=red><A NAME="ref_57_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
++   <b>package</b> <FONT COLOR=red><A NAME="ref_55_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
+ 
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_59_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
++   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
+       <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+-   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>);
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>generic</b>
+-      <b>type</b> <FONT COLOR=red><A NAME="ref_65_12">Element</A></FONT> <b>is</b> (&lt;&gt;);
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_66_13" HREF="terminal_interface-curses__adb.htm#ref_69_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_66_28" HREF="terminal_interface-curses__adb.htm#ref_69_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_67_28" HREF="terminal_interface-curses__adb.htm#ref_70_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
+-
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_70_28" HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A> <b>is</b>
+-      <b>type</b> <FONT COLOR=red><A NAME="ref_71_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
+-      <b>package</b> C_E_Array <b>is</b> <b>new</b>
+-        <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#ref_71_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>'Val (0));
+-      <b>use</b> C_E_Array;
+-
+-      <b>function</b> To_Pointer <b>is</b> <b>new</b>
+-        Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>, Pointer);
+-
+-      P : Pointer := To_Pointer (<A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A>);
+-   <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>else</b>
+-         P := P + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A>);
+-         <b>return</b> P.<b>all</b>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A>;
+-
+-   <b>function</b> W_Get_Int   <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+-   <b>function</b> W_Get_Short <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>);
+-   <b>function</b> W_Get_Byte  <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_char);
+-
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_93_13" HREF="terminal_interface-curses__adb.htm#ref_96_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses__adb.htm#ref_96_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                      <FONT COLOR=red><A NAME="ref_94_23" HREF="terminal_interface-curses__adb.htm#ref_97_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
+-
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_96_23" HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                      <FONT COLOR=red><A NAME="ref_97_23" HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A></FONT> : Natural) <b>return</b> Boolean
+-   <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_99_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-   <b>begin</b>
+-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Sizeof_bool</A> <b>is</b>
+-         <b>when</b> 1 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Byte  (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+-         <b>when</b> 2 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+-         <b>when</b> 4 =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Int   (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+-         <b>when</b> <b>others</b> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>case</b>;
+-
+-      <b>case</b> <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> <b>is</b>
+-         <b>when</b> 0       =&gt; <b>return</b> False;
+-         <b>when</b> <b>others</b>  =&gt; <b>return</b> True;
+-      <b>end</b> <b>case</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A>;
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_115_13" HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_115_23" HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_117_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_117_25" HREF="terminal_interface-curses__adb.htm#ref_117_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Keyname, "keyname");
+ 
+-      <FONT COLOR=red><A NAME="ref_120_7">Ch</A></FONT> : Character;
++      <FONT COLOR=red><A NAME="ref_67_7">Ch</A></FONT> : Character;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>);
+-         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
+-            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>,
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A>);
++         <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
++            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>,
+                                                      <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                                      <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+-         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
++         <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
+             <b>declare</b>
+-               <FONT COLOR=red><A NAME="ref_130_16">S</A></FONT> : String (1 .. 1);
++               <FONT COLOR=red><A NAME="ref_77_16">S</A></FONT> : String (1 .. 1);
+             <b>begin</b>
+-               <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>;
+-               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A>;
++               <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>;
++               <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A>;
+             <b>end</b>;
+          <b>else</b>
+             <b>return</b> "";
+          <b>end</b> <b>if</b>;
+       <b>else</b>
+-         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_117_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>)));
++         <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_23">Key</A>)));
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_143_14" HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_143_24" HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+-                       <FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A></FONT> : <b>out</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1610_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1610_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
++                       <FONT COLOR=red><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1611_24">Name</A></FONT> : <b>out</b> String)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_57_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1616_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1610_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1611_24">Name</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_14">Key_Name</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_153_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_100_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Initscr, "initscr");
+ 
+-      <FONT COLOR=red><A NAME="ref_156_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_103_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_153_16">Initscr</A>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_100_16">Initscr</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_164_14" HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_166_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Endwin, "endwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_166_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_174_13" HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A></FONT> <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A></FONT> <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_123_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Isendwin, "isendwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_186_14" HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_186_27" HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                          <FONT COLOR=red><A NAME="ref_188_27" HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_190_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                      <FONT COLOR=red><A NAME="ref_191_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                      <FONT COLOR=red><A NAME="ref_192_23" HREF="terminal_interface-curses__adb.htm#ref_190_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_511_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                          <FONT COLOR=red><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_512_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                          <FONT COLOR=red><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_513_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_137_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                      <FONT COLOR=red><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                      <FONT COLOR=red><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
+                      ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wmove, "wmove");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_511_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_512_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_513_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_201_14" HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_201_19" HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                  <FONT COLOR=red><A NAME="ref_202_19" HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_524_19">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_204_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_204_24" HREF="terminal_interface-curses__adb.htm#ref_204_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_205_24" HREF="terminal_interface-curses__adb.htm#ref_204_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                       <FONT COLOR=red><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Waddch, "waddch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_523_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_524_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_213_14" HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_213_19" HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                  <FONT COLOR=red><A NAME="ref_214_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A></FONT>  : <b>in</b> Character)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_528_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_529_19">Ch</A></FONT>  : <b>in</b> Character)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A>,
+-           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A>,
++      <A HREF="terminal_interface-curses__ads.htm#ref_523_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_528_19">Win</A>,
++           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_529_19">Ch</A>,
+                                  <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                  <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_223_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_224_7" HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_225_7" HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_229_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_229_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_230_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_231_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_232_26" HREF="terminal_interface-curses__adb.htm#ref_229_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_535_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_536_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, mvwaddch, "mvwaddch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A>),
+-                   AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_535_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_536_7">Line</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Column</A>),
++                   AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_538_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_243_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_244_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_245_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_246_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT>     : <b>in</b> Character)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_189_14" HREF="terminal_interface-curses__ads.htm#ref_542_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_190_7" HREF="terminal_interface-curses__ads.htm#ref_543_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_544_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_545_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Ch</A></FONT>     : <b>in</b> Character)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>,
+-           <A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>,
+-           <A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>,
+-           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>,
++      <A HREF="terminal_interface-curses__ads.htm#ref_534_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_543_7">Win</A>,
++           <A HREF="terminal_interface-curses__ads.htm#ref_544_7">Line</A>,
++           <A HREF="terminal_interface-curses__ads.htm#ref_545_7">Column</A>,
++           <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_546_7">Ch</A>,
+                                  <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                  <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_542_14">Add</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_257_14" HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_258_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_259_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_204_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_205_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_261_27" HREF="terminal_interface-curses__adb.htm#ref_261_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_262_27" HREF="terminal_interface-curses__adb.htm#ref_261_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_208_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_208_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">W</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                          <FONT COLOR=red><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wechochar, "wechochar");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_208_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_271_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_272_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT>  : <b>in</b> Character)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_217_14" HREF="terminal_interface-curses__ads.htm#ref_557_14">Add_With_Immediate_Echo</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_218_7" HREF="terminal_interface-curses__ads.htm#ref_558_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_559_7">Ch</A></FONT>  : <b>in</b> Character)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>
+-        (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>,
+-         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>,
++      <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>
++        (<A HREF="terminal_interface-curses__ads.htm#ref_558_7">Win</A>,
++         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_559_7">Ch</A>,
+                                <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_557_14">Add_With_Immediate_Echo</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_282_13" HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_282_21" HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-                    <FONT COLOR=red><A NAME="ref_283_21" HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+-                    <FONT COLOR=red><A NAME="ref_284_21" HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                    <FONT COLOR=red><A NAME="ref_285_21" HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_287_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                       <FONT COLOR=red><A NAME="ref_288_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                       <FONT COLOR=red><A NAME="ref_289_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                       <FONT COLOR=red><A NAME="ref_290_24" HREF="terminal_interface-curses__adb.htm#ref_287_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_229_13" HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_229_21" HREF="terminal_interface-curses__ads.htm#ref_570_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++                    <FONT COLOR=red><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_572_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                    <FONT COLOR=red><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_234_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                       <FONT COLOR=red><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                       <FONT COLOR=red><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                       <FONT COLOR=red><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Newwin, "newwin");
+ 
+-      <FONT COLOR=red><A NAME="ref_293_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_240_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_287_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_234_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_570_7">Number_Of_Lines</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_571_7">Number_Of_Columns</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_572_7">First_Line_Position</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_573_7">First_Column_Position</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_305_14" HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_252_14" HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_252_22" HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_307_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_307_25" HREF="terminal_interface-curses__adb.htm#ref_307_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_254_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_254_25" HREF="terminal_interface-curses__adb.htm#ref_254_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wdelwin, "delwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_254_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_588_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_316_13" HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_317_7" HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_318_7" HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_319_7" HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_320_7" HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_321_7" HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_323_16">Subwin</A></FONT>
+-        (<FONT COLOR=red><A NAME="ref_324_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-         <FONT COLOR=red><A NAME="ref_325_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_326_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_327_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_328_10" HREF="terminal_interface-curses__adb.htm#ref_323_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_263_13" HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses__ads.htm#ref_595_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_596_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_598_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Subwin</A></FONT>
++        (<FONT COLOR=red><A NAME="ref_271_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++         <FONT COLOR=red><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Subwin, "subwin");
+ 
+-      <FONT COLOR=red><A NAME="ref_331_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_278_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A>,
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A>;
+-
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_344_13" HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_345_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_346_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_347_7" HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_348_7" HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_349_7" HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_351_16">Derwin</A></FONT>
+-        (<FONT COLOR=red><A NAME="ref_352_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-         <FONT COLOR=red><A NAME="ref_353_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_354_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_355_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_356_10" HREF="terminal_interface-curses__adb.htm#ref_351_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_270_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_595_7">Win</A>,
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_596_7">Number_Of_Lines</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_597_7">Number_Of_Columns</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_598_7">First_Line_Position</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">First_Column_Position</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
++      <b>end</b> <b>if</b>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A>;
++
++   <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_292_7" HREF="terminal_interface-curses__ads.htm#ref_605_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_606_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_608_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_298_16">Derwin</A></FONT>
++        (<FONT COLOR=red><A NAME="ref_299_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++         <FONT COLOR=red><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Derwin, "derwin");
+ 
+-      <FONT COLOR=red><A NAME="ref_359_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_306_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A>,
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_298_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_605_7">Win</A>,
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_606_7">Number_Of_Lines</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_607_7">Number_Of_Columns</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_7">First_Line_Position</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_609_7">First_Column_Position</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_372_24" HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_319_13" HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_319_24" HREF="terminal_interface-curses__ads.htm#ref_614_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_374_24" HREF="terminal_interface-curses__adb.htm#ref_374_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_321_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses__adb.htm#ref_321_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Dupwin, "dupwin");
+ 
+-      <FONT COLOR=red><A NAME="ref_377_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_374_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A>);
++      <FONT COLOR=red><A NAME="ref_324_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_321_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_614_24">Win</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_385_14" HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_385_27" HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_386_27" HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                          <FONT COLOR=red><A NAME="ref_387_27" HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_332_14" HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_332_27" HREF="terminal_interface-curses__ads.htm#ref_619_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                          <FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_620_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                          <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_621_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_389_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_389_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                      <FONT COLOR=red><A NAME="ref_390_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                      <FONT COLOR=red><A NAME="ref_391_23" HREF="terminal_interface-curses__adb.htm#ref_389_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_336_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_336_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                      <FONT COLOR=red><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                      <FONT COLOR=red><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mvwin, "mvwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_336_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_619_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_399_35" HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                                  <FONT COLOR=red><A NAME="ref_400_35" HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                                  <FONT COLOR=red><A NAME="ref_401_35" HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_346_14" HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_346_35" HREF="terminal_interface-curses__ads.htm#ref_626_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                                  <FONT COLOR=red><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_627_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                                  <FONT COLOR=red><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_628_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_403_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_403_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_404_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_405_26" HREF="terminal_interface-curses__adb.htm#ref_403_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_350_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_350_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mvderwin, "mvderwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_350_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_626_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_627_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_628_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_413_30" HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                             <FONT COLOR=red><A NAME="ref_414_30" HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A></FONT> : <b>in</b> Boolean := False)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_360_14" HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_360_30" HREF="terminal_interface-curses__ads.htm#ref_643_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                             <FONT COLOR=red><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_644_30">Mode</A></FONT> : <b>in</b> Boolean := False)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_416_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_416_24" HREF="terminal_interface-curses__adb.htm#ref_416_16">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_417_24" HREF="terminal_interface-curses__adb.htm#ref_416_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_363_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_363_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                       <FONT COLOR=red><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Syncok, "syncok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_363_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_643_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_644_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_425_19" HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                  <FONT COLOR=red><A NAME="ref_426_19" HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A></FONT> : <b>in</b> String;
+-                  <FONT COLOR=red><A NAME="ref_427_19" HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A></FONT> : <b>in</b> Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_372_19" HREF="terminal_interface-curses__ads.htm#ref_653_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A></FONT> : <b>in</b> String;
++                  <FONT COLOR=red><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_655_19">Len</A></FONT> : <b>in</b> Integer := -1)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_429_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_429_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Str</A></FONT> : char_array;
+-                         <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses__adb.htm#ref_429_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_376_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Str</A></FONT> : char_array;
++                         <FONT COLOR=red><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Waddnstr, "waddnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_434_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_435_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_381_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_382_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_435_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_654_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_376_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_653_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_655_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A></FONT>    : <b>in</b> String;
+-      <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A></FONT>    : <b>in</b> Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_390_14" HREF="terminal_interface-curses__ads.htm#ref_662_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_391_7" HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_663_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_664_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_665_19">Str</A></FONT>    : <b>in</b> String;
++      <FONT COLOR=red><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_666_19">Len</A></FONT>    : <b>in</b> Integer := -1)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_663_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_664_19">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_653_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_662_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_665_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_666_19">Len</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_662_14">Add</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_456_7" HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_457_7" HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+-      <FONT COLOR=red><A NAME="ref_458_7" HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A></FONT> : <b>in</b> Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_402_14" HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_403_7" HREF="terminal_interface-curses__ads.htm#ref_677_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++      <FONT COLOR=red><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_679_19">Len</A></FONT> : <b>in</b> Integer := -1)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_460_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_460_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_461_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;
+-                           <FONT COLOR=red><A NAME="ref_462_28" HREF="terminal_interface-curses__adb.htm#ref_460_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_407_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_407_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                           <FONT COLOR=red><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>;
++                           <FONT COLOR=red><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Waddchnstr, "waddchnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_465_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_412_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length);
+    <b>begin</b>
+-      <b>for</b> <FONT COLOR=red><A NAME="ref_467_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) <b>loop</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A>));
++      <b>for</b> <FONT COLOR=red><A NAME="ref_414_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length) <b>loop</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A>));
+       <b>end</b> <b>loop</b>;
+-      <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A>,
+-                     <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A>,
+-                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A>;
+-
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_480_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+-      <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A></FONT>    : <b>in</b> Integer := -1)
+-   <b>is</b>
+-   <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_491_7" HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_492_7" HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_493_7" HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_494_7" HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_495_7" HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_496_7" HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_497_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_498_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_499_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_501_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_501_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_502_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_503_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_504_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_505_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_506_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_507_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_508_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                        <FONT COLOR=red><A NAME="ref_509_25" HREF="terminal_interface-curses__adb.htm#ref_501_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_678_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_407_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_677_19">Win</A>,
++                     <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A>,
++                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
++      <b>end</b> <b>if</b>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A>;
++
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_686_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses__ads.htm#ref_687_19">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_688_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_689_19">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++      <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_690_19">Len</A></FONT>    : <b>in</b> Integer := -1)
++   <b>is</b>
++   <b>begin</b>
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_687_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_688_19">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_677_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_686_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_689_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_690_19">Len</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_686_14">Add</A>;
++<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_437_14" HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_438_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_439_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_710_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_712_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_448_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_449_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">RS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">TS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">BS</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                        <FONT COLOR=red><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wborder, "wborder");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A>,
+-                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A>),
+-                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A>)
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_448_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A>,
++                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Left_Side_Symbol</A>),
++                  AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Right_Side_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Top_Side_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_709_7">Bottom_Side_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_710_7">Upper_Left_Corner_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_711_7">Upper_Right_Corner_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_712_7">Lower_Left_Corner_Symbol</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Lower_Right_Corner_Symbol</A>)
+                   ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A>
+       <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_528_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_529_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+-   <b>is</b>
+-   <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A>,
+-              <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>,
+-              <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A>;
+-
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+-      <FONT COLOR=red><A NAME="ref_541_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_543_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_543_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_544_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                       <FONT COLOR=red><A NAME="ref_545_24" HREF="terminal_interface-curses__adb.htm#ref_543_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_475_7" HREF="terminal_interface-curses__ads.htm#ref_721_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
++   <b>is</b>
++   <b>begin</b>
++      <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_721_7">Win</A>,
++              <A HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_722_7">Vertical_Symbol</A>,
++              <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Horizontal_Symbol</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A>;
++
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_485_14" HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_486_7" HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_730_7">Line_Size</A></FONT>   : <b>in</b> Natural;
++      <FONT COLOR=red><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_490_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                       <FONT COLOR=red><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                       <FONT COLOR=red><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Whline, "whline");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>,
+-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A>),
+-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_490_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A>,
++                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_731_7">Line_Symbol</A>),
++                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_730_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_556_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_557_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A></FONT>   : <b>in</b> Natural;
+-      <FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_502_14" HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_503_7" HREF="terminal_interface-curses__ads.htm#ref_738_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_504_7" HREF="terminal_interface-curses__ads.htm#ref_739_7">Line_Size</A></FONT>   : <b>in</b> Natural;
++      <FONT COLOR=red><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_560_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_560_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_561_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+-                       <FONT COLOR=red><A NAME="ref_562_24" HREF="terminal_interface-curses__adb.htm#ref_560_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_507_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">W</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                       <FONT COLOR=red><A NAME="ref_508_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++                       <FONT COLOR=red><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wvline, "wvline");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A>,
+-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A>),
+-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_507_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_738_7">Win</A>,
++                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Line_Symbol</A>),
++                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_739_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_573_13" HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_573_28" HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_520_28" HREF="terminal_interface-curses__ads.htm#ref_751_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_576_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_576_24" HREF="terminal_interface-curses__adb.htm#ref_576_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_523_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_523_24" HREF="terminal_interface-curses__adb.htm#ref_523_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wgetch, "wgetch");
+ 
+-      <FONT COLOR=red><A NAME="ref_579_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_576_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A>);
++      <FONT COLOR=red><A NAME="ref_526_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_523_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_751_28">Win</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>;
+       <b>else</b>
+-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A>);
++         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A>);
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_588_30" HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_535_14" HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_535_30" HREF="terminal_interface-curses__ads.htm#ref_762_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_590_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_590_25" HREF="terminal_interface-curses__adb.htm#ref_590_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_537_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_537_25" HREF="terminal_interface-curses__adb.htm#ref_537_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Ungetch, "ungetch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_590_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_537_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_762_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_598_22" HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_545_13" HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_545_22" HREF="terminal_interface-curses__ads.htm#ref_767_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_600_24" HREF="terminal_interface-curses__adb.htm#ref_600_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_547_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_547_24" HREF="terminal_interface-curses__adb.htm#ref_547_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Haskey, "has_key");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_600_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_547_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_767_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_610_13" HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_557_13" HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_557_30" HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_612_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
+-        Natural (<A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>'Last));
++      <FONT COLOR=red><A NAME="ref_559_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
++        Natural (<A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>'Last));
+    <b>begin</b>
+-      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_612_7">L</A>) <b>then</b>
++      <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_774_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_559_7">L</A>) <b>then</b>
+          <b>return</b> True;
+       <b>else</b>
+          <b>return</b> False;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_622_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+-                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
++                          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>
+    <b>is</b>
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A>) <b>then</b>
+-         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A>) <b>then</b>
++         <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_781_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
+       <b>else</b>
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_633_32" HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_580_13" HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_580_32" HREF="terminal_interface-curses__ads.htm#ref_786_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
+    <b>is</b>
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_786_32">Key</A>));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_639_14" HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_639_24" HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_640_24" HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A></FONT>  : Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_586_24" HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                       <FONT COLOR=red><A NAME="ref_587_24" HREF="terminal_interface-curses__ads.htm#ref_801_24">On</A></FONT>  : Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_642_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_642_27" HREF="terminal_interface-curses__adb.htm#ref_642_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_589_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_589_27" HREF="terminal_interface-curses__adb.htm#ref_589_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, wstandout, "wstandout");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_644_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27" HREF="terminal_interface-curses__adb.htm#ref_644_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_591_27" HREF="terminal_interface-curses__adb.htm#ref_591_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, wstandend, "wstandend");
+ 
+-      <FONT COLOR=red><A NAME="ref_647_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_594_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_801_24">On</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_589_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A>);
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
++         <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_591_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_800_24">Win</A>);
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Standout</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_659_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_660_7" HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_661_7" HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+-      <FONT COLOR=red><A NAME="ref_662_7" HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A></FONT>   : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_606_14" HREF="terminal_interface-curses__ads.htm#ref_806_14">Switch_Character_Attribute</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__ads.htm#ref_808_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__ads.htm#ref_809_7">On</A></FONT>   : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_664_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_664_25" HREF="terminal_interface-curses__adb.htm#ref_664_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_665_25" HREF="terminal_interface-curses__adb.htm#ref_664_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_611_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_611_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_612_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wattron, "wattr_on");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26" HREF="terminal_interface-curses__adb.htm#ref_667_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_668_26" HREF="terminal_interface-curses__adb.htm#ref_667_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_614_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wattroff, "wattr_off");
+       <FONT COLOR=green><EM>--  In Ada we use the On Boolean to control whether or not we want to</EM></FONT>
+       <FONT COLOR=green><EM>--  switch on or off the attributes in the set.</EM></FONT>
+-      <FONT COLOR=red><A NAME="ref_672_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <FONT COLOR=red><A NAME="ref_673_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
++      <FONT COLOR=red><A NAME="ref_619_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_620_7">AC</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+                                               <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+-                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A>);
++                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_808_7">Attr</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_809_7">On</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_611_16">Wattron</A>  (<A HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
++         <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_807_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_806_14">Switch_Character_Attribute</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_688_7" HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_689_7" HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+-      <FONT COLOR=red><A NAME="ref_690_7" HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_635_7" HREF="terminal_interface-curses__ads.htm#ref_818_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_636_7" HREF="terminal_interface-curses__ads.htm#ref_819_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_637_7" HREF="terminal_interface-curses__ads.htm#ref_820_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_692_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_692_26" HREF="terminal_interface-curses__adb.htm#ref_692_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_693_26" HREF="terminal_interface-curses__adb.htm#ref_692_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_639_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_639_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_640_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wattrset, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A>,
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_639_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_818_7">Win</A>,
+                    AttrChar_To_AttrType (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'
+                                          (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+-                                          <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A>,
+-                                          <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++                                          <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_820_7">Color</A>,
++                                          <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_819_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_705_13" HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_705_38" HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_652_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_652_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                                      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_708_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_708_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_709_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+-                         <FONT COLOR=red><A NAME="ref_710_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                         <FONT COLOR=red><A NAME="ref_711_26" HREF="terminal_interface-curses__adb.htm#ref_708_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_655_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_655_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_656_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
++                         <FONT COLOR=red><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                         <FONT COLOR=red><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wattrget, "wattr_get");
+ 
+-      <FONT COLOR=red><A NAME="ref_714_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+-      <FONT COLOR=red><A NAME="ref_715_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-      <FONT COLOR=red><A NAME="ref_716_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_708_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_715_7">Col</A>'<b>Access</b>,
++      <FONT COLOR=red><A NAME="ref_661_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
++      <FONT COLOR=red><A NAME="ref_662_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <FONT COLOR=red><A NAME="ref_663_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_655_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_662_7">Col</A>'<b>Access</b>,
+                                          System.Null_Address);
+-      <FONT COLOR=red><A NAME="ref_718_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++      <FONT COLOR=red><A NAME="ref_665_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_716_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>);
+-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>);
++         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+       <b>else</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_728_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_728_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_832_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_833_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                                      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_731_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_731_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+-                         <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                         <FONT COLOR=red><A NAME="ref_734_26" HREF="terminal_interface-curses__adb.htm#ref_731_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_678_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
++                         <FONT COLOR=red><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                         <FONT COLOR=red><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wattrget, "wattr_get");
+ 
+-      <FONT COLOR=red><A NAME="ref_737_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+-      <FONT COLOR=red><A NAME="ref_738_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-      <FONT COLOR=red><A NAME="ref_739_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_731_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_738_7">Col</A>'<b>Access</b>,
++      <FONT COLOR=red><A NAME="ref_684_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
++      <FONT COLOR=red><A NAME="ref_685_7">Col</A></FONT>  : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <FONT COLOR=red><A NAME="ref_686_7">Res</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>,
+                                          System.Null_Address);
+-      <FONT COLOR=red><A NAME="ref_741_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++      <FONT COLOR=red><A NAME="ref_688_7">Ch</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_739_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>);
+-         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>);
++         <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+       <b>else</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_13">Get_Character_Attribute</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_751_14" HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_751_25" HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_752_25" HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_698_14" HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_698_25" HREF="terminal_interface-curses__ads.htm#ref_838_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                        <FONT COLOR=red><A NAME="ref_699_25" HREF="terminal_interface-curses__ads.htm#ref_839_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_754_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_754_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_755_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                           <FONT COLOR=red><A NAME="ref_756_28" HREF="terminal_interface-curses__adb.htm#ref_754_16">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_701_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                           <FONT COLOR=red><A NAME="ref_702_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                           <FONT COLOR=red><A NAME="ref_703_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Opts</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wset_Color, "wcolor_set");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A>,
+-                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A>),
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_701_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_838_25">Win</A>,
++                     <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_839_25">Pair</A>),
+                      <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_766_14" HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_767_7" HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_768_7" HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A></FONT> : <b>in</b> Integer := -1;
+-      <FONT COLOR=red><A NAME="ref_769_7" HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+-      <FONT COLOR=red><A NAME="ref_770_7" HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_772_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_772_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                       <FONT COLOR=red><A NAME="ref_773_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                       <FONT COLOR=red><A NAME="ref_774_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+-                       <FONT COLOR=red><A NAME="ref_775_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                       <FONT COLOR=red><A NAME="ref_776_24" HREF="terminal_interface-curses__adb.htm#ref_772_16">Opts</A></FONT>  : System.Address := System.Null_Address)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_713_14" HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_846_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_847_7">Count</A></FONT> : <b>in</b> Integer := -1;
++      <FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_848_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_719_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Win</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                       <FONT COLOR=red><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Cnt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                       <FONT COLOR=red><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Attr</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
++                       <FONT COLOR=red><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                       <FONT COLOR=red><A NAME="ref_723_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Opts</A></FONT>  : System.Address := System.Null_Address)
+                        <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wchgat, "wchgat");
+ 
+-      <FONT COLOR=red><A NAME="ref_780_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
+-        (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A>);
++      <FONT COLOR=red><A NAME="ref_727_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
++        (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_848_7">Attr</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_780_7">Ch</A>),
+-                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_719_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_846_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_847_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_727_7">Ch</A>),
++                 <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_790_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_791_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+-      <FONT COLOR=red><A NAME="ref_792_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+-      <FONT COLOR=red><A NAME="ref_793_7" HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A></FONT>  : <b>in</b> Integer := -1;
+-      <FONT COLOR=red><A NAME="ref_794_7" HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+-      <FONT COLOR=red><A NAME="ref_795_7" HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_736_14" HREF="terminal_interface-curses__ads.htm#ref_854_14">Change_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_737_7" HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_856_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
++      <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_857_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
++      <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_858_7">Count</A></FONT>  : <b>in</b> Integer := -1;
++      <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_859_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_860_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_856_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_857_7">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_845_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_855_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_7">Color</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_854_14">Change_Attributes</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_749_14" HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_751_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Beeper, "beep");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_804_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_751_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_812_14" HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_759_14" HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_814_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_761_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Flash, "flash");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_761_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_822_14" HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_822_31" HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_769_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_769_31" HREF="terminal_interface-curses__ads.htm#ref_886_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_824_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_771_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Cbreak, "cbreak");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_826_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_773_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, NoCbreak, "nocbreak");
+ 
+-      <FONT COLOR=red><A NAME="ref_829_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_776_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_824_16">Cbreak</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_31">SwitchOn</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_771_16">Cbreak</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_826_16">NoCbreak</A>;
++         <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_773_16">NoCbreak</A>;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_841_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_841_28" HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_788_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_788_28" HREF="terminal_interface-curses__ads.htm#ref_892_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_843_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_790_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Raw, "raw");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_792_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, NoRaw, "noraw");
+ 
+-      <FONT COLOR=red><A NAME="ref_848_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_795_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_843_16">Raw</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_28">SwitchOn</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_790_16">Raw</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_845_16">NoRaw</A>;
++         <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_792_16">NoRaw</A>;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_860_29" HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_807_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_807_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_862_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_809_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Echo, "echo");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_811_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, NoEcho, "noecho");
+ 
+-      <FONT COLOR=red><A NAME="ref_867_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_814_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_862_16">Echo</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_29">SwitchOn</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_809_16">Echo</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_864_16">NoEcho</A>;
++         <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_811_16">NoEcho</A>;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_879_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                            <FONT COLOR=red><A NAME="ref_880_29" HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_826_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_826_29" HREF="terminal_interface-curses__ads.htm#ref_904_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                            <FONT COLOR=red><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_905_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_882_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_882_22" HREF="terminal_interface-curses__adb.htm#ref_882_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_882_34" HREF="terminal_interface-curses__adb.htm#ref_882_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_829_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_829_22" HREF="terminal_interface-curses__adb.htm#ref_829_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_829_34" HREF="terminal_interface-curses__adb.htm#ref_829_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Meta, "meta");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_890_31" HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                              <FONT COLOR=red><A NAME="ref_891_31" HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_837_14" HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_837_31" HREF="terminal_interface-curses__ads.htm#ref_910_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                              <FONT COLOR=red><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_911_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_893_24" HREF="terminal_interface-curses__adb.htm#ref_893_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_893_36" HREF="terminal_interface-curses__adb.htm#ref_893_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_840_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_840_24" HREF="terminal_interface-curses__adb.htm#ref_840_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_840_36" HREF="terminal_interface-curses__adb.htm#ref_840_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Keypad, "keypad");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_840_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_910_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_911_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_901_13" HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_901_30" HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_848_13" HREF="terminal_interface-curses__ads.htm#ref_915_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_848_30" HREF="terminal_interface-curses__ads.htm#ref_915_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                              <b>return</b> Boolean
+    <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_851_16">Is_Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_851_27" HREF="terminal_interface-curses__adb.htm#ref_851_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++      <b>pragma</b> Import (C, Is_Keypad, "is_keypad");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_4">Offset_use_keypad</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A>;
++      <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_851_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_915_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_915_13">Get_KeyPad_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_908_14" HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_908_26" HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_914_9">Half_Delay_Amount</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_857_14" HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_857_26" HREF="terminal_interface-curses__ads.htm#ref_923_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_920_9">Half_Delay_Amount</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_910_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_910_27" HREF="terminal_interface-curses__adb.htm#ref_910_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_859_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_859_27" HREF="terminal_interface-curses__adb.htm#ref_859_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Halfdelay, "halfdelay");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_910_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_859_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_918_14" HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_919_7" HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_920_7" HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_867_14" HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_868_7" HREF="terminal_interface-curses__ads.htm#ref_929_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Mode</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_922_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_922_27" HREF="terminal_interface-curses__adb.htm#ref_922_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_922_41" HREF="terminal_interface-curses__adb.htm#ref_922_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_871_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_871_27" HREF="terminal_interface-curses__adb.htm#ref_871_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_871_41" HREF="terminal_interface-curses__adb.htm#ref_871_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Intrflush, "intrflush");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_871_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_929_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_930_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_880_7" HREF="terminal_interface-curses__ads.htm#ref_936_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_937_7">Flush</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_934_17">Qiflush</A></FONT>;
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_883_17">Qiflush</A></FONT>;
+       <b>pragma</b> Import (C, Qiflush, "qiflush");
+-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_936_17">No_Qiflush</A></FONT>;
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_885_17">No_Qiflush</A></FONT>;
+       <b>pragma</b> Import (C, No_Qiflush, "noqiflush");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_936_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_7">Flush</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_883_17">Qiflush</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>;
++         <A HREF="terminal_interface-curses__adb.htm#ref_885_17">No_Qiflush</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_949_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_950_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_951_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A></FONT> : <b>in</b> Boolean := False)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_899_7" HREF="terminal_interface-curses__ads.htm#ref_944_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_945_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_953_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_953_25" HREF="terminal_interface-curses__adb.htm#ref_953_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_953_39" HREF="terminal_interface-curses__adb.htm#ref_953_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_902_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_902_25" HREF="terminal_interface-curses__adb.htm#ref_902_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_902_39" HREF="terminal_interface-curses__adb.htm#ref_902_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Nodelay, "nodelay");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_902_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_944_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_945_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_961_14" HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_961_32" HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                               <FONT COLOR=red><A NAME="ref_962_32" HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Timeout_Mode</A>;
+-                               <FONT COLOR=red><A NAME="ref_963_32" HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A></FONT> : <b>in</b> Natural)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__ads.htm#ref_952_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_32" HREF="terminal_interface-curses__ads.htm#ref_952_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                               <FONT COLOR=red><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_953_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_9">Timeout_Mode</A>;
++                               <FONT COLOR=red><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A></FONT> : <b>in</b> Natural)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_965_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_965_26" HREF="terminal_interface-curses__adb.htm#ref_965_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_965_40" HREF="terminal_interface-curses__adb.htm#ref_965_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_914_17">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_914_27" HREF="terminal_interface-curses__adb.htm#ref_914_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_914_41" HREF="terminal_interface-curses__adb.htm#ref_914_17">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+       <b>pragma</b> Import (C, Wtimeout, "wtimeout");
+ 
+-      <FONT COLOR=red><A NAME="ref_968_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_917_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A> <b>is</b>
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := -1;
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := 0;
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_50">Delayed</A>      =&gt;
+-            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A> = 0 <b>then</b>
++      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_953_32">Mode</A> <b>is</b>
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_26">Blocking</A>     =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := -1;
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := 0;
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_50">Delayed</A>      =&gt;
++            <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A> = 0 <b>then</b>
+                <b>raise</b> Constraint_Error;
+             <b>end</b> <b>if</b>;
+-            <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A>);
++            <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_954_32">Amount</A>);
+       <b>end</b> <b>case</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_914_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_952_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_952_14">Set_Timeout_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_984_14" HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_986_7" HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_931_14" HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_965_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_966_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_988_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_988_27" HREF="terminal_interface-curses__adb.htm#ref_988_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_988_41" HREF="terminal_interface-curses__adb.htm#ref_988_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_935_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_935_27" HREF="terminal_interface-curses__adb.htm#ref_935_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_935_41" HREF="terminal_interface-curses__adb.htm#ref_935_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Notimeout, "notimeout");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A>)))
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_935_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_965_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_966_7">Timer_Off</A>)))
+         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_998_27" HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_945_27" HREF="terminal_interface-curses__ads.htm#ref_975_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1000_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_947_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, NL, "nl");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_949_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, NoNL, "nonl");
+ 
+-      <FONT COLOR=red><A NAME="ref_1005_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_952_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1000_16">NL</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_27">SwitchOn</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_947_16">NL</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">NoNL</A>;
++         <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NoNL</A>;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1017_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__ads.htm#ref_982_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1021_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1021_26" HREF="terminal_interface-curses__adb.htm#ref_1021_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1021_38" HREF="terminal_interface-curses__adb.htm#ref_1021_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_968_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_968_26" HREF="terminal_interface-curses__adb.htm#ref_968_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_968_38" HREF="terminal_interface-curses__adb.htm#ref_968_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Clear_Ok, "clearok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_968_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_982_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_976_14" HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_978_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1033_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1033_24" HREF="terminal_interface-curses__adb.htm#ref_1033_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1033_36" HREF="terminal_interface-curses__adb.htm#ref_1033_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_980_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_980_24" HREF="terminal_interface-curses__adb.htm#ref_980_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_980_36" HREF="terminal_interface-curses__adb.htm#ref_980_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, IDL_Ok, "idlok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_980_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__ads.htm#ref_996_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1045_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_24" HREF="terminal_interface-curses__adb.htm#ref_1045_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1045_36" HREF="terminal_interface-curses__adb.htm#ref_1045_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_17">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_992_25" HREF="terminal_interface-curses__adb.htm#ref_992_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_992_37" HREF="terminal_interface-curses__adb.htm#ref_992_17">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
+       <b>pragma</b> Import (C, IDC_Ok, "idcok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_992_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_996_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Do_Idc</A>)));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1054_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1000_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1057_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1057_26" HREF="terminal_interface-curses__adb.htm#ref_1057_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1057_38" HREF="terminal_interface-curses__adb.htm#ref_1057_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1002_26" HREF="terminal_interface-curses__adb.htm#ref_1002_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1002_38" HREF="terminal_interface-curses__adb.htm#ref_1002_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Leave_Ok, "leaveok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1066_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1067_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A></FONT> : <b>in</b> Boolean := False)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1010_14" HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__ads.htm#ref_1010_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_25" HREF="terminal_interface-curses__adb.htm#ref_1069_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1069_39" HREF="terminal_interface-curses__adb.htm#ref_1069_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1014_17">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1014_26" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1014_40" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
+       <b>pragma</b> Import (C, Immedok, "immedok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_1014_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1010_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Mode</A>)));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1079_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1020_14" HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1021_7" HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1022_7" HREF="terminal_interface-curses__ads.htm#ref_1018_7">Mode</A></FONT> : <b>in</b> Boolean := False)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1081_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1081_26" HREF="terminal_interface-curses__adb.htm#ref_1081_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1081_40" HREF="terminal_interface-curses__adb.htm#ref_1081_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1024_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_26" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1024_40" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Scrollok, "scrollok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1024_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1018_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1089_13" HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1089_32" HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1032_13" HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1032_32" HREF="terminal_interface-curses__ads.htm#ref_1022_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                                <b>return</b> Boolean
+    <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1035_16">Is_Scroll_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1035_30" HREF="terminal_interface-curses__adb.htm#ref_1035_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++      <b>pragma</b> Import (C, Is_Scroll_Ok, "is_scrollok");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1921_4">Offset_scroll</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A>;
++      <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1035_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1098_7" HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1101_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1101_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                           <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses__adb.htm#ref_1101_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_1028_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_1029_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1046_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1046_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                           <FONT COLOR=red><A NAME="ref_1047_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                           <FONT COLOR=red><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wsetscrreg, "wsetscrreg");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A>))
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1046_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1028_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1029_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Bottom_Line</A>))
+         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1112_14" HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1057_14" HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1114_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1059_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Do_Update, "doupdate");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1114_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1059_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1122_14" HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1122_23" HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1067_14" HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1067_23" HREF="terminal_interface-curses__ads.htm#ref_1045_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1124_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1124_26" HREF="terminal_interface-curses__adb.htm#ref_1124_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_26" HREF="terminal_interface-curses__adb.htm#ref_1069_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wrefresh, "wrefresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1045_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Refresh</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1132_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1133_7" HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1052_14">Refresh_Without_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1053_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1135_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_30" HREF="terminal_interface-curses__adb.htm#ref_1135_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1080_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1080_30" HREF="terminal_interface-curses__adb.htm#ref_1080_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wnoutrefresh, "wnoutrefresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1080_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1052_14">Refresh_Without_Update</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_22" HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1088_14" HREF="terminal_interface-curses__ads.htm#ref_1059_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1088_22" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1145_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_27" HREF="terminal_interface-curses__adb.htm#ref_1145_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1090_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1090_27" HREF="terminal_interface-curses__adb.htm#ref_1090_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Redrawwin, "redrawwin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1090_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1059_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1059_14">Redraw</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1153_14" HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1154_7" HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1155_7" HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A></FONT> : <b>in</b> Positive)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1098_14" HREF="terminal_interface-curses__ads.htm#ref_1063_14">Redraw</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1063_22">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1100_7" HREF="terminal_interface-curses__ads.htm#ref_1064_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1101_7" HREF="terminal_interface-curses__ads.htm#ref_1065_22">Line_Count</A></FONT> : <b>in</b> Positive)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1158_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1158_27" HREF="terminal_interface-curses__adb.htm#ref_1158_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1158_41" HREF="terminal_interface-curses__adb.htm#ref_1158_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1158_56" HREF="terminal_interface-curses__adb.htm#ref_1158_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1103_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1103_27" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1103_41" HREF="terminal_interface-curses__adb.htm#ref_1103_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1103_56" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+                           <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wredrawln, "wredrawln");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A>,
+-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A>),
+-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1103_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1063_22">Win</A>,
++                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1064_22">Begin_Line</A>),
++                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1065_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1063_14">Redraw</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1170_14" HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1170_21" HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1115_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1115_21" HREF="terminal_interface-curses__ads.htm#ref_1074_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1172_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1172_24" HREF="terminal_interface-curses__adb.htm#ref_1172_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1117_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_24" HREF="terminal_interface-curses__adb.htm#ref_1117_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Werase, "werase");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1117_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1074_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1180_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_21" HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1125_14" HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_21" HREF="terminal_interface-curses__ads.htm#ref_1081_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1182_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1182_24" HREF="terminal_interface-curses__adb.htm#ref_1182_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1127_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_24" HREF="terminal_interface-curses__adb.htm#ref_1127_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wclear, "wclear");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1127_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1081_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_38" HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1135_14" HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_38" HREF="terminal_interface-curses__ads.htm#ref_1088_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1192_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1192_27" HREF="terminal_interface-curses__adb.htm#ref_1192_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1137_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1137_27" HREF="terminal_interface-curses__adb.htm#ref_1137_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wclearbot, "wclrtobot");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1137_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1088_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1200_14" HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1200_36" HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_36" HREF="terminal_interface-curses__ads.htm#ref_1095_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1202_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1202_27" HREF="terminal_interface-curses__adb.htm#ref_1202_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1147_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_27" HREF="terminal_interface-curses__adb.htm#ref_1147_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wcleareol, "wclrtoeol");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1147_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1095_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1210_14" HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1211_7" HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1212_7" HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1155_14" HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1109_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1157_7" HREF="terminal_interface-curses__ads.htm#ref_1110_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_30" HREF="terminal_interface-curses__adb.htm#ref_1214_17">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1214_45" HREF="terminal_interface-curses__adb.htm#ref_1214_17">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_1159_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1159_30" HREF="terminal_interface-curses__adb.htm#ref_1159_17">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1159_45" HREF="terminal_interface-curses__adb.htm#ref_1159_17">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+       <b>pragma</b> Import (C, WBackground, "wbkgdset");
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_1159_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1109_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1110_7">Ch</A>));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1221_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1222_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1165_14" HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1166_7" HREF="terminal_interface-curses__ads.htm#ref_1117_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1167_7" HREF="terminal_interface-curses__ads.htm#ref_1118_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1224_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1224_29" HREF="terminal_interface-curses__adb.htm#ref_1224_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1224_41" HREF="terminal_interface-curses__adb.htm#ref_1224_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1169_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1169_29" HREF="terminal_interface-curses__adb.htm#ref_1169_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1169_41" HREF="terminal_interface-curses__adb.htm#ref_1169_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, WChangeBkgd, "wbkgd");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1169_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1117_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1118_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1232_13" HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1232_29" HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1177_13" HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1177_29" HREF="terminal_interface-curses__ads.htm#ref_1125_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_26" HREF="terminal_interface-curses__adb.htm#ref_1235_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1180_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_26" HREF="terminal_interface-curses__adb.htm#ref_1180_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Wgetbkgd, "getbkgd");
+    <b>begin</b>
+-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A>;
++      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1180_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1125_29">Win</A>));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1241_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1241_35" HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                                  <FONT COLOR=red><A NAME="ref_1242_35" HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                                  <FONT COLOR=red><A NAME="ref_1243_35" HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A></FONT> : <b>in</b> Positive;
+-                                  <FONT COLOR=red><A NAME="ref_1244_35" HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A></FONT> : <b>in</b> Boolean)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_1247_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_1248_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_1249_26" HREF="terminal_interface-curses__adb.htm#ref_1246_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1186_14" HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1186_35" HREF="terminal_interface-curses__ads.htm#ref_1152_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                                  <FONT COLOR=red><A NAME="ref_1187_35" HREF="terminal_interface-curses__ads.htm#ref_1153_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                                  <FONT COLOR=red><A NAME="ref_1188_35" HREF="terminal_interface-curses__ads.htm#ref_1154_35">Count</A></FONT> : <b>in</b> Positive;
++                                  <FONT COLOR=red><A NAME="ref_1189_35" HREF="terminal_interface-curses__ads.htm#ref_1155_35">State</A></FONT> : <b>in</b> Boolean)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1191_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1191_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_1192_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_1193_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_1194_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wtouchln, "wtouchln");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1191_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1152_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1153_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_35">Count</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1155_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1258_21" HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1203_14" HREF="terminal_interface-curses__ads.htm#ref_1141_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1203_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_1260_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1261_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1205_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1206_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1261_7">X</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>), True);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>), True);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1141_14">Touch</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1267_14" HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_23" HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1212_14" HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1212_23" HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_1269_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1270_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1214_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1215_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1270_7">X</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>), False);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1214_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1215_7">X</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1136_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1214_7">Y</A>), False);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1276_14" HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1276_21" HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                    <FONT COLOR=red><A NAME="ref_1277_21" HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-                    <FONT COLOR=red><A NAME="ref_1278_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A></FONT> : <b>in</b> Positive)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1221_14" HREF="terminal_interface-curses__ads.htm#ref_1145_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1221_21" HREF="terminal_interface-curses__ads.htm#ref_1145_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                    <FONT COLOR=red><A NAME="ref_1222_21" HREF="terminal_interface-curses__ads.htm#ref_1146_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                    <FONT COLOR=red><A NAME="ref_1223_21" HREF="terminal_interface-curses__ads.htm#ref_1147_21">Count</A></FONT> : <b>in</b> Positive)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A>, True);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1145_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1146_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1147_21">Count</A>, True);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1145_14">Touch</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1284_13" HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1229_13" HREF="terminal_interface-curses__ads.htm#ref_1160_13">Is_Touched</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1230_7" HREF="terminal_interface-curses__ads.htm#ref_1160_25">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__ads.htm#ref_1161_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1288_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1288_30" HREF="terminal_interface-curses__adb.htm#ref_1288_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1288_42" HREF="terminal_interface-curses__adb.htm#ref_1288_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1233_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1233_30" HREF="terminal_interface-curses__adb.htm#ref_1233_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1233_42" HREF="terminal_interface-curses__adb.htm#ref_1233_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, WLineTouched, "is_linetouched");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1233_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1160_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1161_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1160_13">Is_Touched</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1298_13" HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>) <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1243_13" HREF="terminal_interface-curses__ads.htm#ref_1165_13">Is_Touched</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1244_7" HREF="terminal_interface-curses__ads.htm#ref_1165_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1301_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1301_29" HREF="terminal_interface-curses__adb.htm#ref_1301_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_29" HREF="terminal_interface-curses__adb.htm#ref_1246_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, WWinTouched, "is_wintouched");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1165_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1165_13">Is_Touched</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1311_14" HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1312_7" HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1317_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1322_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_1323_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_1324_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1325_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1326_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1327_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1328_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1329_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1330_25" HREF="terminal_interface-curses__adb.htm#ref_1322_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1256_14" HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1257_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1258_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1259_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1260_7" HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1261_7" HREF="terminal_interface-curses__ads.htm#ref_1179_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1262_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1263_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1264_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1183_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1267_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1268_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1269_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1270_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1271_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1272_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1273_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1274_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1267_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Copywin, "copywin");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A>,
+-                  <A HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A>,
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A>),
+-                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A>)
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1267_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Source_Window</A>,
++                  <A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Window</A>,
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Top_Row</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1178_7">Source_Left_Column</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1179_7">Destination_Top_Row</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Destination_Left_Column</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Bottom_Row</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Right_Column</A>),
++                  Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1183_7">Non_Destructive_Mode</A>)
+                 ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1347_14" HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1348_7" HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1349_7" HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1292_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__ads.htm#ref_1188_25">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__ads.htm#ref_1189_25">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1351_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1351_27" HREF="terminal_interface-curses__adb.htm#ref_1351_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1351_41" HREF="terminal_interface-curses__adb.htm#ref_1351_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1296_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1296_27" HREF="terminal_interface-curses__adb.htm#ref_1296_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1296_41" HREF="terminal_interface-curses__adb.htm#ref_1296_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Overwrite, "overwrite");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1296_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1359_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1304_14" HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1305_7" HREF="terminal_interface-curses__ads.htm#ref_1194_23">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1306_7" HREF="terminal_interface-curses__ads.htm#ref_1195_23">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1363_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1363_25" HREF="terminal_interface-curses__adb.htm#ref_1363_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1363_39" HREF="terminal_interface-curses__adb.htm#ref_1363_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1308_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1308_25" HREF="terminal_interface-curses__adb.htm#ref_1308_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1308_39" HREF="terminal_interface-curses__adb.htm#ref_1308_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Overlay, "overlay");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1308_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1194_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1195_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1372_14" HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1373_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1374_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A></FONT> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1317_14" HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1205_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1206_7">Lines</A></FONT> : <b>in</b> Integer       := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1376_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1376_27" HREF="terminal_interface-curses__adb.htm#ref_1376_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1376_39" HREF="terminal_interface-curses__adb.htm#ref_1376_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1321_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1321_27" HREF="terminal_interface-curses__adb.htm#ref_1321_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1321_39" HREF="terminal_interface-curses__adb.htm#ref_1321_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Winsdelln, "winsdelln");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1321_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1205_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1384_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1384_27" HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1329_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1329_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A>, -1);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, -1);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1390_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1390_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1335_14" HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1335_27" HREF="terminal_interface-curses__ads.htm#ref_1218_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, 1);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1218_27">Win</A>, 1);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1397_14" HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1398_7" HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1342_14" HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1343_7" HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1344_7" HREF="terminal_interface-curses__ads.htm#ref_1230_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1345_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
+    <b>is</b>
+-      <FONT COLOR=green><EM>--  Please note: in ncurses they are one off.</EM></FONT>
+-      <FONT COLOR=green><EM>--  This might be different in other implementations of curses</EM></FONT>
+-      <FONT COLOR=red><A NAME="ref_1404_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1909_4">Offset_maxy</A>))
+-                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Offset_XY</A>);
+-      <FONT COLOR=red><A NAME="ref_1406_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1910_4">Offset_maxx</A>))
+-                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Offset_XY</A>);
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1347_16">GetMaxY</A></FONT> (<FONT COLOR=red><A NAME="ref_1347_25" HREF="terminal_interface-curses__adb.htm#ref_1347_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetMaxY, "getmaxy");
++
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1350_16">GetMaxX</A></FONT> (<FONT COLOR=red><A NAME="ref_1350_25" HREF="terminal_interface-curses__adb.htm#ref_1350_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetMaxX, "getmaxx");
++
++      <FONT COLOR=red><A NAME="ref_1353_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1347_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A>)
++                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1924_4">Offset_XY</A>);
++      <FONT COLOR=red><A NAME="ref_1355_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1350_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1229_7">Win</A>)
++                          + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1924_4">Offset_XY</A>);
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1404_7">Y</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1406_7">X</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1230_7">Number_Of_Lines</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1353_7">Y</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1355_7">X</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1413_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1414_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1415_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1416_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1362_14" HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1364_7" HREF="terminal_interface-curses__ads.htm#ref_1238_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1365_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_1418_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1911_4">Offset_begy</A>);
+-      <FONT COLOR=red><A NAME="ref_1419_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1912_4">Offset_begx</A>);
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1367_16">GetBegY</A></FONT> (<FONT COLOR=red><A NAME="ref_1367_25" HREF="terminal_interface-curses__adb.htm#ref_1367_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetBegY, "getbegy");
++
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1370_16">GetBegX</A></FONT> (<FONT COLOR=red><A NAME="ref_1370_25" HREF="terminal_interface-curses__adb.htm#ref_1370_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetBegX, "getbegx");
++
++      <FONT COLOR=red><A NAME="ref_1373_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1367_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A>));
++      <FONT COLOR=red><A NAME="ref_1374_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1370_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1237_7">Win</A>));
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1418_7">Y</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1419_7">X</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1238_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1373_7">Y</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_7">X</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1425_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1426_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1427_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1428_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1380_14" HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1381_7" HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1382_7" HREF="terminal_interface-curses__ads.htm#ref_1246_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1383_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_1430_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := W_Get_Short (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1913_4">Offset_cury</A>);
+-      <FONT COLOR=red><A NAME="ref_1431_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_71_12">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1914_4">Offset_curx</A>);
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1385_16">GetCurY</A></FONT> (<FONT COLOR=red><A NAME="ref_1385_25" HREF="terminal_interface-curses__adb.htm#ref_1385_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetCurY, "getcury");
++
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1388_16">GetCurX</A></FONT> (<FONT COLOR=red><A NAME="ref_1388_25" HREF="terminal_interface-curses__adb.htm#ref_1388_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetCurX, "getcurx");
++
++      <FONT COLOR=red><A NAME="ref_1391_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1385_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A>));
++      <FONT COLOR=red><A NAME="ref_1392_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1388_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1245_7">Win</A>));
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1430_7">Y</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1431_7">X</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_1246_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1391_7">Y</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_7">X</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1437_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1438_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1439_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1402_7" HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_1443_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := W_Get_Int (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1916_4">Offset_pary</A>);
+-      <FONT COLOR=red><A NAME="ref_1444_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := W_Get_Int (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1917_4">Offset_parx</A>);
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1404_16">GetParY</A></FONT> (<FONT COLOR=red><A NAME="ref_1404_25" HREF="terminal_interface-curses__adb.htm#ref_1404_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetParY, "getpary");
++
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1407_16">GetParX</A></FONT> (<FONT COLOR=red><A NAME="ref_1407_25" HREF="terminal_interface-curses__adb.htm#ref_1407_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, GetParX, "getparx");
++
++      <FONT COLOR=red><A NAME="ref_1410_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1404_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A>);
++      <FONT COLOR=red><A NAME="ref_1411_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1407_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1253_7">Win</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1443_7">Y</A> = -1 <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := True;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A> = -1 <b>then</b>
++         <A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
++         <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
++         <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A> := True;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1443_7">Y</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1444_7">X</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := False;
++         <A HREF="terminal_interface-curses__ads.htm#ref_1254_7">Top_Left_Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1411_7">X</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Is_Not_A_Subwindow</A> := False;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1457_13" HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1457_22" HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-                     <FONT COLOR=red><A NAME="ref_1458_22" HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1424_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1424_22" HREF="terminal_interface-curses__ads.htm#ref_1267_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                     <FONT COLOR=red><A NAME="ref_1425_22" HREF="terminal_interface-curses__ads.htm#ref_1268_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1460_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1460_24" HREF="terminal_interface-curses__adb.htm#ref_1460_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1460_39" HREF="terminal_interface-curses__adb.htm#ref_1460_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1427_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1427_24" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1427_39" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Newpad, "newpad");
+ 
+-      <FONT COLOR=red><A NAME="ref_1463_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1430_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1460_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1427_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1267_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_22">Columns</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1463_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1472_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1479_16">Subpad</A></FONT>
+-        (<FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-         <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1484_10" HREF="terminal_interface-curses__adb.htm#ref_1479_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1439_13" HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1274_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1275_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1443_7" HREF="terminal_interface-curses__ads.htm#ref_1277_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1444_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1446_16">Subpad</A></FONT>
++        (<FONT COLOR=red><A NAME="ref_1447_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++         <FONT COLOR=red><A NAME="ref_1448_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1449_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1450_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1451_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+       <b>pragma</b> Import (C, Subpad, "subpad");
+ 
+-      <FONT COLOR=red><A NAME="ref_1487_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1454_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1479_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A>,
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1487_7">W</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A>;
+-
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1500_14" HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1505_7" HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1509_16">Prefresh</A></FONT>
+-        (<FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-         <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1514_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1515_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1516_10" HREF="terminal_interface-curses__adb.htm#ref_1509_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1446_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1274_7">Pad</A>,
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1275_7">Number_Of_Lines</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1276_7">Number_Of_Columns</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1277_7">First_Line_Position</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">First_Column_Position</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
++         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
++      <b>end</b> <b>if</b>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A>;
++
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1467_14" HREF="terminal_interface-curses__ads.htm#ref_1283_14">Refresh</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1468_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1469_7" HREF="terminal_interface-curses__ads.htm#ref_1285_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1470_7" HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1471_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1472_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1476_16">Prefresh</A></FONT>
++        (<FONT COLOR=red><A NAME="ref_1477_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++         <FONT COLOR=red><A NAME="ref_1478_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1479_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Prefresh, "prefresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1509_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A>,
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A>;
+-
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1530_14" HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1531_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1532_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1533_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1534_7" HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1535_7" HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1536_7" HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1539_16">Pnoutrefresh</A></FONT>
+-        (<FONT COLOR=red><A NAME="ref_1540_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-         <FONT COLOR=red><A NAME="ref_1541_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1542_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1543_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1544_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1545_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-         <FONT COLOR=red><A NAME="ref_1546_10" HREF="terminal_interface-curses__adb.htm#ref_1539_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1476_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1284_7">Pad</A>,
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1285_7">Source_Top_Row</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1286_7">Source_Left_Column</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Destination_Top_Row</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Destination_Left_Column</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Bottom_Row</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
++      <b>end</b> <b>if</b>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1283_14">Refresh</A>;
++
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1497_14" HREF="terminal_interface-curses__ads.htm#ref_1295_14">Refresh_Without_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1498_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1499_7" HREF="terminal_interface-curses__ads.htm#ref_1297_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1299_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1506_16">Pnoutrefresh</A></FONT>
++        (<FONT COLOR=red><A NAME="ref_1507_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pad</A></FONT>                      : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++         <FONT COLOR=red><A NAME="ref_1508_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Top_Row</A></FONT>           : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1509_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Left_Column</A></FONT>       : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Top_Row</A></FONT>      : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Left_Column</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Bottom_Row</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++         <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Pnoutrefresh, "pnoutrefresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1539_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A>,
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A>),
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A>),
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A>),
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A>),
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A>),
+-                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+-      <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A>;
+-
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1560_14" HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1561_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1562_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_7">Pad</A>,
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1297_7">Source_Top_Row</A>),
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1298_7">Source_Left_Column</A>),
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1299_7">Destination_Top_Row</A>),
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1300_7">Destination_Left_Column</A>),
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Bottom_Row</A>),
++                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++         <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
++      <b>end</b> <b>if</b>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1295_14">Refresh_Without_Update</A>;
++
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1527_14" HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1528_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1529_7" HREF="terminal_interface-curses__ads.htm#ref_1309_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1564_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1564_27" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1564_41" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1531_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1531_27" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1531_41" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
+                           <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Pechochar, "pechochar");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1564_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1309_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1573_14" HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1574_7" HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1575_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A></FONT>  : <b>in</b> Character)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__ads.htm#ref_1312_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1541_7" HREF="terminal_interface-curses__ads.htm#ref_1313_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1542_7" HREF="terminal_interface-curses__ads.htm#ref_1314_7">Ch</A></FONT>  : <b>in</b> Character)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>
+-        (<A HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A>,
+-         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A>,
++      <A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Add_Character_To_Pad_And_Echo_It</A>
++        (<A HREF="terminal_interface-curses__ads.htm#ref_1313_7">Pad</A>,
++         <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1314_7">Ch</A>,
+                                <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                                <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1312_14">Add_Character_To_Pad_And_Echo_It</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1585_14" HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1585_22" HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                     <FONT COLOR=red><A NAME="ref_1586_22" HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A></FONT> : <b>in</b> Integer := 1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1552_14" HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1552_22" HREF="terminal_interface-curses__ads.htm#ref_1322_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1553_22" HREF="terminal_interface-curses__ads.htm#ref_1323_22">Amount</A></FONT> : <b>in</b> Integer := 1)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1588_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1588_23" HREF="terminal_interface-curses__adb.htm#ref_1588_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1588_37" HREF="terminal_interface-curses__adb.htm#ref_1588_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1555_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1555_23" HREF="terminal_interface-curses__adb.htm#ref_1555_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1555_37" HREF="terminal_interface-curses__adb.htm#ref_1555_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wscrl, "wscrl");
+ 
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1588_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1555_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1322_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1323_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1598_14" HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1598_32" HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1565_14" HREF="terminal_interface-curses__ads.htm#ref_1334_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_32" HREF="terminal_interface-curses__ads.htm#ref_1334_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1600_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1600_24" HREF="terminal_interface-curses__adb.htm#ref_1600_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1567_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1567_24" HREF="terminal_interface-curses__adb.htm#ref_1567_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wdelch, "wdelch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1600_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1567_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1334_14">Delete_Character</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1608_14" HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1609_7" HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1575_14" HREF="terminal_interface-curses__ads.htm#ref_1339_14">Delete_Character</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1340_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1577_7" HREF="terminal_interface-curses__ads.htm#ref_1341_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1578_7" HREF="terminal_interface-curses__ads.htm#ref_1342_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1613_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1613_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_1614_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_1615_26" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1580_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1580_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_1582_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mvwdelch, "mvwdelch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1613_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1580_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1340_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1341_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1342_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1339_14">Delete_Character</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1623_13" HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1623_19" HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1590_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1590_19" HREF="terminal_interface-curses__ads.htm#ref_1352_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1626_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1626_23" HREF="terminal_interface-curses__adb.htm#ref_1626_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1593_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1593_23" HREF="terminal_interface-curses__adb.htm#ref_1593_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Winch, "winch");
+    <b>begin</b>
+-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1626_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A>));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A>;
++      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1593_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1352_19">Win</A>));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1632_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1633_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1637_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1637_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_1638_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1639_25" HREF="terminal_interface-curses__adb.htm#ref_1637_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1358_13">Peek</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1600_7" HREF="terminal_interface-curses__ads.htm#ref_1359_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1601_7" HREF="terminal_interface-curses__ads.htm#ref_1360_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1602_7" HREF="terminal_interface-curses__ads.htm#ref_1361_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1604_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1604_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1605_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1606_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Mvwinch, "mvwinch");
+    <b>begin</b>
+-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1637_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A>)));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
++      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1604_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1359_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1360_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1361_7">Column</A>)));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1358_13">Peek</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1645_14" HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                     <FONT COLOR=red><A NAME="ref_1646_22" HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_22" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1613_22" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1648_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1648_24" HREF="terminal_interface-curses__adb.htm#ref_1648_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1648_38" HREF="terminal_interface-curses__adb.htm#ref_1648_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1615_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1615_24" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1615_38" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Winsch, "winsch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1648_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1615_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1656_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1657_7" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1658_7" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1659_7" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1660_7" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1662_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1662_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_1663_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_1664_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                         <FONT COLOR=red><A NAME="ref_1665_26" HREF="terminal_interface-curses__adb.htm#ref_1662_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1623_14" HREF="terminal_interface-curses__ads.htm#ref_1377_14">Insert</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1624_7" HREF="terminal_interface-curses__ads.htm#ref_1377_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1625_7" HREF="terminal_interface-curses__ads.htm#ref_1378_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1626_7" HREF="terminal_interface-curses__ads.htm#ref_1379_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1627_7" HREF="terminal_interface-curses__ads.htm#ref_1380_22">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1629_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_1630_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_1631_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                         <FONT COLOR=red><A NAME="ref_1632_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Ch</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mvwinsch, "mvwinsch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1662_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A>,
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A>),
+-                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1629_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1377_22">Win</A>,
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1378_22">Line</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1379_22">Column</A>),
++                   <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1380_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1377_14">Insert</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1676_14" HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1676_22" HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                     <FONT COLOR=red><A NAME="ref_1677_22" HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A></FONT> : <b>in</b> String;
+-                     <FONT COLOR=red><A NAME="ref_1678_22" HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A></FONT> : <b>in</b> Integer := -1)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1680_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1680_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_1681_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Str</A></FONT> : char_array;
+-                         <FONT COLOR=red><A NAME="ref_1682_26" HREF="terminal_interface-curses__adb.htm#ref_1680_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1643_14" HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1643_22" HREF="terminal_interface-curses__ads.htm#ref_1389_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1644_22" HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A></FONT> : <b>in</b> String;
++                     <FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1391_22">Len</A></FONT> : <b>in</b> Integer := -1)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1647_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1647_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_1648_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Str</A></FONT> : char_array;
++                         <FONT COLOR=red><A NAME="ref_1649_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Winsnstr, "winsnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1685_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_1686_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_1652_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_1653_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1680_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1390_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1653_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1647_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1389_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1694_14" HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1695_7" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1696_7" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1697_7" HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1698_7" HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A></FONT>    : <b>in</b> String;
+-      <FONT COLOR=red><A NAME="ref_1699_7" HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A></FONT>    : <b>in</b> Integer := -1)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1701_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1701_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                           <FONT COLOR=red><A NAME="ref_1702_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                           <FONT COLOR=red><A NAME="ref_1703_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                           <FONT COLOR=red><A NAME="ref_1704_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Str</A></FONT>    : char_array;
+-                           <FONT COLOR=red><A NAME="ref_1705_28" HREF="terminal_interface-curses__adb.htm#ref_1701_16">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1661_14" HREF="terminal_interface-curses__ads.htm#ref_1398_14">Insert</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1662_7" HREF="terminal_interface-curses__ads.htm#ref_1398_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1663_7" HREF="terminal_interface-curses__ads.htm#ref_1399_22">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1664_7" HREF="terminal_interface-curses__ads.htm#ref_1400_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1665_7" HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A></FONT>    : <b>in</b> String;
++      <FONT COLOR=red><A NAME="ref_1666_7" HREF="terminal_interface-curses__ads.htm#ref_1402_22">Len</A></FONT>    : <b>in</b> Integer := -1)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1668_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1668_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                           <FONT COLOR=red><A NAME="ref_1669_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Line</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                           <FONT COLOR=red><A NAME="ref_1670_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                           <FONT COLOR=red><A NAME="ref_1671_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Str</A></FONT>    : char_array;
++                           <FONT COLOR=red><A NAME="ref_1672_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Len</A></FONT>    : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Mvwinsnstr, "mvwinsnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1708_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_1709_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_1675_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_1676_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1708_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1709_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1701_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1708_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A>))
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1676_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1668_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1398_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1399_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Len</A>))
+         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Insert</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1718_14" HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1718_20" HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                   <FONT COLOR=red><A NAME="ref_1719_20" HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A></FONT> : <b>out</b> String;
+-                   <FONT COLOR=red><A NAME="ref_1720_20" HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A></FONT> : <b>in</b>  Integer := -1)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1722_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1722_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_1723_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Str</A></FONT> : char_array;
+-                        <FONT COLOR=red><A NAME="ref_1724_25" HREF="terminal_interface-curses__adb.htm#ref_1722_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1685_14" HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1685_20" HREF="terminal_interface-curses__ads.htm#ref_1414_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                   <FONT COLOR=red><A NAME="ref_1686_20" HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A></FONT> : <b>out</b> String;
++                   <FONT COLOR=red><A NAME="ref_1687_20" HREF="terminal_interface-curses__ads.htm#ref_1416_20">Len</A></FONT> : <b>in</b>  Integer := -1)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1689_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1690_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Str</A></FONT> : char_array;
++                        <FONT COLOR=red><A NAME="ref_1691_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Winnstr, "winnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1727_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A>;
+-      <FONT COLOR=red><A NAME="ref_1728_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_1729_7">Cnt</A></FONT> : Natural;
++      <FONT COLOR=red><A NAME="ref_1694_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Len</A>;
++      <FONT COLOR=red><A NAME="ref_1695_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_1696_7">Cnt</A></FONT> : Natural;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> &lt; 0 <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &lt; 0 <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length <b>then</b>
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1722_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1727_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1414_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1728_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A>, True);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
++      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>, True);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Length <b>then</b>
++         <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1415_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1747_14" HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1748_7" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1749_7" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1750_7" HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1751_7" HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A></FONT>    : <b>out</b> String;
+-      <FONT COLOR=red><A NAME="ref_1752_7" HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A></FONT>    : <b>in</b>  Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__ads.htm#ref_1423_14">Peek</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1715_7" HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1716_7" HREF="terminal_interface-curses__ads.htm#ref_1424_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1717_7" HREF="terminal_interface-curses__ads.htm#ref_1425_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1718_7" HREF="terminal_interface-curses__ads.htm#ref_1426_20">Str</A></FONT>    : <b>out</b> String;
++      <FONT COLOR=red><A NAME="ref_1719_7" HREF="terminal_interface-curses__ads.htm#ref_1427_20">Len</A></FONT>    : <b>in</b>  Integer := -1)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1424_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1426_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1427_20">Len</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1423_14">Peek</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1759_14" HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1760_7" HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1761_7" HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+-      <FONT COLOR=red><A NAME="ref_1762_7" HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A></FONT> : <b>in</b>  Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1726_14" HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1438_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++      <FONT COLOR=red><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1440_20">Len</A></FONT> : <b>in</b>  Integer := -1)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1764_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1764_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_1765_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
+-                          <FONT COLOR=red><A NAME="ref_1766_27" HREF="terminal_interface-curses__adb.htm#ref_1764_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1731_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                          <FONT COLOR=red><A NAME="ref_1732_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A>;             <FONT COLOR=green><EM>-- out</EM></FONT>
++                          <FONT COLOR=red><A NAME="ref_1733_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Winchnstr, "winchnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1769_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A>;
+-      <FONT COLOR=red><A NAME="ref_1770_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length)
++      <FONT COLOR=red><A NAME="ref_1736_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Len</A>;
++      <FONT COLOR=red><A NAME="ref_1737_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_57_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length)
+           := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+-      <FONT COLOR=red><A NAME="ref_1772_7">Cnt</A></FONT> : Natural := 0;
++      <FONT COLOR=red><A NAME="ref_1739_7">Cnt</A></FONT> : Natural := 0;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> &lt; 0 <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &lt; 0 <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length <b>then</b>
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1764_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1769_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1731_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1438_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      <b>for</b> <FONT COLOR=red><A NAME="ref_1783_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'<b>Range</b> <b>loop</b>
+-         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1783_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>));
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> + 1;
++      <b>for</b> <FONT COLOR=red><A NAME="ref_1750_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'<b>Range</b> <b>loop</b>
++         <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++         <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1750_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>));
++         <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> + 1;
+       <b>end</b> <b>loop</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1772_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Last) :=
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Length <b>then</b>
++         <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1439_20">Str</A>'Last) :=
+            (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A> =&gt; ' ',
+                        <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+                        <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1796_14" HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1797_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1798_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1799_7" HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1800_7" HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+-      <FONT COLOR=red><A NAME="ref_1801_7" HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A></FONT>    : <b>in</b> Integer := -1)
+-   <b>is</b>
+-   <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1808_14" HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1808_19" HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                  <FONT COLOR=red><A NAME="ref_1809_19" HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A></FONT> : <b>out</b> String;
+-                  <FONT COLOR=red><A NAME="ref_1810_19" HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A></FONT> : <b>in</b>  Integer := -1)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1812_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1812_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                         <FONT COLOR=red><A NAME="ref_1813_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Str</A></FONT> : char_array;
+-                         <FONT COLOR=red><A NAME="ref_1814_26" HREF="terminal_interface-curses__adb.htm#ref_1812_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1763_14" HREF="terminal_interface-curses__ads.htm#ref_1447_14">Peek</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1764_7" HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1765_7" HREF="terminal_interface-curses__ads.htm#ref_1448_20">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1766_7" HREF="terminal_interface-curses__ads.htm#ref_1449_20">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1767_7" HREF="terminal_interface-curses__ads.htm#ref_1450_20">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++      <FONT COLOR=red><A NAME="ref_1768_7" HREF="terminal_interface-curses__ads.htm#ref_1451_20">Len</A></FONT>    : <b>in</b> Integer := -1)
++   <b>is</b>
++   <b>begin</b>
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1448_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1438_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1450_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1451_20">Len</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1447_14">Peek</A>;
++<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1775_14" HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1775_19" HREF="terminal_interface-curses__ads.htm#ref_1463_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_1776_19" HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A></FONT> : <b>out</b> String;
++                  <FONT COLOR=red><A NAME="ref_1777_19" HREF="terminal_interface-curses__ads.htm#ref_1465_19">Len</A></FONT> : <b>in</b>  Integer := -1)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1779_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1779_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                         <FONT COLOR=red><A NAME="ref_1780_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Str</A></FONT> : char_array;
++                         <FONT COLOR=red><A NAME="ref_1781_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Wgetnstr, "wgetnstr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1817_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A>;
+-      <FONT COLOR=red><A NAME="ref_1818_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_1819_7">Cnt</A></FONT> : Natural;
++      <FONT COLOR=red><A NAME="ref_1784_7">N</A></FONT>   : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Len</A>;
++      <FONT COLOR=red><A NAME="ref_1785_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length);
++      <FONT COLOR=red><A NAME="ref_1786_7">Cnt</A></FONT> : Natural;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> &lt; 0 <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &lt; 0 <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length <b>then</b>
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1812_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1817_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1463_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1818_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A>, True);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
++      To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>, True);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Length <b>then</b>
++         <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1464_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1837_14" HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1838_7" HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1839_7" HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1840_7" HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1841_7" HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A></FONT>    : <b>out</b> String;
+-      <FONT COLOR=red><A NAME="ref_1842_7" HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A></FONT>    : <b>in</b>  Integer := -1)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1804_14" HREF="terminal_interface-curses__ads.htm#ref_1474_14">Get</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1805_7" HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1806_7" HREF="terminal_interface-curses__ads.htm#ref_1475_19">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1807_7" HREF="terminal_interface-curses__ads.htm#ref_1476_19">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1808_7" HREF="terminal_interface-curses__ads.htm#ref_1477_19">Str</A></FONT>    : <b>out</b> String;
++      <FONT COLOR=red><A NAME="ref_1809_7" HREF="terminal_interface-curses__ads.htm#ref_1478_19">Len</A></FONT>    : <b>in</b>  Integer := -1)
+    <b>is</b>
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A>);
+-      <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A>;
++      <A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1475_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Column</A>);
++      <A HREF="terminal_interface-curses__ads.htm#ref_1463_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1474_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1477_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1478_19">Len</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1474_14">Get</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1849_14" HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1850_7" HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1485_35">Three_Two_Three</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1500_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1491_35">Three_Two_Three</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1852_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1852_26" HREF="terminal_interface-curses__adb.htm#ref_1852_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1819_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1819_26" HREF="terminal_interface-curses__adb.htm#ref_1819_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Init, "slk_init");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1852_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1500_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1860_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1860_34" HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+-                                 <FONT COLOR=red><A NAME="ref_1861_34" HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A></FONT>  : <b>in</b> String;
+-                                 <FONT COLOR=red><A NAME="ref_1862_34" HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1490_33">Left</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1505_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1827_34" HREF="terminal_interface-curses__ads.htm#ref_1505_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
++                                 <FONT COLOR=red><A NAME="ref_1828_34" HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A></FONT>  : <b>in</b> String;
++                                 <FONT COLOR=red><A NAME="ref_1829_34" HREF="terminal_interface-curses__ads.htm#ref_1507_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1496_33">Left</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1864_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1864_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_1865_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Txt</A></FONT>   : char_array;
+-                        <FONT COLOR=red><A NAME="ref_1866_25" HREF="terminal_interface-curses__adb.htm#ref_1864_16">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1831_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1831_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_1832_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Txt</A></FONT>   : char_array;
++                        <FONT COLOR=red><A NAME="ref_1833_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Fmt</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Set, "slk_set");
+ 
+-      <FONT COLOR=red><A NAME="ref_1869_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_1870_7">Len</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_1836_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A>'Length);
++      <FONT COLOR=red><A NAME="ref_1837_7">Len</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1869_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1870_7">Len</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1864_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1869_7">Txt</A>,
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1506_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1837_7">Len</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1831_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1505_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>,
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1505_14">Set_Soft_Label_Key</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1879_14" HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1846_14" HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1881_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1848_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Refresh, "slk_refresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1881_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1848_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1889_14" HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1856_14" HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1891_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1858_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Noutrefresh, "slk_noutrefresh");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1891_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1858_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1899_14" HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1899_34" HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+-                                 <FONT COLOR=red><A NAME="ref_1900_34" HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A></FONT>  : <b>out</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1866_14" HREF="terminal_interface-curses__ads.htm#ref_1522_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1866_34" HREF="terminal_interface-curses__ads.htm#ref_1522_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
++                                 <FONT COLOR=red><A NAME="ref_1867_34" HREF="terminal_interface-curses__ads.htm#ref_1523_34">Text</A></FONT>  : <b>out</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1902_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1902_27" HREF="terminal_interface-curses__adb.htm#ref_1902_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1869_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_27" HREF="terminal_interface-curses__adb.htm#ref_1869_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Slk_Label, "slk_label");
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1902_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A>;
++      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1869_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1522_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1523_34">Text</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1522_14">Get_Soft_Label_Key</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1908_13" HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1908_33" HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>) <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1875_13" HREF="terminal_interface-curses__ads.htm#ref_1527_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_33" HREF="terminal_interface-curses__ads.htm#ref_1527_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>) <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1910_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1910_27" HREF="terminal_interface-curses__adb.htm#ref_1910_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1877_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_27" HREF="terminal_interface-curses__adb.htm#ref_1877_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Slk_Label, "slk_label");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1910_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A>)));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1877_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1527_33">Label</A>)));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_13">Get_Soft_Label_Key</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1916_14" HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1883_14" HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1918_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1885_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Clear, "slk_clear");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1918_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1885_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1926_14" HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1893_14" HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1928_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1895_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Restore, "slk_restore");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1928_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1895_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1936_14" HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1903_14" HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1938_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1905_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Touch, "slk_touch");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1938_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1905_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1946_14" HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1947_7" HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+-      <FONT COLOR=red><A NAME="ref_1948_7" HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A></FONT>   : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1914_7" HREF="terminal_interface-curses__ads.htm#ref_1549_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++      <FONT COLOR=red><A NAME="ref_1915_7" HREF="terminal_interface-curses__ads.htm#ref_1550_7">On</A></FONT>   : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1950_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1950_28" HREF="terminal_interface-curses__adb.htm#ref_1950_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1917_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1917_28" HREF="terminal_interface-curses__adb.htm#ref_1917_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Attron, "slk_attron");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1952_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1952_29" HREF="terminal_interface-curses__adb.htm#ref_1952_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1919_29" HREF="terminal_interface-curses__adb.htm#ref_1919_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Attroff, "slk_attroff");
+ 
+-      <FONT COLOR=red><A NAME="ref_1955_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <FONT COLOR=red><A NAME="ref_1956_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+-                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A>,
++      <FONT COLOR=red><A NAME="ref_1922_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_1923_7">Ch</A></FONT>  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
++                                              <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1549_7">Attr</A>,
+                                               <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1950_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_7">On</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Attron</A>  (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1952_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>));
++         <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1955_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1970_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_1971_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+-      <FONT COLOR=red><A NAME="ref_1972_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1938_7" HREF="terminal_interface-curses__ads.htm#ref_1557_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_1939_7" HREF="terminal_interface-curses__ads.htm#ref_1558_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1974_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1974_29" HREF="terminal_interface-curses__adb.htm#ref_1974_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1941_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1941_29" HREF="terminal_interface-curses__adb.htm#ref_1941_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Attrset, "slk_attrset");
+ 
+-      <FONT COLOR=red><A NAME="ref_1977_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
+-                                             <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>,
+-                                             <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A>);
++      <FONT COLOR=red><A NAME="ref_1944_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
++                                             <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1557_7">Attr</A>,
++                                             <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1558_7">Color</A>);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1974_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1977_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1941_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1944_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1986_13" HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1953_13" HREF="terminal_interface-curses__ads.htm#ref_1563_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1988_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1955_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
+ 
+-      <FONT COLOR=red><A NAME="ref_1991_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1988_16">Slk_Attr</A>;
++      <FONT COLOR=red><A NAME="ref_1958_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1955_16">Slk_Attr</A>;
+    <b>begin</b>
+-      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1991_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A>;
++      <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1958_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1563_13">Get_Soft_Label_Key_Attributes</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_1996_13" HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1963_13" HREF="terminal_interface-curses__ads.htm#ref_1567_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_1998_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1965_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
+ 
+-      <FONT COLOR=red><A NAME="ref_2001_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1998_16">Slk_Attr</A>;
++      <FONT COLOR=red><A NAME="ref_1968_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1965_16">Slk_Attr</A>;
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2001_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1968_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1567_13">Get_Soft_Label_Key_Attributes</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2006_14" HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2006_40" HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1973_14" HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1973_40" HREF="terminal_interface-curses__ads.htm#ref_1572_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2008_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2008_27" HREF="terminal_interface-curses__adb.htm#ref_2008_16">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_27" HREF="terminal_interface-curses__adb.htm#ref_1975_16">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Slk_Color, "slk_color");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2008_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1572_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2017_14" HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2017_26" HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+-                         <FONT COLOR=red><A NAME="ref_2018_26" HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A></FONT> : <b>in</b> Boolean := True)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1984_14" HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1984_26" HREF="terminal_interface-curses__ads.htm#ref_1586_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
++                         <FONT COLOR=red><A NAME="ref_1985_26" HREF="terminal_interface-curses__ads.htm#ref_1587_26">Enable</A></FONT> : <b>in</b> Boolean := True)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2020_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_2020_23" HREF="terminal_interface-curses__adb.htm#ref_2020_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                      <FONT COLOR=red><A NAME="ref_2021_23" HREF="terminal_interface-curses__adb.htm#ref_2020_16">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_1987_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_1987_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                      <FONT COLOR=red><A NAME="ref_1988_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">On_Off</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Keyok, "keyok");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2020_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A>)))
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1586_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1587_26">Enable</A>)))
+         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_26" HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A></FONT> : <b>in</b> String;
+-                         <FONT COLOR=red><A NAME="ref_2031_26" HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1997_14" HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A></FONT> : <b>in</b> String;
++                         <FONT COLOR=red><A NAME="ref_1998_26" HREF="terminal_interface-curses__ads.htm#ref_1597_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2033_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2033_24" HREF="terminal_interface-curses__adb.htm#ref_2033_16">Def</A></FONT> : char_array;
+-                       <FONT COLOR=red><A NAME="ref_2034_24" HREF="terminal_interface-curses__adb.htm#ref_2033_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2000_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2000_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Def</A></FONT> : char_array;
++                       <FONT COLOR=red><A NAME="ref_2001_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Defkey, "define_key");
+ 
+-      <FONT COLOR=red><A NAME="ref_2037_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_2038_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_2004_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A>'Length);
++      <FONT COLOR=red><A NAME="ref_2005_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2037_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2038_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2033_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2037_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1596_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2005_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2000_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1597_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2046_14" HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2046_26" HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+-                         <FONT COLOR=red><A NAME="ref_2047_26" HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A></FONT> : <b>out</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2013_14" HREF="terminal_interface-curses__ads.htm#ref_1622_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2013_26" HREF="terminal_interface-curses__ads.htm#ref_1622_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++                         <FONT COLOR=red><A NAME="ref_2014_26" HREF="terminal_interface-curses__ads.htm#ref_1623_26">Str</A></FONT> : <b>out</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2049_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2049_24" HREF="terminal_interface-curses__adb.htm#ref_2049_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2016_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2016_24" HREF="terminal_interface-curses__adb.htm#ref_2016_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Unctrl, "unctrl");
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2049_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A>;
++      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2016_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1622_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1623_26">Str</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1622_14">Un_Control</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2055_13" HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2055_25" HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2022_13" HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2022_25" HREF="terminal_interface-curses__ads.htm#ref_1627_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2057_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2057_24" HREF="terminal_interface-curses__adb.htm#ref_2057_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2024_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2024_24" HREF="terminal_interface-curses__adb.htm#ref_2024_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Unctrl, "unctrl");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2057_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A>)));
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2024_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1627_25">Ch</A>)));
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_13">Un_Control</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2063_14" HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2063_28" HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A></FONT> : <b>in</b> Natural)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_28" HREF="terminal_interface-curses__ads.htm#ref_1633_28">Msecs</A></FONT> : <b>in</b> Natural)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2065_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2065_29" HREF="terminal_interface-curses__adb.htm#ref_2065_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2032_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2032_29" HREF="terminal_interface-curses__adb.htm#ref_2032_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Delayoutput, "delay_output");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2065_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2032_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1633_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2073_14" HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2040_14" HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2075_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2042_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Flushinp, "flushinp");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2075_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>  <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2042_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>  <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2083_13" HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A></FONT> <b>return</b> Natural
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2050_13" HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A></FONT> <b>return</b> Natural
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2085_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2052_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Baud, "baudrate");
+    <b>begin</b>
+-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2085_16">Baud</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A>;
++      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2052_16">Baud</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2091_13" HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A></FONT> <b>return</b> Character
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2058_13" HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A></FONT> <b>return</b> Character
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2093_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2060_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Erasechar, "erasechar");
+    <b>begin</b>
+-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2093_16">Erasechar</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A>;
++      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2060_16">Erasechar</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2099_13" HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A></FONT> <b>return</b> Character
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2066_13" HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A></FONT> <b>return</b> Character
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2101_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2068_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Killchar, "killchar");
+    <b>begin</b>
+-      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2101_16">Killchar</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A>;
++      <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2068_16">Killchar</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2107_13" HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2074_13" HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2109_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Has_Ic, "has_ic");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2109_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2119_13" HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2086_13" HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2121_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2088_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Has_Il, "has_il");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2121_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2088_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2131_13" HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2098_13" HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2133_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2100_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+       <b>pragma</b> Import (C, Termattrs, "termattrs");
+ 
+-      <FONT COLOR=red><A NAME="ref_2136_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2133_16">Termattrs</A>);
++      <FONT COLOR=red><A NAME="ref_2103_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2100_16">Termattrs</A>);
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2136_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2103_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2141_14" HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A></FONT> : <b>out</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2108_14" HREF="terminal_interface-curses__ads.htm#ref_1677_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2108_25" HREF="terminal_interface-curses__ads.htm#ref_1677_25">Name</A></FONT> : <b>out</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2143_16">Longname</A></FONT> <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Longname</A></FONT> <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Longname, "longname");
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2143_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A>;
++      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1677_25">Name</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1677_14">Long_Name</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2149_13" HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A></FONT> <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2116_13" HREF="terminal_interface-curses__ads.htm#ref_1681_13">Long_Name</A></FONT> <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2151_16">Longname</A></FONT> <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2118_16">Longname</A></FONT> <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Longname, "longname");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2151_16">Longname</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2118_16">Longname</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_13">Long_Name</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2157_14" HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2157_29" HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A></FONT> : <b>out</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2124_14" HREF="terminal_interface-curses__ads.htm#ref_1687_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2124_29" HREF="terminal_interface-curses__ads.htm#ref_1687_29">Name</A></FONT> : <b>out</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2159_16">Termname</A></FONT> <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2126_16">Termname</A></FONT> <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Termname, "termname");
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2159_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A>;
++      <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2126_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1687_29">Name</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1687_14">Terminal_Name</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2165_13" HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A></FONT> <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1691_13">Terminal_Name</A></FONT> <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2167_16">Termname</A></FONT> <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termname</A></FONT> <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, Termname, "termname");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2167_16">Termname</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termname</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1691_13">Terminal_Name</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2173_14" HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2173_25" HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+-                        <FONT COLOR=red><A NAME="ref_2174_25" HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                        <FONT COLOR=red><A NAME="ref_2175_25" HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2177_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2177_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                         <FONT COLOR=red><A NAME="ref_2178_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                         <FONT COLOR=red><A NAME="ref_2179_26" HREF="terminal_interface-curses__adb.htm#ref_2177_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2140_14" HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2140_25" HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
++                        <FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                        <FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2144_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                         <FONT COLOR=red><A NAME="ref_2145_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                         <FONT COLOR=red><A NAME="ref_2146_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Initpair, "init_pair");
+    <b>begin</b>
+-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A> <b>then</b>
++      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A> <b>then</b>
+          <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+-        Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
++      <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
++        Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
+       <b>end</b> <b>if</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2177_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>))
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1712_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Back</A>))
+         = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2194_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2194_28" HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+-                           <FONT COLOR=red><A NAME="ref_2195_28" HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                           <FONT COLOR=red><A NAME="ref_2196_28" HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+-   <b>is</b>
+-      <b>type</b> <FONT COLOR=red><A NAME="ref_2198_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2199_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2199_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                            <FONT COLOR=red><A NAME="ref_2200_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2198_12">C_Short_Access</A>;
+-                            <FONT COLOR=red><A NAME="ref_2201_29" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2198_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2161_14" HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2161_28" HREF="terminal_interface-curses__ads.htm#ref_1719_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
++                           <FONT COLOR=red><A NAME="ref_2162_28" HREF="terminal_interface-curses__ads.htm#ref_1720_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                           <FONT COLOR=red><A NAME="ref_2163_28" HREF="terminal_interface-curses__ads.htm#ref_1721_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
++   <b>is</b>
++      <b>type</b> <FONT COLOR=red><A NAME="ref_2165_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2166_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2166_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                            <FONT COLOR=red><A NAME="ref_2167_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Fp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2165_12">C_Short_Access</A>;
++                            <FONT COLOR=red><A NAME="ref_2168_29" HREF="terminal_interface-curses__adb.htm#ref_2166_16">Bp</A></FONT>   : <A HREF="terminal_interface-curses__adb.htm#ref_2165_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Paircontent, "pair_content");
+ 
+-      <FONT COLOR=red><A NAME="ref_2204_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2204_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <FONT COLOR=red><A NAME="ref_2171_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2171_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2204_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2204_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2166_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1719_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2171_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2171_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2204_7">F</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2204_10">B</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1720_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2171_7">F</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1721_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2171_10">B</A>);
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2214_13" HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A></FONT> <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2181_13" HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A></FONT> <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2216_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2183_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Hascolors, "has_colors");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2216_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2183_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2226_14" HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2226_26" HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                         <FONT COLOR=red><A NAME="ref_2227_26" HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                         <FONT COLOR=red><A NAME="ref_2228_26" HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                         <FONT COLOR=red><A NAME="ref_2229_26" HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
+-   <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2231_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2231_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                          <FONT COLOR=red><A NAME="ref_2232_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                          <FONT COLOR=red><A NAME="ref_2233_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+-                          <FONT COLOR=red><A NAME="ref_2234_27" HREF="terminal_interface-curses__adb.htm#ref_2231_16">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2193_14" HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2193_26" HREF="terminal_interface-curses__ads.htm#ref_1731_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                         <FONT COLOR=red><A NAME="ref_2194_26" HREF="terminal_interface-curses__ads.htm#ref_1732_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                         <FONT COLOR=red><A NAME="ref_2195_26" HREF="terminal_interface-curses__ads.htm#ref_1733_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                         <FONT COLOR=red><A NAME="ref_2196_26" HREF="terminal_interface-curses__ads.htm#ref_1734_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
++   <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2198_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2198_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Col</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                          <FONT COLOR=red><A NAME="ref_2199_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Red</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                          <FONT COLOR=red><A NAME="ref_2200_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++                          <FONT COLOR=red><A NAME="ref_2201_27" HREF="terminal_interface-curses__adb.htm#ref_2198_16">Blue</A></FONT>  : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Initcolor, "init_color");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2231_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A>),
+-                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2198_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1731_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1732_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1733_26">Green</A>),
++                    <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1734_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+             <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2243_13" HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2210_13" HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2245_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2212_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+       <b>pragma</b> Import (C, Canchangecolor, "can_change_color");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2245_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2212_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2255_14" HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2255_29" HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                            <FONT COLOR=red><A NAME="ref_2256_29" HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                            <FONT COLOR=red><A NAME="ref_2257_29" HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                            <FONT COLOR=red><A NAME="ref_2258_29" HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2222_14" HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2222_29" HREF="terminal_interface-curses__ads.htm#ref_1744_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                            <FONT COLOR=red><A NAME="ref_2223_29" HREF="terminal_interface-curses__ads.htm#ref_1745_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                            <FONT COLOR=red><A NAME="ref_2224_29" HREF="terminal_interface-curses__ads.htm#ref_1746_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                            <FONT COLOR=red><A NAME="ref_2225_29" HREF="terminal_interface-curses__ads.htm#ref_1747_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
+    <b>is</b>
+-      <b>type</b> <FONT COLOR=red><A NAME="ref_2260_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <b>type</b> <FONT COLOR=red><A NAME="ref_2227_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ 
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2262_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2262_30" HREF="terminal_interface-curses__adb.htm#ref_2262_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2262_47" HREF="terminal_interface-curses__adb.htm#ref_2262_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2262_50" HREF="terminal_interface-curses__adb.htm#ref_2262_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2262_53" HREF="terminal_interface-curses__adb.htm#ref_2262_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2260_12">C_Short_Access</A>)
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2229_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2229_30" HREF="terminal_interface-curses__adb.htm#ref_2229_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2229_47" HREF="terminal_interface-curses__adb.htm#ref_2229_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2229_50" HREF="terminal_interface-curses__adb.htm#ref_2229_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2229_53" HREF="terminal_interface-curses__adb.htm#ref_2229_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2227_12">C_Short_Access</A>)
+                              <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Colorcontent, "color_content");
+ 
+-      <FONT COLOR=red><A NAME="ref_2266_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2266_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2266_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++      <FONT COLOR=red><A NAME="ref_2233_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2233_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2233_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2262_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2266_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2266_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2266_13">B</A>'<b>Access</b>) =
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2229_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1744_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2233_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2233_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2233_13">B</A>'<b>Access</b>) =
+         <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_7">R</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_10">G</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2266_13">B</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1745_29">Red</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_7">R</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1746_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_10">G</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1747_29">Blue</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2233_13">B</A>);
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2279_14" HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2279_32" HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2246_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2246_32" HREF="terminal_interface-curses__ads.htm#ref_1759_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2281_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2248_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Def_Prog_Mode, "def_prog_mode");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2283_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2250_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Def_Shell_Mode, "def_shell_mode");
+ 
+-      <FONT COLOR=red><A NAME="ref_2286_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_2253_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A> <b>is</b>
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2281_16">Def_Prog_Mode</A>;
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2283_16">Def_Shell_Mode</A>;
++      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_32">Mode</A> <b>is</b>
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2248_16">Def_Prog_Mode</A>;
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2250_16">Def_Shell_Mode</A>;
+       <b>end</b> <b>case</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2286_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2253_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2297_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2297_33" HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2264_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2264_33" HREF="terminal_interface-curses__ads.htm#ref_1765_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2299_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2266_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Reset_Prog_Mode, "reset_prog_mode");
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2301_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2268_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Reset_Shell_Mode, "reset_shell_mode");
+ 
+-      <FONT COLOR=red><A NAME="ref_2304_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_2271_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A> <b>is</b>
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2299_16">Reset_Prog_Mode</A>;
+-         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2301_16">Reset_Shell_Mode</A>;
++      <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_33">Mode</A> <b>is</b>
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2266_16">Reset_Prog_Mode</A>;
++         <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_33">Shell</A>  =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2268_16">Reset_Shell_Mode</A>;
+       <b>end</b> <b>case</b>;
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2304_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2315_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2282_14" HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2317_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2284_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Savetty, "savetty");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2317_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2325_14" HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2292_14" HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A></FONT>
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2327_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2294_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Resetty, "resetty");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2327_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2294_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2335_14" HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2335_29" HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A></FONT> : <b>in</b> Integer;
+-                            <FONT COLOR=red><A NAME="ref_2336_29" HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2302_14" HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2302_29" HREF="terminal_interface-curses__ads.htm#ref_1789_29">Lines</A></FONT> : <b>in</b> Integer;
++                            <FONT COLOR=red><A NAME="ref_2303_29" HREF="terminal_interface-curses__ads.htm#ref_1790_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2338_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2338_28" HREF="terminal_interface-curses__adb.htm#ref_2338_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                           <FONT COLOR=red><A NAME="ref_2339_28" HREF="terminal_interface-curses__adb.htm#ref_2338_16">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2305_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2305_28" HREF="terminal_interface-curses__adb.htm#ref_2305_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                           <FONT COLOR=red><A NAME="ref_2306_28" HREF="terminal_interface-curses__adb.htm#ref_2305_16">Proc</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Ripoffline, "_nc_ripoffline");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2338_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2305_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1789_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1790_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2347_14" HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2347_37" HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2314_14" HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2314_37" HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2349_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2349_26" HREF="terminal_interface-curses__adb.htm#ref_2349_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2316_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2316_26" HREF="terminal_interface-curses__adb.htm#ref_2316_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Curs_Set, "curs_set");
+ 
+-      <FONT COLOR=red><A NAME="ref_2352_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_2319_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2349_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A>));
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2352_7">Res</A>);
++      <A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2316_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A>));
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++         <A HREF="terminal_interface-curses__ads.htm#ref_1801_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2319_7">Res</A>);
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2360_14" HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2360_33" HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A></FONT> : <b>in</b> Natural)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2327_14" HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2327_33" HREF="terminal_interface-curses__ads.htm#ref_1806_33">Ms</A></FONT> : <b>in</b> Natural)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2362_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2362_23" HREF="terminal_interface-curses__adb.htm#ref_2362_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2329_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2329_23" HREF="terminal_interface-curses__adb.htm#ref_2329_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Napms, "napms");
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2362_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2329_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1806_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2338_13" HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++   <b>is</b>
++      <FONT COLOR=red><A NAME="ref_2340_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2340_7">Result</A>, "stdscr");
++   <b>begin</b>
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2340_7">Result</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2346_13" HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2373_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Stdscr</A>, "stdscr");
++      <FONT COLOR=red><A NAME="ref_2348_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2348_7">Result</A>, "curscr");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Stdscr</A>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
++      <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2348_7">Result</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2379_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2354_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2381_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2381_7">C_Lines</A>, "LINES");
++      <FONT COLOR=red><A NAME="ref_2356_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2356_7">Result</A>, "LINES");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2381_7">C_Lines</A>);
++      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2356_7">Result</A>);
+    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2387_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2362_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2389_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2389_7">C_Columns</A>, "COLS");
++      <FONT COLOR=red><A NAME="ref_2364_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2364_7">Result</A>, "COLS");
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2389_7">C_Columns</A>);
++      <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2364_7">Result</A>);
+    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2395_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2370_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2397_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2397_7">C_Tab_Size</A>, "TABSIZE");
++      <FONT COLOR=red><A NAME="ref_2372_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2372_7">Result</A>, "TABSIZE");
+    <b>begin</b>
+-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2397_7">C_Tab_Size</A>);
++      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2372_7">Result</A>);
+    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2403_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2378_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2405_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2405_7">C_Number_Of_Colors</A>, "COLORS");
++      <FONT COLOR=red><A NAME="ref_2380_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2380_7">Result</A>, "COLORS");
+    <b>begin</b>
+-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2405_7">C_Number_Of_Colors</A>);
++      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2380_7">Result</A>);
+    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>;
+ 
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2411_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2386_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
+    <b>is</b>
+-      <FONT COLOR=red><A NAME="ref_2413_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2413_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
++      <FONT COLOR=red><A NAME="ref_2388_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2388_7">Result</A>, "COLOR_PAIRS");
+    <b>begin</b>
+-      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2413_7">C_Number_Of_Color_Pairs</A>);
++      <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2388_7">Result</A>);
+    <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>;
++
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2419_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A></FONT>
+-     (<FONT COLOR=red><A NAME="ref_2420_7" HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-      <FONT COLOR=red><A NAME="ref_2421_7" HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_2422_7" HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_2423_7" HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1807_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1807_33">From_Screen</A>)
+-   <b>is</b>
+-      <b>type</b> <FONT COLOR=red><A NAME="ref_2425_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2426_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2426_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_2427_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2427_30" HREF="terminal_interface-curses__adb.htm#ref_2426_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2425_12">Int_Access</A>;
+-                          <FONT COLOR=red><A NAME="ref_2428_27" HREF="terminal_interface-curses__adb.htm#ref_2426_16">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2395_14" HREF="terminal_interface-curses__ads.htm#ref_1814_14">Transform_Coordinates</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_2396_7" HREF="terminal_interface-curses__ads.htm#ref_1815_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1818_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1813_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1813_33">From_Screen</A>)
++   <b>is</b>
++      <b>type</b> <FONT COLOR=red><A NAME="ref_2401_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2402_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2402_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">W</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                          <FONT COLOR=red><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2403_30" HREF="terminal_interface-curses__adb.htm#ref_2402_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2401_12">Int_Access</A>;
++                          <FONT COLOR=red><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2402_16">Dir</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, Transform, "wmouse_trafo");
+ 
+-      <FONT COLOR=red><A NAME="ref_2431_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A>);
+-      <FONT COLOR=red><A NAME="ref_2432_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>);
+-      <FONT COLOR=red><A NAME="ref_2433_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A>;
+-      <FONT COLOR=red><A NAME="ref_2434_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <FONT COLOR=red><A NAME="ref_2407_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A>);
++      <FONT COLOR=red><A NAME="ref_2408_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A>);
++      <FONT COLOR=red><A NAME="ref_2409_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>;
++      <FONT COLOR=red><A NAME="ref_2410_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1807_46">To_Screen</A> <b>then</b>
+-         <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">D</A> := 1;
++      <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1813_46">To_Screen</A> <b>then</b>
++         <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">D</A> := 1;
+       <b>end</b> <b>if</b>;
+-      <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2432_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2431_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">D</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++      <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2402_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1815_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2407_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">D</A>);
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>else</b>
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2432_7">Y</A>);
+-         <A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2431_7">X</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1816_7">Line</A>   := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">Y</A>);
++         <A HREF="terminal_interface-curses__ads.htm#ref_1817_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2407_7">X</A>);
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1814_14">Transform_Coordinates</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2448_14" HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A></FONT> <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2449_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2424_14" HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A></FONT> <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2425_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, C_Use_Default_Colors, "use_default_colors");
+-      <FONT COLOR=red><A NAME="ref_2451_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2449_16">C_Use_Default_Colors</A>;
++      <FONT COLOR=red><A NAME="ref_2427_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2425_16">C_Use_Default_Colors</A>;
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2451_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2427_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2458_14" HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2458_37" HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+-                                    <FONT COLOR=red><A NAME="ref_2459_37" HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2434_14" HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2434_37" HREF="terminal_interface-curses__ads.htm#ref_1836_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
++                                    <FONT COLOR=red><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_1837_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2461_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2461_41" HREF="terminal_interface-curses__adb.htm#ref_2461_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                                        <FONT COLOR=red><A NAME="ref_2462_41" HREF="terminal_interface-curses__adb.htm#ref_2461_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2437_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2437_41" HREF="terminal_interface-curses__adb.htm#ref_2437_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                                        <FONT COLOR=red><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2437_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, C_Assume_Default_Colors, "assume_default_colors");
+ 
+-      <FONT COLOR=red><A NAME="ref_2465_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2461_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A>),
+-                                                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A>));
++      <FONT COLOR=red><A NAME="ref_2441_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2437_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1836_37">Fore</A>),
++                                                       <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1837_37">Back</A>));
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2465_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2441_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A></FONT> <b>return</b> String
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2449_13" HREF="terminal_interface-curses__ads.htm#ref_1846_13">Curses_Version</A></FONT> <b>return</b> String
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2475_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2451_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
+       <b>pragma</b> Import (C, curses_versionC, "curses_version");
+-      <FONT COLOR=red><A NAME="ref_2477_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">curses_versionC</A>;
++      <FONT COLOR=red><A NAME="ref_2453_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2451_16">curses_versionC</A>;
+    <b>begin</b>
+-      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2477_7">Result</A>);
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A>;
++      <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2453_7">Result</A>);
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1846_13">Curses_Version</A>;
++<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2458_14" HREF="terminal_interface-curses__ads.htm#ref_1859_14">Curses_Free_All</A></FONT> <b>is</b>
++      <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_17">curses_freeall</A></FONT>;
++      <b>pragma</b> Import (C, curses_freeall, "_nc_freeall");
++   <b>begin</b>
++      <FONT COLOR=green><EM>--  Use this only for testing: you cannot use curses after calling it,</EM></FONT>
++      <FONT COLOR=green><EM>--  so it has to be the "last" thing done before exiting the program.</EM></FONT>
++      <FONT COLOR=green><EM>--  This will not really free ALL of memory used by curses.  That is</EM></FONT>
++      <FONT COLOR=green><EM>--  because it cannot free the memory used for stdout's setbuf.  The</EM></FONT>
++      <FONT COLOR=green><EM>--  _nc_free_and_exit() procedure can do that, but it can be invoked</EM></FONT>
++      <FONT COLOR=green><EM>--  safely only from C - and again, that only as the "last" thing done</EM></FONT>
++      <FONT COLOR=green><EM>--  before exiting the program.</EM></FONT>
++      <A HREF="terminal_interface-curses__adb.htm#ref_2459_17">curses_freeall</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1859_14">Curses_Free_All</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>function</b> <FONT COLOR=red><A NAME="ref_2482_13" HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2482_33" HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
++   <b>function</b> <FONT COLOR=red><A NAME="ref_2472_13" HREF="terminal_interface-curses__ads.htm#ref_1851_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2472_33" HREF="terminal_interface-curses__ads.htm#ref_1851_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2484_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2484_37" HREF="terminal_interface-curses__adb.htm#ref_2484_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2474_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2474_37" HREF="terminal_interface-curses__adb.htm#ref_2474_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, use_extended_namesC, "use_extended_names");
+ 
+-      <FONT COLOR=red><A NAME="ref_2487_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
+-         <A HREF="terminal_interface-curses__adb.htm#ref_2484_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A>)));
++      <FONT COLOR=red><A NAME="ref_2477_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
++         <A HREF="terminal_interface-curses__adb.htm#ref_2474_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1851_33">Enable</A>)));
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2487_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1931_4">Curses_Bool_False</A>) <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2477_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>) <b>then</b>
+          <b>return</b> False;
+       <b>else</b>
+          <b>return</b> True;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1851_13">Use_Extended_Names</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2497_14" HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2497_35" HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A></FONT> : <b>in</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2487_14" HREF="terminal_interface-curses__ads.htm#ref_1867_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2487_35" HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A></FONT> : <b>in</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2499_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2499_26" HREF="terminal_interface-curses__adb.htm#ref_2499_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2489_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2489_26" HREF="terminal_interface-curses__adb.htm#ref_2489_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, scr_dump, "scr_dump");
+-      <FONT COLOR=red><A NAME="ref_2501_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_2502_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_2491_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A>'Length);
++      <FONT COLOR=red><A NAME="ref_2492_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2501_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2499_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2501_7">Txt</A>) <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1867_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2491_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2489_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2491_7">Txt</A>) <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1867_14">Screen_Dump_To_File</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2510_14" HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2510_40" HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A></FONT> : <b>in</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2500_14" HREF="terminal_interface-curses__ads.htm#ref_1871_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2500_40" HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A></FONT> : <b>in</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2512_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2512_29" HREF="terminal_interface-curses__adb.htm#ref_2512_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2502_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2502_29" HREF="terminal_interface-curses__adb.htm#ref_2502_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, scr_restore, "scr_restore");
+-      <FONT COLOR=red><A NAME="ref_2514_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_2515_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_2504_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A>'Length);
++      <FONT COLOR=red><A NAME="ref_2505_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2514_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2512_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2514_7">Txt</A>)  <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1871_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2504_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2502_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2504_7">Txt</A>)  <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1871_14">Screen_Restore_From_File</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2523_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2523_37" HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A></FONT> : <b>in</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2513_14" HREF="terminal_interface-curses__ads.htm#ref_1875_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2513_37" HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A></FONT> : <b>in</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2525_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2525_26" HREF="terminal_interface-curses__adb.htm#ref_2525_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2515_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2515_26" HREF="terminal_interface-curses__adb.htm#ref_2515_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, scr_init, "scr_init");
+-      <FONT COLOR=red><A NAME="ref_2527_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_2528_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_2517_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A>'Length);
++      <FONT COLOR=red><A NAME="ref_2518_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2527_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2525_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2527_7">Txt</A>) <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1875_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2517_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2515_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2517_7">Txt</A>) <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1875_14">Screen_Init_From_File</A>;
+ 
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2536_14" HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2536_31" HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A></FONT> : <b>in</b> String)
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2526_14" HREF="terminal_interface-curses__ads.htm#ref_1879_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2526_31" HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A></FONT> : <b>in</b> String)
+    <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2538_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2538_25" HREF="terminal_interface-curses__adb.htm#ref_2538_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2528_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2528_25" HREF="terminal_interface-curses__adb.htm#ref_2528_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, scr_set, "scr_set");
+-      <FONT COLOR=red><A NAME="ref_2540_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>'Length);
+-      <FONT COLOR=red><A NAME="ref_2541_7">Length</A></FONT> : size_t;
++      <FONT COLOR=red><A NAME="ref_2530_7">Txt</A></FONT>    : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A>'Length);
++      <FONT COLOR=red><A NAME="ref_2531_7">Length</A></FONT> : size_t;
+    <b>begin</b>
+-      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2540_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Length</A>);
+-      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2538_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2540_7">Txt</A>) <b>then</b>
++      To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1879_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2530_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Length</A>);
++      <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2528_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2530_7">Txt</A>) <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1879_14">Screen_Set_File</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2549_14" HREF="terminal_interface-curses__ads.htm#ref_1897_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2549_22" HREF="terminal_interface-curses__ads.htm#ref_1897_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+-                     <FONT COLOR=red><A NAME="ref_2550_22" HREF="terminal_interface-curses__ads.htm#ref_1898_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+-                     <FONT COLOR=red><A NAME="ref_2551_22" HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
+-      <b>function</b> <FONT COLOR=red><A NAME="ref_2552_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2552_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        <FONT COLOR=red><A NAME="ref_2553_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-                        <FONT COLOR=red><A NAME="ref_2554_25" HREF="terminal_interface-curses__adb.htm#ref_2552_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_2539_14" HREF="terminal_interface-curses__ads.htm#ref_1911_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2539_22" HREF="terminal_interface-curses__ads.htm#ref_1911_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_1912_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                     <FONT COLOR=red><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
++      <b>function</b> <FONT COLOR=red><A NAME="ref_2542_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2542_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">lines</A></FONT>   : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++                        <FONT COLOR=red><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2542_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+       <b>pragma</b> Import (C, wresize);
+    <b>begin</b>
+-      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2552_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1897_22">Win</A>,
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1898_22">Number_Of_Lines</A>),
+-                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++      <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2542_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1911_22">Win</A>,
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1912_22">Number_Of_Lines</A>),
++                  <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1913_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+          <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+       <b>end</b> <b>if</b>;
+-   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1897_14">Resize</A>;
++   <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1911_14">Resize</A>;
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+ <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
+Index: doc/html/ada/terminal_interface-curses__ads.htm
+--- ncurses-5.6/doc/html/ada/terminal_interface-curses__ads.htm	2006-09-23 20:31:33.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ada/terminal_interface-curses__ads.htm	2007-09-01 23:56:32.000000000 +0000
+@@ -3,7 +3,6 @@
+ <BODY>
+ <HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
+ <PRE>
+-
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>--                           <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding                           --</EM></FONT>
+@@ -13,7 +12,7 @@
+ <FONT COLOR=green><EM>--                                 S P E C                                  --</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              --</EM></FONT>
++<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              --</EM></FONT>
+ <FONT COLOR=green><EM>--                                                                          --</EM></FONT>
+ <FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a  --</EM></FONT>
+ <FONT COLOR=green><EM>-- copy of this software and associated documentation files (the            --</EM></FONT>
+@@ -41,296 +40,296 @@
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--  Author:  Juergen Pfeifer, 1996</EM></FONT>
+ <FONT COLOR=green><EM>--  Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>--  @Revision: 1.37 @</EM></FONT>
+-<FONT COLOR=green><EM>--  @Date: 2006/06/25 14:30:22 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Revision: 1.41 @</EM></FONT>
++<FONT COLOR=green><EM>--  @Date: 2007/05/05 20:33:52 @</EM></FONT>
+ <FONT COLOR=green><EM>--  Binding Version 01.00</EM></FONT>
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ <FONT COLOR=green><EM>--  curses binding.</EM></FONT>
+ <FONT COLOR=green><EM>--  This module is generated. Please don't change it manually!</EM></FONT>
+ <FONT COLOR=green><EM>--  Run the generator instead.</EM></FONT>
+ <FONT COLOR=green><EM>--  |</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">System</A>.Storage_Elements;
+-<b>with</b> Interfaces.C;   <FONT COLOR=green><EM>--  We need this for some assertions.</EM></FONT>
++<b>with</b> System.Storage_Elements;
++<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;   <FONT COLOR=green><EM>--  We need this for some assertions.</EM></FONT>
+ 
+-<b>package</b> Terminal_Interface.Curses <b>is</b>
+-   <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></FONT> <b>is</b>
++   <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>);
+    <b>pragma</b> Linker_Options ("-lncurses");
+ 
+-   <FONT COLOR=red><A NAME="ref_54_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Major version of the library</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_55_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
+-   NC_Version : <b>constant</b> String := "5.5";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>--  Major version of the library</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 6; <FONT COLOR=green><EM>--  Minor version of the library</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.6";  <FONT COLOR=green><EM>--  Version of library</EM></FONT>
+ 
+-   <b>type</b> Window <b>is</b> <b>private</b>;
+-   Null_Window : <b>constant</b> Window;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Window</A></FONT> <b>is</b> <b>private</b>;
++   <FONT COLOR=red><A NAME="ref_58_4">Null_Window</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ 
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
+-   <b>type</b> Column_Position <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  column coordinate</EM></FONT>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Line_Position</A></FONT>   <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  line coordinate</EM></FONT>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Column_Position</A></FONT> <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>--  column coordinate</EM></FONT>
+ 
+-   <b>subtype</b> Line_Count   <b>is</b> Line_Position   <b>range</b> 1 .. Line_Position'Last;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_63_12">Line_Count</A></FONT>   <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>   <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+    <FONT COLOR=green><EM>--  Type to count lines. We do not allow null windows, so must be positive</EM></FONT>
+-   <b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Column_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+    <FONT COLOR=green><EM>--  Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
+ 
+-   <b>type</b> Key_Code <b>is</b> <b>new</b> Integer;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Key_Code</A></FONT> <b>is</b> <b>new</b> Integer;
+    <FONT COLOR=green><EM>--  That is anything including real characters, special keys and logical</EM></FONT>
+    <FONT COLOR=green><EM>--  request codes.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  FIXME: The "-1" should be Curses_Err</EM></FONT>
+-   <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> -1 .. 8#777#;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Real_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> -1 .. 8#777#;
+    <FONT COLOR=green><EM>--  This are the codes that potentially represent a real keystroke.</EM></FONT>
+    <FONT COLOR=green><EM>--  Not all codes may be possible on a specific terminal. To check the</EM></FONT>
+    <FONT COLOR=green><EM>--  availability of a special key, the Has_Key function is provided.</EM></FONT>
+ 
+-   <b>subtype</b> Special_Key_Code <b>is</b> Real_Key_Code
+-     <b>range</b> 8#400# .. Real_Key_Code'Last;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Special_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
++     <b>range</b> 8#400# .. <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>'Last;
+    <FONT COLOR=green><EM>--  Type for a function- or special key number</EM></FONT>
+ 
+-   <b>subtype</b> Normal_Key_Code <b>is</b> Real_Key_Code <b>range</b>
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_82_12">Normal_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> <b>range</b>
+      Character'Pos (Character'First) .. Character'Pos (Character'Last);
+    <FONT COLOR=green><EM>--  This are the codes for regular (incl. non-graphical) characters.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  Constants for function- and special keys</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_89_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+-   <FONT COLOR=red><A NAME="ref_90_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+-   <FONT COLOR=red><A NAME="ref_91_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+-   <FONT COLOR=red><A NAME="ref_92_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+-   <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
+-   <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
+-   <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
+-   <FONT COLOR=red><A NAME="ref_96_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
+-   <FONT COLOR=red><A NAME="ref_97_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
+-   <FONT COLOR=red><A NAME="ref_98_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
+-   <FONT COLOR=red><A NAME="ref_99_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
+-   <FONT COLOR=red><A NAME="ref_100_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
+-   <FONT COLOR=red><A NAME="ref_101_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
+-   <FONT COLOR=red><A NAME="ref_102_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
+-   <FONT COLOR=red><A NAME="ref_103_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
+-   <FONT COLOR=red><A NAME="ref_104_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
+-   <FONT COLOR=red><A NAME="ref_105_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
+-   <FONT COLOR=red><A NAME="ref_106_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
+-   <FONT COLOR=red><A NAME="ref_107_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
+-   <FONT COLOR=red><A NAME="ref_108_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
+-   <FONT COLOR=red><A NAME="ref_109_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
+-   <FONT COLOR=red><A NAME="ref_110_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
+-   <FONT COLOR=red><A NAME="ref_111_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
+-   <FONT COLOR=red><A NAME="ref_112_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
+-   <FONT COLOR=red><A NAME="ref_113_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
+-   <FONT COLOR=red><A NAME="ref_114_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
+-   <FONT COLOR=red><A NAME="ref_115_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
+-   <FONT COLOR=red><A NAME="ref_116_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
+-   <FONT COLOR=red><A NAME="ref_117_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
+-   <FONT COLOR=red><A NAME="ref_118_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
+-   <FONT COLOR=red><A NAME="ref_119_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
+-   <FONT COLOR=red><A NAME="ref_120_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
+-   <FONT COLOR=red><A NAME="ref_121_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
+-   <FONT COLOR=red><A NAME="ref_122_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
+-   <FONT COLOR=red><A NAME="ref_123_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
+-   <FONT COLOR=red><A NAME="ref_124_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
+-   <FONT COLOR=red><A NAME="ref_125_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
+-   <FONT COLOR=red><A NAME="ref_126_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
+-   <FONT COLOR=red><A NAME="ref_127_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
+-   <FONT COLOR=red><A NAME="ref_128_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
+-   <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
+-   <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
+-   <FONT COLOR=red><A NAME="ref_131_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
+-   <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
+-   <FONT COLOR=red><A NAME="ref_133_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
+-   <FONT COLOR=red><A NAME="ref_134_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
+-   <FONT COLOR=red><A NAME="ref_135_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
+-   <FONT COLOR=red><A NAME="ref_136_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
+-   <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
+-   <FONT COLOR=red><A NAME="ref_138_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
+-   <FONT COLOR=red><A NAME="ref_139_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
+-   <FONT COLOR=red><A NAME="ref_140_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
+-   <FONT COLOR=red><A NAME="ref_141_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
+-   <FONT COLOR=red><A NAME="ref_142_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
+-   <FONT COLOR=red><A NAME="ref_143_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
+-   <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
+-   <FONT COLOR=red><A NAME="ref_145_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
+-   <FONT COLOR=red><A NAME="ref_146_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
+-   <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
+-   <FONT COLOR=red><A NAME="ref_148_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
+-   <FONT COLOR=red><A NAME="ref_149_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
+-   <FONT COLOR=red><A NAME="ref_150_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
+-   <FONT COLOR=red><A NAME="ref_151_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
+-   <FONT COLOR=red><A NAME="ref_152_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
+-   <FONT COLOR=red><A NAME="ref_153_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
+-   <FONT COLOR=red><A NAME="ref_154_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
+-   <FONT COLOR=red><A NAME="ref_155_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
+-   <FONT COLOR=red><A NAME="ref_156_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
+-   <FONT COLOR=red><A NAME="ref_157_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
+-   <FONT COLOR=red><A NAME="ref_158_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
+-   <FONT COLOR=red><A NAME="ref_159_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
+-   <FONT COLOR=red><A NAME="ref_160_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
+-   <FONT COLOR=red><A NAME="ref_161_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
+-   <FONT COLOR=red><A NAME="ref_162_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
+-   <FONT COLOR=red><A NAME="ref_163_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
+-   <FONT COLOR=red><A NAME="ref_164_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
+-   <FONT COLOR=red><A NAME="ref_165_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
+-   <FONT COLOR=red><A NAME="ref_166_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
+-   <FONT COLOR=red><A NAME="ref_167_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
+-   <FONT COLOR=red><A NAME="ref_168_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
+-   <FONT COLOR=red><A NAME="ref_169_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
+-   <FONT COLOR=red><A NAME="ref_170_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
+-   <FONT COLOR=red><A NAME="ref_171_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
+-   <FONT COLOR=red><A NAME="ref_172_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
+-   <FONT COLOR=red><A NAME="ref_173_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
+-   <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
+-   <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
+-   <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
+-   <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
+-   <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
+-   <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
+-   <FONT COLOR=red><A NAME="ref_180_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
+-   <FONT COLOR=red><A NAME="ref_181_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
+-   <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
+-   <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
+-   <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
+-   <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
+-   <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
+-   <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
+-   <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
+-   <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
+-   <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
+-   <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
+-   <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
+-   <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
+-   <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
+-   <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
+-   <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
+-   <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
+-   <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
+-   <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
+-   <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
+-   <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
+-   <FONT COLOR=red><A NAME="ref_202_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
+-   <FONT COLOR=red><A NAME="ref_203_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
+-   <FONT COLOR=red><A NAME="ref_204_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
+-   <FONT COLOR=red><A NAME="ref_205_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
+-   Key_Resize                     : <b>constant</b> Special_Key_Code := 8#632#;
++   <FONT COLOR=red><A NAME="ref_88_4">Key_None</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
++   <FONT COLOR=red><A NAME="ref_89_4">Key_Code_Yes</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
++   <FONT COLOR=red><A NAME="ref_90_4">Key_Min</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
++   <FONT COLOR=red><A NAME="ref_91_4">Key_Break</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
++   <FONT COLOR=red><A NAME="ref_92_4">Key_Cursor_Down</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
++   <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Up</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
++   <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Left</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
++   <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Right</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
++   <FONT COLOR=red><A NAME="ref_96_4">Key_Home</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
++   <FONT COLOR=red><A NAME="ref_97_4">Key_Backspace</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
++   <FONT COLOR=red><A NAME="ref_98_4">Key_F0</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
++   <FONT COLOR=red><A NAME="ref_99_4">Key_F1</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
++   <FONT COLOR=red><A NAME="ref_100_4">Key_F2</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
++   <FONT COLOR=red><A NAME="ref_101_4">Key_F3</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
++   <FONT COLOR=red><A NAME="ref_102_4">Key_F4</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
++   <FONT COLOR=red><A NAME="ref_103_4">Key_F5</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
++   <FONT COLOR=red><A NAME="ref_104_4">Key_F6</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
++   <FONT COLOR=red><A NAME="ref_105_4">Key_F7</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
++   <FONT COLOR=red><A NAME="ref_106_4">Key_F8</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
++   <FONT COLOR=red><A NAME="ref_107_4">Key_F9</A></FONT>                         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
++   <FONT COLOR=red><A NAME="ref_108_4">Key_F10</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
++   <FONT COLOR=red><A NAME="ref_109_4">Key_F11</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
++   <FONT COLOR=red><A NAME="ref_110_4">Key_F12</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
++   <FONT COLOR=red><A NAME="ref_111_4">Key_F13</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
++   <FONT COLOR=red><A NAME="ref_112_4">Key_F14</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
++   <FONT COLOR=red><A NAME="ref_113_4">Key_F15</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
++   <FONT COLOR=red><A NAME="ref_114_4">Key_F16</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
++   <FONT COLOR=red><A NAME="ref_115_4">Key_F17</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
++   <FONT COLOR=red><A NAME="ref_116_4">Key_F18</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
++   <FONT COLOR=red><A NAME="ref_117_4">Key_F19</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
++   <FONT COLOR=red><A NAME="ref_118_4">Key_F20</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
++   <FONT COLOR=red><A NAME="ref_119_4">Key_F21</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
++   <FONT COLOR=red><A NAME="ref_120_4">Key_F22</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
++   <FONT COLOR=red><A NAME="ref_121_4">Key_F23</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
++   <FONT COLOR=red><A NAME="ref_122_4">Key_F24</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
++   <FONT COLOR=red><A NAME="ref_123_4">Key_Delete_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
++   <FONT COLOR=red><A NAME="ref_124_4">Key_Insert_Line</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
++   <FONT COLOR=red><A NAME="ref_125_4">Key_Delete_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
++   <FONT COLOR=red><A NAME="ref_126_4">Key_Insert_Char</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
++   <FONT COLOR=red><A NAME="ref_127_4">Key_Exit_Insert_Mode</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
++   <FONT COLOR=red><A NAME="ref_128_4">Key_Clear_Screen</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
++   <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_End_Of_Screen</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
++   <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
++   <FONT COLOR=red><A NAME="ref_131_4">Key_Scroll_1_Forward</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
++   <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Backward</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
++   <FONT COLOR=red><A NAME="ref_133_4">Key_Next_Page</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
++   <FONT COLOR=red><A NAME="ref_134_4">Key_Previous_Page</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
++   <FONT COLOR=red><A NAME="ref_135_4">Key_Set_Tab</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
++   <FONT COLOR=red><A NAME="ref_136_4">Key_Clear_Tab</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
++   <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_All_Tabs</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
++   <FONT COLOR=red><A NAME="ref_138_4">Key_Enter_Or_Send</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
++   <FONT COLOR=red><A NAME="ref_139_4">Key_Soft_Reset</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
++   <FONT COLOR=red><A NAME="ref_140_4">Key_Reset</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
++   <FONT COLOR=red><A NAME="ref_141_4">Key_Print</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
++   <FONT COLOR=red><A NAME="ref_142_4">Key_Bottom</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
++   <FONT COLOR=red><A NAME="ref_143_4">Key_Upper_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
++   <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
++   <FONT COLOR=red><A NAME="ref_145_4">Key_Center_Of_Keypad</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
++   <FONT COLOR=red><A NAME="ref_146_4">Key_Lower_Left_Of_Keypad</A></FONT>       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
++   <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Right_Of_Keypad</A></FONT>      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
++   <FONT COLOR=red><A NAME="ref_148_4">Key_Back_Tab</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
++   <FONT COLOR=red><A NAME="ref_149_4">Key_Beginning</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
++   <FONT COLOR=red><A NAME="ref_150_4">Key_Cancel</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
++   <FONT COLOR=red><A NAME="ref_151_4">Key_Close</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
++   <FONT COLOR=red><A NAME="ref_152_4">Key_Command</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
++   <FONT COLOR=red><A NAME="ref_153_4">Key_Copy</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
++   <FONT COLOR=red><A NAME="ref_154_4">Key_Create</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
++   <FONT COLOR=red><A NAME="ref_155_4">Key_End</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
++   <FONT COLOR=red><A NAME="ref_156_4">Key_Exit</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
++   <FONT COLOR=red><A NAME="ref_157_4">Key_Find</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
++   <FONT COLOR=red><A NAME="ref_158_4">Key_Help</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
++   <FONT COLOR=red><A NAME="ref_159_4">Key_Mark</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
++   <FONT COLOR=red><A NAME="ref_160_4">Key_Message</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
++   <FONT COLOR=red><A NAME="ref_161_4">Key_Move</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
++   <FONT COLOR=red><A NAME="ref_162_4">Key_Next</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
++   <FONT COLOR=red><A NAME="ref_163_4">Key_Open</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
++   <FONT COLOR=red><A NAME="ref_164_4">Key_Options</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
++   <FONT COLOR=red><A NAME="ref_165_4">Key_Previous</A></FONT>                   : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
++   <FONT COLOR=red><A NAME="ref_166_4">Key_Redo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
++   <FONT COLOR=red><A NAME="ref_167_4">Key_Reference</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
++   <FONT COLOR=red><A NAME="ref_168_4">Key_Refresh</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
++   <FONT COLOR=red><A NAME="ref_169_4">Key_Replace</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
++   <FONT COLOR=red><A NAME="ref_170_4">Key_Restart</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
++   <FONT COLOR=red><A NAME="ref_171_4">Key_Resume</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
++   <FONT COLOR=red><A NAME="ref_172_4">Key_Save</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
++   <FONT COLOR=red><A NAME="ref_173_4">Key_Shift_Begin</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
++   <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Cancel</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
++   <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Command</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
++   <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Copy</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
++   <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Create</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
++   <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Delete_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
++   <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Line</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
++   <FONT COLOR=red><A NAME="ref_180_4">Key_Select</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
++   <FONT COLOR=red><A NAME="ref_181_4">Key_Shift_End</A></FONT>                  : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
++   <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_Clear_End_Of_Line</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
++   <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Exit</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
++   <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Find</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
++   <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Help</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
++   <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Home</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
++   <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Insert_Char</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
++   <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Cursor_Left</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
++   <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Message</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
++   <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Move</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
++   <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Next_Page</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
++   <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Options</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
++   <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Previous_Page</A></FONT>        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
++   <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Print</A></FONT>                : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
++   <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Redo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
++   <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Replace</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
++   <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Cursor_Right</A></FONT>         : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
++   <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Resume</A></FONT>               : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
++   <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Save</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
++   <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Suspend</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
++   <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Undo</A></FONT>                 : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
++   <FONT COLOR=red><A NAME="ref_202_4">Key_Suspend</A></FONT>                    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
++   <FONT COLOR=red><A NAME="ref_203_4">Key_Undo</A></FONT>                       : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
++   <FONT COLOR=red><A NAME="ref_204_4">Key_Mouse</A></FONT>                      : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
++   <FONT COLOR=red><A NAME="ref_205_4">Key_Resize</A></FONT>                     : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#632#;
+ 
+-   Key_Max                        : <b>constant</b> Special_Key_Code
+-     := Special_Key_Code'Last;
++   <FONT COLOR=red><A NAME="ref_207_4">Key_Max</A></FONT>                        : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>
++     := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>'Last;
+ 
+-   <b>subtype</b> User_Key_Code <b>is</b> Key_Code
+-     <b>range</b> (Key_Max + 129) .. Key_Code'Last;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_210_12">User_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
++     <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>'Last;
+    <FONT COLOR=green><EM>--  This is reserved for user defined key codes. The range between Key_Max</EM></FONT>
+    <FONT COLOR=green><EM>--  and the first user code is reserved for subsystems like menu and forms.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  For those who like to use the original key names we produce them were</EM></FONT>
+    <FONT COLOR=green><EM>--  they differ from the original. Please note that they may differ in</EM></FONT>
+    <FONT COLOR=green><EM>--  lower/upper case.</EM></FONT>
+-   KEY_DOWN         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Down</A>;
+-   KEY_UP           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Up</A>;
+-   KEY_LEFT         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Left</A>;
+-   KEY_RIGHT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Cursor_Right</A>;
+-   KEY_DL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Delete_Line</A>;
+-   KEY_IL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Insert_Line</A>;
+-   KEY_DC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Delete_Char</A>;
+-   KEY_IC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Insert_Char</A>;
+-   KEY_EIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Exit_Insert_Mode</A>;
+-   KEY_CLEAR        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_Screen</A>;
+-   KEY_EOS          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Screen</A>;
+-   KEY_EOL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Clear_End_Of_Line</A>;
+-   KEY_SF           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Forward</A>;
+-   KEY_SR           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Scroll_1_Backward</A>;
+-   KEY_NPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Next_Page</A>;
+-   KEY_PPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Previous_Page</A>;
+-   KEY_STAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Set_Tab</A>;
+-   KEY_CTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_Tab</A>;
+-   KEY_CATAB        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Clear_All_Tabs</A>;
+-   KEY_ENTER        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Enter_Or_Send</A>;
+-   KEY_SRESET       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Soft_Reset</A>;
+-   KEY_LL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Bottom</A>;
+-   KEY_A1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Left_Of_Keypad</A>;
+-   KEY_A3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Upper_Right_Of_Keypad</A>;
+-   KEY_B2           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Center_Of_Keypad</A>;
+-   KEY_C1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Left_Of_Keypad</A>;
+-   KEY_C3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Lower_Right_Of_Keypad</A>;
+-   KEY_BTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Back_Tab</A>;
+-   KEY_BEG          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Beginning</A>;
+-   KEY_SBEG         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Begin</A>;
+-   KEY_SCANCEL      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Cancel</A>;
+-   KEY_SCOMMAND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Command</A>;
+-   KEY_SCOPY        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Copy</A>;
+-   KEY_SCREATE      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Create</A>;
+-   KEY_SDC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Char</A>;
+-   KEY_SDL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_Delete_Line</A>;
+-   KEY_SEND         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_End</A>;
+-   KEY_SEOL         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Clear_End_Of_Line</A>;
+-   KEY_SEXIT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Exit</A>;
+-   KEY_SFIND        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Find</A>;
+-   KEY_SHELP        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Help</A>;
+-   KEY_SHOME        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Home</A>;
+-   KEY_SIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Insert_Char</A>;
+-   KEY_SLEFT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Cursor_Left</A>;
+-   KEY_SMESSAGE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Message</A>;
+-   KEY_SMOVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Move</A>;
+-   KEY_SNEXT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Next_Page</A>;
+-   KEY_SOPTIONS     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Options</A>;
+-   KEY_SPREVIOUS    : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Previous_Page</A>;
+-   KEY_SPRINT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Print</A>;
+-   KEY_SREDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Redo</A>;
+-   KEY_SREPLACE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Replace</A>;
+-   KEY_SRIGHT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Cursor_Right</A>;
+-   KEY_SRSUME       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Resume</A>;
+-   KEY_SSAVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Save</A>;
+-   KEY_SSUSPEND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Suspend</A>;
+-   KEY_SUNDO        : Special_Key_Code <b>renames</b> Key_Shift_Undo;
++   KEY_DOWN         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_92_4">Key_Cursor_Down</A>;
++   KEY_UP           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Up</A>;
++   KEY_LEFT         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Left</A>;
++   KEY_RIGHT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Right</A>;
++   KEY_DL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Delete_Line</A>;
++   KEY_IL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Insert_Line</A>;
++   KEY_DC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Delete_Char</A>;
++   KEY_IC           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Insert_Char</A>;
++   KEY_EIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Exit_Insert_Mode</A>;
++   KEY_CLEAR        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Clear_Screen</A>;
++   KEY_EOS          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_End_Of_Screen</A>;
++   KEY_EOL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Line</A>;
++   KEY_SF           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Scroll_1_Forward</A>;
++   KEY_SR           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Backward</A>;
++   KEY_NPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Next_Page</A>;
++   KEY_PPAGE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Previous_Page</A>;
++   KEY_STAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Set_Tab</A>;
++   KEY_CTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Clear_Tab</A>;
++   KEY_CATAB        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_All_Tabs</A>;
++   KEY_ENTER        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Enter_Or_Send</A>;
++   KEY_SRESET       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Soft_Reset</A>;
++   KEY_LL           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Bottom</A>;
++   KEY_A1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Upper_Left_Of_Keypad</A>;
++   KEY_A3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Right_Of_Keypad</A>;
++   KEY_B2           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Center_Of_Keypad</A>;
++   KEY_C1           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Lower_Left_Of_Keypad</A>;
++   KEY_C3           : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Right_Of_Keypad</A>;
++   KEY_BTAB         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Back_Tab</A>;
++   KEY_BEG          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Beginning</A>;
++   KEY_SBEG         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Shift_Begin</A>;
++   KEY_SCANCEL      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Cancel</A>;
++   KEY_SCOMMAND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Command</A>;
++   KEY_SCOPY        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Copy</A>;
++   KEY_SCREATE      : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Create</A>;
++   KEY_SDC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Delete_Char</A>;
++   KEY_SDL          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Line</A>;
++   KEY_SEND         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_End</A>;
++   KEY_SEOL         : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_Clear_End_Of_Line</A>;
++   KEY_SEXIT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Exit</A>;
++   KEY_SFIND        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Find</A>;
++   KEY_SHELP        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Help</A>;
++   KEY_SHOME        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Home</A>;
++   KEY_SIC          : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Insert_Char</A>;
++   KEY_SLEFT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Cursor_Left</A>;
++   KEY_SMESSAGE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Message</A>;
++   KEY_SMOVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Move</A>;
++   KEY_SNEXT        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Next_Page</A>;
++   KEY_SOPTIONS     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Options</A>;
++   KEY_SPREVIOUS    : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Previous_Page</A>;
++   KEY_SPRINT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Print</A>;
++   KEY_SREDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Redo</A>;
++   KEY_SREPLACE     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Replace</A>;
++   KEY_SRIGHT       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Cursor_Right</A>;
++   KEY_SRSUME       : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Resume</A>;
++   KEY_SSAVE        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Save</A>;
++   KEY_SSUSPEND     : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Suspend</A>;
++   KEY_SUNDO        : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Undo</A>;
+ 
+ <FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+ 
+-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_278_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_38_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
+-   <b>for</b> Color_Number'Size <b>use</b> Interfaces.C.short'Size;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
+    <FONT COLOR=green><EM>--  (n)curses uses a short for the color index</EM></FONT>
+    <FONT COLOR=green><EM>--  The model is, that a Color_Number is an index into an array of</EM></FONT>
+    <FONT COLOR=green><EM>--  (potentially) definable colors. Some of those indices are</EM></FONT>
+    <FONT COLOR=green><EM>--  predefined (see below), although they may not really exist.</EM></FONT>
+ 
+-   <FONT COLOR=red><A NAME="ref_286_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
+-   <FONT COLOR=red><A NAME="ref_287_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
+-   <FONT COLOR=red><A NAME="ref_288_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
+-   <FONT COLOR=red><A NAME="ref_289_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
+-   <FONT COLOR=red><A NAME="ref_290_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
+-   <FONT COLOR=red><A NAME="ref_291_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
+-   <FONT COLOR=red><A NAME="ref_292_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
+-   <FONT COLOR=red><A NAME="ref_293_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
+-   White            : <b>constant</b> Color_Number := 7;
++   <FONT COLOR=red><A NAME="ref_285_4">Default_Color</A></FONT>    : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
++   <FONT COLOR=red><A NAME="ref_286_4">Black</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
++   <FONT COLOR=red><A NAME="ref_287_4">Red</A></FONT>              : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
++   <FONT COLOR=red><A NAME="ref_288_4">Green</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
++   <FONT COLOR=red><A NAME="ref_289_4">Yellow</A></FONT>           : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
++   <FONT COLOR=red><A NAME="ref_290_4">Blue</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
++   <FONT COLOR=red><A NAME="ref_291_4">Magenta</A></FONT>          : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
++   <FONT COLOR=red><A NAME="ref_292_4">Cyan</A></FONT>             : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
++   <FONT COLOR=red><A NAME="ref_293_4">White</A></FONT>            : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7;
+ 
+-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_295_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_38_9"> </A>0 .. Integer (Interfaces.C.short'Last);
+-   <b>for</b> RGB_Value'Size <b>use</b> Interfaces.C.short'Size;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
+    <FONT COLOR=green><EM>--  Some system may allow to redefine a color by setting RGB values.</EM></FONT>
+ 
+-   <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_299_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
+-   <b>for</b> Color_Pair'Size <b>use</b> 8;
+-   <b>subtype</b> Redefinable_Color_Pair <b>is</b> Color_Pair <b>range</b> 1 .. 255;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_299_9">Color_Pair</A></FONT> <b>is</b> <b>range</b> 0 .. 255;
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'Size <b>use</b> 8;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_301_12">Redefinable_Color_Pair</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> <b>range</b> 1 .. 255;
+    <FONT COLOR=green><EM>--  (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT>
+    <FONT COLOR=green><EM>--  is fixed (Black &amp; White). A color pair is simply a combination of</EM></FONT>
+    <FONT COLOR=green><EM>--  two colors described by Color_Numbers, one for the foreground and</EM></FONT>
+    <FONT COLOR=green><EM>--  the other for the background</EM></FONT>
+ 
+-   <b>type</b> Character_Attribute_Set <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_307_9">Character_Attribute_Set</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_310_10">Stand_Out</A></FONT>               : Boolean;
+-         <FONT COLOR=red><A NAME="ref_311_10">Under_Line</A></FONT>              : Boolean;
+-         <FONT COLOR=red><A NAME="ref_312_10">Reverse_Video</A></FONT>           : Boolean;
+-         <FONT COLOR=red><A NAME="ref_313_10">Blink</A></FONT>                   : Boolean;
+-         <FONT COLOR=red><A NAME="ref_314_10">Dim_Character</A></FONT>           : Boolean;
+-         <FONT COLOR=red><A NAME="ref_315_10">Bold_Character</A></FONT>          : Boolean;
+-         <FONT COLOR=red><A NAME="ref_316_10">Alternate_Character_Set</A></FONT> : Boolean;
+-         <FONT COLOR=red><A NAME="ref_317_10">Invisible_Character</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_318_10">Protected_Character</A></FONT>     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_319_10">Horizontal</A></FONT>              : Boolean;
+-         <FONT COLOR=red><A NAME="ref_320_10">Left</A></FONT>                    : Boolean;
+-         <FONT COLOR=red><A NAME="ref_321_10">Low</A></FONT>                     : Boolean;
+-         <FONT COLOR=red><A NAME="ref_322_10">Right</A></FONT>                   : Boolean;
+-         <FONT COLOR=red><A NAME="ref_323_10">Top</A></FONT>                     : Boolean;
+-         Vertical                : Boolean;
++         <FONT COLOR=red><A NAME="ref_309_10">Stand_Out</A></FONT>               : Boolean;
++         <FONT COLOR=red><A NAME="ref_310_10">Under_Line</A></FONT>              : Boolean;
++         <FONT COLOR=red><A NAME="ref_311_10">Reverse_Video</A></FONT>           : Boolean;
++         <FONT COLOR=red><A NAME="ref_312_10">Blink</A></FONT>                   : Boolean;
++         <FONT COLOR=red><A NAME="ref_313_10">Dim_Character</A></FONT>           : Boolean;
++         <FONT COLOR=red><A NAME="ref_314_10">Bold_Character</A></FONT>          : Boolean;
++         <FONT COLOR=red><A NAME="ref_315_10">Alternate_Character_Set</A></FONT> : Boolean;
++         <FONT COLOR=red><A NAME="ref_316_10">Invisible_Character</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_317_10">Protected_Character</A></FONT>     : Boolean;
++         <FONT COLOR=red><A NAME="ref_318_10">Horizontal</A></FONT>              : Boolean;
++         <FONT COLOR=red><A NAME="ref_319_10">Left</A></FONT>                    : Boolean;
++         <FONT COLOR=red><A NAME="ref_320_10">Low</A></FONT>                     : Boolean;
++         <FONT COLOR=red><A NAME="ref_321_10">Right</A></FONT>                   : Boolean;
++         <FONT COLOR=red><A NAME="ref_322_10">Top</A></FONT>                     : Boolean;
++         <FONT COLOR=red><A NAME="ref_323_10">Vertical</A></FONT>                : Boolean;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Character_Attribute_Set);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+ 
+-   <b>for</b> Character_Attribute_Set <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> <b>use</b>
+       <b>record</b>
+          Stand_Out               <b>at</b> 0 <b>range</b>  0 ..  0;
+          Under_Line              <b>at</b> 0 <b>range</b>  1 ..  1;
+@@ -348,64 +347,64 @@
+          Top                     <b>at</b> 0 <b>range</b> 13 .. 13;
+          Vertical                <b>at</b> 0 <b>range</b> 14 .. 14;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Character_Attribute_Set'Size <b>use</b> 16;
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>'Size <b>use</b> 16;
+    <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+    <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+    <FONT COLOR=green><EM>--  (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT>
+ 
+-   Normal_Video : <b>constant</b> Character_Attribute_Set := (<b>others</b> =&gt; False);
++   <FONT COLOR=red><A NAME="ref_350_4">Normal_Video</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False);
+ 
+-   <b>type</b> Attributed_Character <b>is</b>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_352_9">Attributed_Character</A></FONT> <b>is</b>
+       <b>record</b>
+-         <FONT COLOR=red><A NAME="ref_355_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+-         <FONT COLOR=red><A NAME="ref_356_10">Color</A></FONT> : Color_Pair;
+-         Ch    : Character;
++         <FONT COLOR=red><A NAME="ref_354_10">Attr</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++         <FONT COLOR=red><A NAME="ref_355_10">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
++         <FONT COLOR=red><A NAME="ref_356_10">Ch</A></FONT>    : Character;
+       <b>end</b> <b>record</b>;
+-   <b>pragma</b> Convention (C, Attributed_Character);
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  This is the counterpart for the chtype in C.</EM></FONT>
+ 
+-   <b>for</b> Attributed_Character <b>use</b>
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> <b>use</b>
+       <b>record</b>
+          Ch    <b>at</b> 0 <b>range</b>  0 ..  7;
+          Color <b>at</b> 0 <b>range</b>  8 .. 15;
+          Attr  <b>at</b> 0 <b>range</b> 16 .. 31;
+       <b>end</b> <b>record</b>;
+-   <b>for</b> Attributed_Character'Size <b>use</b> 32;
++   <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'Size <b>use</b> 32;
+       <FONT COLOR=green><EM>--  Please note: this rep. clause is generated and may be</EM></FONT>
+       <FONT COLOR=green><EM>--               different on your system.</EM></FONT>
+ 
+-   Default_Character : <b>constant</b> Attributed_Character
+-     := (<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Ch</A>    =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character</A>'First,
+-         <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Color</A> =&gt; Color_Pair'First,
+-         Attr  =&gt; (<b>others</b> =&gt; False));  <FONT COLOR=green><EM>--  preelaboratable Normal_Video</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_371_4">Default_Character</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
++     := (<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Ch</A>    =&gt; Character'First,
++         <A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
++         <A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>  =&gt; (<b>others</b> =&gt; False));  <FONT COLOR=green><EM>--  preelaboratable Normal_Video</EM></FONT>
+ 
+-   <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> Attributed_Character;
+-   <b>pragma</b> Pack (Attributed_String);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_376_9">Attributed_String</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++   <b>pragma</b> Pack (<A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>);
+    <FONT COLOR=green><EM>--  In this binding we allow strings of attributed characters.</EM></FONT>
+ 
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  Exceptions  --</EM></FONT>
+    <FONT COLOR=green><EM>------------------</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_384_4">Curses_Exception</A></FONT>     : <b>exception</b>;
+-   Wrong_Curses_Version : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_383_4">Curses_Exception</A></FONT>     : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_384_4">Wrong_Curses_Version</A></FONT> : <b>exception</b>;
+ 
+    <FONT COLOR=green><EM>--  Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
+    <FONT COLOR=green><EM>--  subpackets for Menu and Forms handling.</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_390_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_391_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_392_4">Eti_Posted</A></FONT>          : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_393_4">Eti_Connected</A></FONT>       : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_394_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_395_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_396_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_397_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_398_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_401_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
+-   <FONT COLOR=red><A NAME="ref_402_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
+-   Eti_Current         : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_389_4">Eti_System_Error</A></FONT>    : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_390_4">Eti_Bad_Argument</A></FONT>    : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_391_4">Eti_Posted</A></FONT>          : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_392_4">Eti_Connected</A></FONT>       : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_393_4">Eti_Bad_State</A></FONT>       : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_394_4">Eti_No_Room</A></FONT>         : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_395_4">Eti_Not_Posted</A></FONT>      : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_396_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_397_4">Eti_No_Match</A></FONT>        : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_398_4">Eti_Not_Selectable</A></FONT>  : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Connected</A></FONT>   : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_400_4">Eti_Request_Denied</A></FONT>  : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_401_4">Eti_Invalid_Field</A></FONT>   : <b>exception</b>;
++   <FONT COLOR=red><A NAME="ref_402_4">Eti_Current</A></FONT>         : <b>exception</b>;
+ 
+    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
+    <FONT COLOR=green><EM>--  External C variables</EM></FONT>
+@@ -415,28 +414,29 @@
+    <FONT COLOR=green><EM>--  this is to use functions.</EM></FONT>
+    <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
+ 
+-   <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#ref_412_13"> </A>          <b>return</b> Line_Count;
+-   <b>pragma</b> Inline (Lines);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_412_13" HREF="terminal_interface-curses__adb.htm#ref_2354_13">Lines</A></FONT>            <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>);
+ 
+-   <b>function</b> Columns          <b>return</b> Column_Count;
+-   <b>pragma</b> Inline (Columns);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_415_13" HREF="terminal_interface-curses__adb.htm#ref_2362_13">Columns</A></FONT>          <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>);
+ 
+-   <b>function</b> Tab_Size         <b>return</b> Natural;
+-   <b>pragma</b> Inline (Tab_Size);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_418_13" HREF="terminal_interface-curses__adb.htm#ref_2370_13">Tab_Size</A></FONT>         <b>return</b> Natural;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>);
+ 
+-   <b>function</b> Number_Of_Colors <b>return</b> Natural;
+-   <b>pragma</b> Inline (Number_Of_Colors);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_421_13" HREF="terminal_interface-curses__adb.htm#ref_2378_13">Number_Of_Colors</A></FONT> <b>return</b> Natural;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>);
+ 
+-   <b>function</b> Number_Of_Color_Pairs <b>return</b> Natural;
+-   <b>pragma</b> Inline (Number_Of_Color_Pairs);
++   <b>function</b> <FONT COLOR=red><A NAME="ref_424_13" HREF="terminal_interface-curses__adb.htm#ref_2386_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>);
+ 
+-   ACS_Map : <b>array</b> (Character'Val (0) .. Character'Val (127)) <b>of</b>
+-     Attributed_Character;
+-   <b>pragma</b> Import (C, ACS_Map, "acs_map");
++   <b>type</b> <FONT COLOR=red><A NAME="ref_427_9">C_ACS_Map</A></FONT> <b>is</b> <b>array</b> (Character'Val (0) .. Character'Val (127))
++        <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++   <FONT COLOR=red><A NAME="ref_429_4">ACS_Map</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_427_9">C_ACS_Map</A>;
++   <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__ads.htm#ref_429_4">ACS_Map</A>, "acs_map");
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=green><EM>--  Constants for several characters from the Alternate Character Set</EM></FONT>
+-   <FONT COLOR=green><EM>--  You must use this constants as indices into the ACS_Map array</EM></FONT>
++   <FONT COLOR=green><EM>--  You must use these constants as indices into the ACS_Map array</EM></FONT>
+    <FONT COLOR=green><EM>--  to get the corresponding attributed character at runtime.</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+    <FONT COLOR=red><A NAME="ref_437_4">ACS_Upper_Left_Corner</A></FONT>    : <b>constant</b> Character := 'l';
+@@ -470,93 +470,98 @@
+    <FONT COLOR=red><A NAME="ref_465_4">ACS_Greater_Or_Equal</A></FONT>     : <b>constant</b> Character := 'z';
+    <FONT COLOR=red><A NAME="ref_466_4">ACS_PI</A></FONT>                   : <b>constant</b> Character := '{';
+    <FONT COLOR=red><A NAME="ref_467_4">ACS_Not_Equal</A></FONT>            : <b>constant</b> Character := '|';
+-   ACS_Sterling             : <b>constant</b> Character := '}';
++   <FONT COLOR=red><A NAME="ref_468_4">ACS_Sterling</A></FONT>             : <b>constant</b> Character := '}';
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+-   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen, curscr</EM></FONT>
++   <FONT COLOR=green><EM>--  | Not implemented: newterm, set_term, delscreen</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_1"#2|</EM></FONT>
+-   <b>function</b> Standard_Window <b>return</b> Window;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_476_13" HREF="terminal_interface-curses__adb.htm#ref_2338_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT>
+-   <b>pragma</b> Inline (Standard_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_2"#2|</EM></FONT>
+-   <b>procedure</b> Init_Screen;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_481_13" HREF="terminal_interface-curses__adb.htm#ref_2346_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_481_13">Current_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_3"#2|</EM></FONT>
+-   <b>procedure</b> Init_Windows <b>renames</b> Init_Screen;
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_486_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></FONT>;
++
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_489_14">Init_Windows</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></FONT>
+-   <b>pragma</b> Inline (Init_Screen);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_486_14">Init_Screen</A>);
+    <FONT COLOR=green><EM>--  pragma Inline (Init_Windows);</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_4"#2|</EM></FONT>
+-   <b>procedure</b> End_Windows;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_495_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
+-   <b>procedure</b> End_Screen <b>renames</b> End_Windows;
+-   <b>pragma</b> Inline (End_Windows);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14">End_Screen</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>;
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_495_14">End_Windows</A>);
+    <FONT COLOR=green><EM>--  pragma Inline (End_Screen);</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_5"#2|</EM></FONT>
+-   <b>function</b> Is_End_Window <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_502_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Is_End_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_502_13">Is_End_Window</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_6"#2|</EM></FONT>
+-   <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses__adb.htm#ref_187_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                          <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses__adb.htm#ref_188_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                          Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_511_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_511_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                          <FONT COLOR=red><A NAME="ref_512_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                          <FONT COLOR=red><A NAME="ref_513_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: move()</EM></FONT>
+-   <b>pragma</b> Inline (Move_Cursor);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_511_14">Move_Cursor</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_7"#2|</EM></FONT>
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_518_19" HREF="terminal_interface-curses__adb.htm#ref_202_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-                  Ch  :  <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_523_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_524_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></FONT>  :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: addch()</EM></FONT>
+ 
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_214_19">Win</A></FONT> :  <b>in</b> Window := Standard_Window;
+-                  Ch  :  <b>in</b> Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_528_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_528_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></FONT> :  <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_529_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></FONT>  :  <b>in</b> Character);
+    <FONT COLOR=green><EM>--  Add a single character at the current logical cursor position to</EM></FONT>
+    <FONT COLOR=green><EM>--  the window. Use the current windows attributes.</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_8"#2|</EM></FONT>
+-   <b>procedure</b> Add
+-     (<FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__adb.htm#ref_225_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_531_7" HREF="terminal_interface-curses__adb.htm#ref_226_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_532_7" HREF="terminal_interface-curses__adb.htm#ref_227_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
+-      Ch     : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_534_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_535_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_536_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_537_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvaddch()</EM></FONT>
+ 
+-   <b>procedure</b> Add
+-     (<FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_244_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_245_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_246_7">Column</A></FONT> : <b>in</b> Column_Position;
+-      Ch     : <b>in</b> Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_542_14" HREF="terminal_interface-curses__adb.htm#ref_189_14">Add</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_543_7" HREF="terminal_interface-curses__adb.htm#ref_190_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_544_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_545_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_546_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Ch</A></FONT>     : <b>in</b> Character);
+    <FONT COLOR=green><EM>--  Move to the position and add a single character into the window</EM></FONT>
+    <FONT COLOR=green><EM>--  There are more Add routines, so the Inline pragma follows later</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_9"#2|</EM></FONT>
+-   <b>procedure</b> Add_With_Immediate_Echo
+-     (<FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_259_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-      Ch  : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses__adb.htm#ref_204_14">Add_With_Immediate_Echo</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_552_7" HREF="terminal_interface-curses__adb.htm#ref_205_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: echochar()</EM></FONT>
+ 
+-   <b>procedure</b> Add_With_Immediate_Echo
+-     (<FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_272_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+-      Ch  : <b>in</b> Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_557_14" HREF="terminal_interface-curses__adb.htm#ref_217_14">Add_With_Immediate_Echo</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__adb.htm#ref_218_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_559_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Ch</A></FONT>  : <b>in</b> Character);
+    <FONT COLOR=green><EM>--  Add a character and do an immediate refresh of the screen.</EM></FONT>
+    <b>pragma</b> Inline (Add_With_Immediate_Echo);
+ 
+@@ -565,105 +570,105 @@
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  Not Implemented: wcursyncup</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_10"#2|</EM></FONT>
+-   <b>function</b> Create
+-     (<FONT COLOR=red><A NAME="ref_565_7" HREF="terminal_interface-curses__adb.htm#ref_283_21">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_566_7" HREF="terminal_interface-curses__adb.htm#ref_284_21">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_567_7" HREF="terminal_interface-curses__adb.htm#ref_285_21">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      First_Column_Position : Column_Position) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__adb.htm#ref_229_13">Create</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_570_7" HREF="terminal_interface-curses__adb.htm#ref_229_21">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_571_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_572_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_573_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></FONT>
+    <FONT COLOR=green><EM>--  the C version lets them be 0, see the man page.</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Create);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>);
+ 
+    <b>function</b> New_Window
+-     (<FONT COLOR=red><A NAME="ref_575_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_576_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_577_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      First_Column_Position : Column_Position) <b>return</b> Window
+-     <b>renames</b> Create;
++     (<FONT COLOR=red><A NAME="ref_580_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_581_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_582_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_583_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++     <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_569_13">Create</A>;
+    <FONT COLOR=green><EM>--  pragma Inline (New_Window);</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_11"#2|</EM></FONT>
+-   <b>procedure</b> Delete (Win : <b>in</b> <b>out</b> Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__adb.htm#ref_252_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_588_22" HREF="terminal_interface-curses__adb.htm#ref_252_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Reset Win to Null_Window</EM></FONT>
+-   <b>pragma</b> Inline (Delete);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_588_14">Delete</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_12"#2|</EM></FONT>
+-   <b>function</b> Sub_Window
+-     (<FONT COLOR=red><A NAME="ref_590_7" HREF="terminal_interface-curses__adb.htm#ref_318_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_591_7" HREF="terminal_interface-curses__adb.htm#ref_319_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_592_7" HREF="terminal_interface-curses__adb.htm#ref_320_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_593_7" HREF="terminal_interface-curses__adb.htm#ref_321_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      First_Column_Position : Column_Position) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_594_13" HREF="terminal_interface-curses__adb.htm#ref_263_13">Sub_Window</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_595_7" HREF="terminal_interface-curses__adb.htm#ref_264_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_596_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_597_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_598_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_599_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Sub_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_594_13">Sub_Window</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_13"#2|</EM></FONT>
+-   <b>function</b> Derived_Window
+-     (<FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_346_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_347_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_602_7" HREF="terminal_interface-curses__adb.htm#ref_348_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_603_7" HREF="terminal_interface-curses__adb.htm#ref_349_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      First_Column_Position : Column_Position) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_604_13" HREF="terminal_interface-curses__adb.htm#ref_291_13">Derived_Window</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_605_7" HREF="terminal_interface-curses__adb.htm#ref_292_7">Win</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_606_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Derived_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_604_13">Derived_Window</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_14"#2|</EM></FONT>
+-   <b>function</b> Duplicate (Win : Window) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_614_13" HREF="terminal_interface-curses__adb.htm#ref_319_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_614_24" HREF="terminal_interface-curses__adb.htm#ref_319_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Duplicate);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_614_13">Duplicate</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_15"#2|</EM></FONT>
+-   <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="ref_614_27" HREF="terminal_interface-curses__adb.htm#ref_386_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-                          <FONT COLOR=red><A NAME="ref_615_27" HREF="terminal_interface-curses__adb.htm#ref_387_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                          Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_619_14" HREF="terminal_interface-curses__adb.htm#ref_332_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_619_27" HREF="terminal_interface-curses__adb.htm#ref_332_27">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                          <FONT COLOR=red><A NAME="ref_620_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                          <FONT COLOR=red><A NAME="ref_621_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Move_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_619_14">Move_Window</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_16"#2|</EM></FONT>
+-   <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="ref_621_35" HREF="terminal_interface-curses__adb.htm#ref_400_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-                                  <FONT COLOR=red><A NAME="ref_622_35" HREF="terminal_interface-curses__adb.htm#ref_401_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                                  Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_626_14" HREF="terminal_interface-curses__adb.htm#ref_346_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_35" HREF="terminal_interface-curses__adb.htm#ref_346_35">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                                  <FONT COLOR=red><A NAME="ref_627_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                                  <FONT COLOR=red><A NAME="ref_628_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Move_Derived_Window);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_626_14">Move_Derived_Window</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_17"#2|</EM></FONT>
+-   <b>procedure</b> Synchronize_Upwards (Win : <b>in</b> Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_633_14">Synchronize_Upwards</A></FONT> (<FONT COLOR=red><A NAME="ref_633_35" HREF="terminal_interface-curses__ads.htm#ref_633_14">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT>
+    <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_18"#2|</EM></FONT>
+-   <b>procedure</b> Synchronize_Downwards (Win : <b>in</b> Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14">Synchronize_Downwards</A></FONT> (<FONT COLOR=red><A NAME="ref_638_37" HREF="terminal_interface-curses__ads.htm#ref_638_14">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></FONT>
+    <b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_19"#2|</EM></FONT>
+-   <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="ref_638_30" HREF="terminal_interface-curses__adb.htm#ref_414_30">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+-                             Mode : <b>in</b> Boolean := False);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_643_14" HREF="terminal_interface-curses__adb.htm#ref_360_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_643_30" HREF="terminal_interface-curses__adb.htm#ref_360_30">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                             <FONT COLOR=red><A NAME="ref_644_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Mode</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Synch_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_643_14">Set_Synch_Mode</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_20"#2|</EM></FONT>
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_648_19" HREF="terminal_interface-curses__adb.htm#ref_426_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_649_19" HREF="terminal_interface-curses__adb.htm#ref_427_19">Str</A></FONT> : <b>in</b> String;
+-                  Len : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses__adb.htm#ref_372_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_653_19" HREF="terminal_interface-curses__adb.htm#ref_372_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_654_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Str</A></FONT> : <b>in</b> String;
++                  <FONT COLOR=red><A NAME="ref_655_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Len</A></FONT> : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: waddstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: addnstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: addstr()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_21"#2|</EM></FONT>
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_445_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_658_19" HREF="terminal_interface-curses__adb.htm#ref_446_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                  <FONT COLOR=red><A NAME="ref_659_19" HREF="terminal_interface-curses__adb.htm#ref_447_7">Column</A></FONT> : <b>in</b> Column_Position;
+-                  <FONT COLOR=red><A NAME="ref_660_19" HREF="terminal_interface-curses__adb.htm#ref_448_7">Str</A></FONT>    : <b>in</b> String;
+-                  Len    : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses__adb.htm#ref_390_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_662_19" HREF="terminal_interface-curses__adb.htm#ref_391_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_663_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_664_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_665_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Str</A></FONT>    : <b>in</b> String;
++                  <FONT COLOR=red><A NAME="ref_666_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Len</A></FONT>    : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwaddstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvaddnstr()</EM></FONT>
+@@ -673,21 +678,21 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_22"#2|</EM></FONT>
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_672_19" HREF="terminal_interface-curses__adb.htm#ref_457_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_673_19" HREF="terminal_interface-curses__adb.htm#ref_458_7">Str</A></FONT> : <b>in</b> Attributed_String;
+-                  Len : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_677_14" HREF="terminal_interface-curses__adb.htm#ref_402_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_677_19" HREF="terminal_interface-curses__adb.htm#ref_403_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_678_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++                  <FONT COLOR=red><A NAME="ref_679_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Len</A></FONT> : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: waddchstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: addchnstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: addchstr()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_23"#2|</EM></FONT>
+-   <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_480_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_682_19" HREF="terminal_interface-curses__adb.htm#ref_481_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                  <FONT COLOR=red><A NAME="ref_683_19" HREF="terminal_interface-curses__adb.htm#ref_482_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+-                  <FONT COLOR=red><A NAME="ref_684_19" HREF="terminal_interface-curses__adb.htm#ref_483_7">Str</A></FONT>    : <b>in</b> Attributed_String;
+-                  Len    : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_686_14" HREF="terminal_interface-curses__adb.htm#ref_425_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_686_19" HREF="terminal_interface-curses__adb.htm#ref_426_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_687_19" HREF="terminal_interface-curses__adb.htm#ref_427_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_688_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_689_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Str</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++                  <FONT COLOR=red><A NAME="ref_690_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Len</A></FONT>    : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwaddchstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvaddchnstr()</EM></FONT>
+@@ -700,92 +705,92 @@
+    <FONT COLOR=green><EM>--  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline</EM></FONT>
+    <FONT COLOR=green><EM>--  | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_24"#2|</EM></FONT>
+-   <b>procedure</b> Border
+-     (<FONT COLOR=red><A NAME="ref_700_7" HREF="terminal_interface-curses__adb.htm#ref_492_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_701_7" HREF="terminal_interface-curses__adb.htm#ref_493_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_702_7" HREF="terminal_interface-curses__adb.htm#ref_494_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_703_7" HREF="terminal_interface-curses__adb.htm#ref_495_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_704_7" HREF="terminal_interface-curses__adb.htm#ref_496_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_497_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_498_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_499_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      Lower_Right_Corner_Symbol : <b>in</b> Attributed_Character := Default_Character
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_704_14" HREF="terminal_interface-curses__adb.htm#ref_437_14">Border</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_438_7">Win</A></FONT>                       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_439_7">Left_Side_Symbol</A></FONT>          : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Right_Side_Symbol</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Top_Side_Symbol</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Bottom_Side_Symbol</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_710_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Upper_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_711_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_712_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Lower_Left_Corner_Symbol</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>
+      );
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: border()</EM></FONT>
+-   <b>pragma</b> Inline (Border);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_704_14">Border</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_25"#2|</EM></FONT>
+-   <b>procedure</b> Box
+-     (<FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_529_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__adb.htm#ref_530_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+-      Horizontal_Symbol : <b>in</b> Attributed_Character := Default_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_720_14" HREF="terminal_interface-curses__adb.htm#ref_474_14">Box</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_721_7" HREF="terminal_interface-curses__adb.htm#ref_475_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_722_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Vertical_Symbol</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
++      <FONT COLOR=red><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT>
+-   <b>pragma</b> Inline (Box);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_720_14">Box</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_26"#2|</EM></FONT>
+-   <b>procedure</b> Horizontal_Line
+-     (<FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_540_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_541_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
+-      Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_728_14" HREF="terminal_interface-curses__adb.htm#ref_485_14">Horizontal_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_729_7" HREF="terminal_interface-curses__adb.htm#ref_486_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_730_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Line_Size</A></FONT>   : <b>in</b> Natural;
++      <FONT COLOR=red><A NAME="ref_731_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: hline()</EM></FONT>
+-   <b>pragma</b> Inline (Horizontal_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_728_14">Horizontal_Line</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_27"#2|</EM></FONT>
+-   <b>procedure</b> Vertical_Line
+-     (<FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_557_7">Win</A></FONT>         : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_734_7" HREF="terminal_interface-curses__adb.htm#ref_558_7">Line_Size</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
+-      Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_737_14" HREF="terminal_interface-curses__adb.htm#ref_502_14">Vertical_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__adb.htm#ref_503_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__adb.htm#ref_504_7">Line_Size</A></FONT>   : <b>in</b> Natural;
++      <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: vline()</EM></FONT>
+-   <b>pragma</b> Inline (Vertical_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_737_14">Vertical_Line</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  Not implemented: mvgetch, mvwgetch</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_28"#2|</EM></FONT>
+-   <b>function</b> Get_Keystroke (Win : Window := Standard_Window)
+-                           <b>return</b> Real_Key_Code;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_751_13" HREF="terminal_interface-curses__adb.htm#ref_520_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_751_28" HREF="terminal_interface-curses__adb.htm#ref_520_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
++                           <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: getch()</EM></FONT>
+    <FONT COLOR=green><EM>--  Get a character from the keyboard and echo it - if enabled - to the</EM></FONT>
+    <FONT COLOR=green><EM>--  window.</EM></FONT>
+    <FONT COLOR=green><EM>--  If for any reason (i.e. a timeout) we couldn't get a character the</EM></FONT>
+    <FONT COLOR=green><EM>--  returned keycode is Key_None.</EM></FONT>
+-   <b>pragma</b> Inline (Get_Keystroke);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_751_13">Get_Keystroke</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_29"#2|</EM></FONT>
+-   <b>procedure</b> Undo_Keystroke (Key : <b>in</b> Real_Key_Code);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_762_14" HREF="terminal_interface-curses__adb.htm#ref_535_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_762_30" HREF="terminal_interface-curses__adb.htm#ref_535_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT>
+-   <b>pragma</b> Inline (Undo_Keystroke);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_762_14">Undo_Keystroke</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_30"#2|</EM></FONT>
+-   <b>function</b> Has_Key (Key : Special_Key_Code) <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_767_13" HREF="terminal_interface-curses__adb.htm#ref_545_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_767_22" HREF="terminal_interface-curses__adb.htm#ref_545_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT>
+-   <b>pragma</b> Inline (Has_Key);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_767_13">Has_Key</A>);
+ 
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+    <FONT COLOR=green><EM>--  | Some helper functions</EM></FONT>
+    <FONT COLOR=green><EM>--  |</EM></FONT>
+-   <b>function</b> Is_Function_Key (Key : Special_Key_Code) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_774_13" HREF="terminal_interface-curses__adb.htm#ref_557_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_774_30" HREF="terminal_interface-curses__adb.htm#ref_557_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT>
+-   <b>pragma</b> Inline (Is_Function_Key);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_774_13">Is_Function_Key</A>);
+ 
+-   <b>subtype</b> Function_Key_Number <b>is</b> Integer <b>range</b> 0 .. 63;
++   <b>subtype</b> <FONT COLOR=red><A NAME="ref_778_12">Function_Key_Number</A></FONT> <b>is</b> Integer <b>range</b> 0 .. 63;
+    <FONT COLOR=green><EM>--  (n)curses allows for 64 function keys.</EM></FONT>
+ 
+-   <b>function</b> Function_Key (Key : Real_Key_Code) <b>return</b> Function_Key_Number;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_781_13" HREF="terminal_interface-curses__adb.htm#ref_569_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_781_27" HREF="terminal_interface-curses__adb.htm#ref_569_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>;
+    <FONT COLOR=green><EM>--  Return the number of the function key. If the code is not a</EM></FONT>
+    <FONT COLOR=green><EM>--  function key, a CONSTRAINT_ERROR will be raised.</EM></FONT>
+-   <b>pragma</b> Inline (Function_Key);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_781_13">Function_Key</A>);
+ 
+-   <b>function</b> Function_Key_Code (Key : Function_Key_Number) <b>return</b> Real_Key_Code;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_786_13" HREF="terminal_interface-curses__adb.htm#ref_580_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_786_32" HREF="terminal_interface-curses__adb.htm#ref_580_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_778_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+    <FONT COLOR=green><EM>--  Return the key code for a given function-key number.</EM></FONT>
+-   <b>pragma</b> Inline (Function_Key_Code);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_786_13">Function_Key_Code</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT>
+@@ -796,68 +801,68 @@
+    <FONT COLOR=green><EM>--  PAIR_NUMBER</EM></FONT>
+    <FONT COLOR=green><EM>--  PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_31"#2|</EM></FONT>
+-   <b>procedure</b> Standout (<FONT COLOR=red><A NAME="ref_795_24" HREF="terminal_interface-curses__adb.htm#ref_640_24">Win</A></FONT> : Window  := Standard_Window;
+-                       On  : Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_800_14" HREF="terminal_interface-curses__adb.htm#ref_586_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_800_24" HREF="terminal_interface-curses__adb.htm#ref_586_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                       <FONT COLOR=red><A NAME="ref_801_24" HREF="terminal_interface-curses__adb.htm#ref_587_24">On</A></FONT>  : Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: wstandout()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: wstandend()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_32"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Character_Attribute
+-     (<FONT COLOR=red><A NAME="ref_802_7" HREF="terminal_interface-curses__adb.htm#ref_661_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_803_7" HREF="terminal_interface-curses__adb.htm#ref_662_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
+-      On   : <b>in</b> Boolean := True); <FONT COLOR=green><EM>--  if False we switch Off.</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_806_14" HREF="terminal_interface-curses__adb.htm#ref_606_14">Switch_Character_Attribute</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_807_7" HREF="terminal_interface-curses__adb.htm#ref_607_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_808_7" HREF="terminal_interface-curses__adb.htm#ref_608_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_809_7" HREF="terminal_interface-curses__adb.htm#ref_609_7">On</A></FONT>   : <b>in</b> Boolean := True); <FONT COLOR=green><EM>--  if False we switch Off.</EM></FONT>
+    <FONT COLOR=green><EM>--  Switches those Attributes set to true in the list.</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: wattroff()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: attron()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: attroff()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_33"#2|</EM></FONT>
+-   <b>procedure</b> Set_Character_Attributes
+-     (<FONT COLOR=red><A NAME="ref_813_7" HREF="terminal_interface-curses__adb.htm#ref_689_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_814_7" HREF="terminal_interface-curses__adb.htm#ref_690_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_817_14" HREF="terminal_interface-curses__adb.htm#ref_634_14">Set_Character_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_818_7" HREF="terminal_interface-curses__adb.htm#ref_635_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_819_7" HREF="terminal_interface-curses__adb.htm#ref_636_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_820_7" HREF="terminal_interface-curses__adb.htm#ref_637_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: attrset()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Character_Attributes);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_817_14">Set_Character_Attributes</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_34"#2|</EM></FONT>
+-   <b>function</b> Get_Character_Attribute
+-     (Win : <b>in</b> Window := Standard_Window) <b>return</b> Character_Attribute_Set;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_826_13" HREF="terminal_interface-curses__adb.htm#ref_652_13">Get_Character_Attribute</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_827_7" HREF="terminal_interface-curses__adb.htm#ref_652_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: attr_get()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_35"#2|</EM></FONT>
+-   <b>function</b> Get_Character_Attribute
+-     (Win : <b>in</b> Window := Standard_Window) <b>return</b> Color_Pair;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_832_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_833_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
+    <b>pragma</b> Inline (Get_Character_Attribute);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_36"#2|</EM></FONT>
+-   <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="ref_833_25" HREF="terminal_interface-curses__adb.htm#ref_752_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Window</A> := Standard_Window;
+-                        Pair : <b>in</b> Color_Pair);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_838_14" HREF="terminal_interface-curses__adb.htm#ref_698_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_838_25" HREF="terminal_interface-curses__adb.htm#ref_698_25">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                        <FONT COLOR=red><A NAME="ref_839_25" HREF="terminal_interface-curses__adb.htm#ref_699_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: color_set()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Color);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_838_14">Set_Color</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_37"#2|</EM></FONT>
+-   <b>procedure</b> Change_Attributes
+-     (<FONT COLOR=red><A NAME="ref_841_7" HREF="terminal_interface-curses__adb.htm#ref_768_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_842_7" HREF="terminal_interface-curses__adb.htm#ref_769_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+-      <FONT COLOR=red><A NAME="ref_843_7" HREF="terminal_interface-curses__adb.htm#ref_770_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_845_14" HREF="terminal_interface-curses__adb.htm#ref_713_14">Change_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_846_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_847_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Count</A></FONT> : <b>in</b> Integer := -1;
++      <FONT COLOR=red><A NAME="ref_848_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_849_7" HREF="terminal_interface-curses__adb.htm#ref_717_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: chgat()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_38"#2|</EM></FONT>
+-   <b>procedure</b> Change_Attributes
+-     (<FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_791_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_792_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A> := Line_Position'First;
+-      <FONT COLOR=red><A NAME="ref_852_7" HREF="terminal_interface-curses__adb.htm#ref_793_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
+-      <FONT COLOR=red><A NAME="ref_853_7" HREF="terminal_interface-curses__adb.htm#ref_794_7">Count</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+-      <FONT COLOR=red><A NAME="ref_854_7" HREF="terminal_interface-curses__adb.htm#ref_795_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color  : <b>in</b> Color_Pair := Color_Pair'First);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_854_14" HREF="terminal_interface-curses__adb.htm#ref_736_14">Change_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_855_7" HREF="terminal_interface-curses__adb.htm#ref_737_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_856_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
++      <FONT COLOR=red><A NAME="ref_857_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
++      <FONT COLOR=red><A NAME="ref_858_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Count</A></FONT>  : <b>in</b> Integer := -1;
++      <FONT COLOR=red><A NAME="ref_859_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Attr</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_860_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Color</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvchgat()</EM></FONT>
+    <b>pragma</b> Inline (Change_Attributes);
+@@ -866,15 +871,15 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_39"#2|</EM></FONT>
+-   <b>procedure</b> Beep;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_870_14" HREF="terminal_interface-curses__adb.htm#ref_749_14">Beep</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT>
+-   <b>pragma</b> Inline (Beep);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_870_14">Beep</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_40"#2|</EM></FONT>
+-   <b>procedure</b> Flash_Screen;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_875_14" HREF="terminal_interface-curses__adb.htm#ref_759_14">Flash_Screen</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT>
+-   <b>pragma</b> Inline (Flash_Screen);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_875_14">Flash_Screen</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT>
+@@ -882,76 +887,76 @@
+ 
+    <FONT COLOR=green><EM>--  | Not implemented : typeahead</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_41"#2|</EM></FONT>
+-   <b>procedure</b> Set_Cbreak_Mode (SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses__adb.htm#ref_769_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_886_31" HREF="terminal_interface-curses__adb.htm#ref_769_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: nocbreak()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Cbreak_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Cbreak_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_42"#2|</EM></FONT>
+-   <b>procedure</b> Set_Raw_Mode (SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_892_14" HREF="terminal_interface-curses__adb.htm#ref_788_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_892_28" HREF="terminal_interface-curses__adb.htm#ref_788_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: noraw()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Raw_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Raw_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_43"#2|</EM></FONT>
+-   <b>procedure</b> Set_Echo_Mode (SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__adb.htm#ref_807_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_898_29" HREF="terminal_interface-curses__adb.htm#ref_807_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: noecho()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Echo_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Echo_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_44"#2|</EM></FONT>
+-   <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="ref_899_29" HREF="terminal_interface-curses__adb.htm#ref_880_29">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+-                            SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_904_14" HREF="terminal_interface-curses__adb.htm#ref_826_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_904_29" HREF="terminal_interface-curses__adb.htm#ref_826_29">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                            <FONT COLOR=red><A NAME="ref_905_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Meta_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_Meta_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_45"#2|</EM></FONT>
+-   <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="ref_905_31" HREF="terminal_interface-curses__adb.htm#ref_891_31">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+-                              SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__adb.htm#ref_837_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_31" HREF="terminal_interface-curses__adb.htm#ref_837_31">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                              <FONT COLOR=red><A NAME="ref_911_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_KeyPad_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_910_14">Set_KeyPad_Mode</A>);
+ 
+-   <b>function</b> Get_KeyPad_Mode (Win : <b>in</b> Window := Standard_Window)
++   <b>function</b> <FONT COLOR=red><A NAME="ref_915_13" HREF="terminal_interface-curses__adb.htm#ref_848_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_915_30" HREF="terminal_interface-curses__adb.htm#ref_848_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
+                              <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  This has no pendant in C. There you've to look into the WINDOWS</EM></FONT>
+    <FONT COLOR=green><EM>--  structure to get the value. Bad practice, not repeated in Ada.</EM></FONT>
+ 
+-   <b>type</b> Half_Delay_Amount <b>is</b> <b>range</b> 1 .. 255;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_920_9">Half_Delay_Amount</A></FONT> <b>is</b> <b>range</b> 1 .. 255;
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_46"#2|</EM></FONT>
+-   <b>procedure</b> Half_Delay (Amount : <b>in</b> Half_Delay_Amount);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_923_14" HREF="terminal_interface-curses__adb.htm#ref_857_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_923_26" HREF="terminal_interface-curses__adb.htm#ref_857_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_920_9">Half_Delay_Amount</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT>
+-   <b>pragma</b> Inline (Half_Delay);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_923_14">Half_Delay</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_47"#2|</EM></FONT>
+-   <b>procedure</b> Set_Flush_On_Interrupt_Mode
+-     (<FONT COLOR=red><A NAME="ref_924_7" HREF="terminal_interface-curses__adb.htm#ref_920_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+-      Mode : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_928_14" HREF="terminal_interface-curses__adb.htm#ref_867_14">Set_Flush_On_Interrupt_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_929_7" HREF="terminal_interface-curses__adb.htm#ref_868_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_930_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Mode</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Flush_On_Interrupt_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_928_14">Set_Flush_On_Interrupt_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_48"#2|</EM></FONT>
+-   <b>procedure</b> Set_Queue_Interrupt_Mode
+-     (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT>   : <b>in</b> Window := Standard_Window;
+-      Flush : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_935_14" HREF="terminal_interface-curses__adb.htm#ref_879_14">Set_Queue_Interrupt_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_936_7" HREF="terminal_interface-curses__adb.htm#ref_880_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_937_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Flush</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: noqiflush()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Queue_Interrupt_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_935_14">Set_Queue_Interrupt_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_49"#2|</EM></FONT>
+-   <b>procedure</b> Set_NoDelay_Mode
+-     (<FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_951_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+-      Mode : <b>in</b> Boolean := False);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_943_14" HREF="terminal_interface-curses__adb.htm#ref_898_14">Set_NoDelay_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_944_7" HREF="terminal_interface-curses__adb.htm#ref_899_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_945_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Mode</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_NoDelay_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_943_14">Set_NoDelay_Mode</A>);
+ 
+-   <b>type</b> Timeout_Mode <b>is</b> (Blocking, Non_Blocking, Delayed);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_949_9">Timeout_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_949_26">Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_949_36">Non_Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_949_50">Delayed</A></FONT>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_50"#2|</EM></FONT>
+-   <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="ref_947_32" HREF="terminal_interface-curses__adb.htm#ref_962_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Window</A> := Standard_Window;
+-                               <FONT COLOR=red><A NAME="ref_948_32" HREF="terminal_interface-curses__adb.htm#ref_963_32">Mode</A></FONT>   : <b>in</b> Timeout_Mode;
+-                               Amount : <b>in</b> Natural); <FONT COLOR=green><EM>--  in Milliseconds</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_952_14" HREF="terminal_interface-curses__adb.htm#ref_910_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_952_32" HREF="terminal_interface-curses__adb.htm#ref_910_32">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                               <FONT COLOR=red><A NAME="ref_953_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Mode</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_9">Timeout_Mode</A>;
++                               <FONT COLOR=red><A NAME="ref_954_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Amount</A></FONT> : <b>in</b> Natural); <FONT COLOR=green><EM>--  in Milliseconds</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: timeout()</EM></FONT>
+    <FONT COLOR=green><EM>--  Instead of overloading the semantic of the sign of amount, we</EM></FONT>
+@@ -960,109 +965,109 @@
+    <FONT COLOR=green><EM>--  evaluated.</EM></FONT>
+    <FONT COLOR=green><EM>--  We don't inline this procedure.</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_51"#2|</EM></FONT>
+-   <b>procedure</b> Set_Escape_Timer_Mode
+-     (<FONT COLOR=red><A NAME="ref_960_7" HREF="terminal_interface-curses__adb.htm#ref_986_7">Win</A></FONT>       : <b>in</b> Window := Standard_Window;
+-      Timer_Off : <b>in</b> Boolean := False);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__adb.htm#ref_931_14">Set_Escape_Timer_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Escape_Timer_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_964_14">Set_Escape_Timer_Mode</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_52"#2|</EM></FONT>
+-   <b>procedure</b> Set_NL_Mode (SwitchOn : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_975_14" HREF="terminal_interface-curses__adb.htm#ref_945_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_975_27" HREF="terminal_interface-curses__adb.htm#ref_945_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: nonl()</EM></FONT>
+-   <b>pragma</b> Inline (Set_NL_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_975_14">Set_NL_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_53"#2|</EM></FONT>
+-   <b>procedure</b> Clear_On_Next_Update
+-     (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__adb.htm#ref_1019_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+-      Do_Clear : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_981_14" HREF="terminal_interface-curses__adb.htm#ref_964_14">Clear_On_Next_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_982_7" HREF="terminal_interface-curses__adb.htm#ref_965_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_983_7" HREF="terminal_interface-curses__adb.htm#ref_966_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Clear_On_Next_Update);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_981_14">Clear_On_Next_Update</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_54"#2|</EM></FONT>
+-   <b>procedure</b> Use_Insert_Delete_Line
+-     (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_1031_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+-      Do_Idl : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__adb.htm#ref_976_14">Use_Insert_Delete_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__adb.htm#ref_977_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__adb.htm#ref_978_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Use_Insert_Delete_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_988_14">Use_Insert_Delete_Line</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_55"#2|</EM></FONT>
+-   <b>procedure</b> Use_Insert_Delete_Character
+-     (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Win</A></FONT>    : <b>in</b> Window := Standard_Window;
+-      Do_Idc : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_995_14" HREF="terminal_interface-curses__adb.htm#ref_988_14">Use_Insert_Delete_Character</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_996_7" HREF="terminal_interface-curses__adb.htm#ref_989_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_997_7" HREF="terminal_interface-curses__adb.htm#ref_990_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Use_Insert_Delete_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_995_14">Use_Insert_Delete_Character</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_56"#2|</EM></FONT>
+-   <b>procedure</b> Leave_Cursor_After_Update
+-     (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_1055_7">Win</A></FONT>      : <b>in</b> Window := Standard_Window;
+-      Do_Leave : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1002_14" HREF="terminal_interface-curses__adb.htm#ref_998_14">Leave_Cursor_After_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1003_7" HREF="terminal_interface-curses__adb.htm#ref_999_7">Win</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1004_7" HREF="terminal_interface-curses__adb.htm#ref_1000_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Leave_Cursor_After_Update);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1002_14">Leave_Cursor_After_Update</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_57"#2|</EM></FONT>
+-   <b>procedure</b> Immediate_Update_Mode
+-     (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_1067_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+-      Mode : <b>in</b> Boolean := False);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1009_14" HREF="terminal_interface-curses__adb.htm#ref_1010_14">Immediate_Update_Mode</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1010_7" HREF="terminal_interface-curses__adb.htm#ref_1011_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__adb.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Immediate_Update_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Immediate_Update_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_58"#2|</EM></FONT>
+-   <b>procedure</b> Allow_Scrolling
+-     (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1079_7">Win</A></FONT>  : <b>in</b> Window := Standard_Window;
+-      Mode : <b>in</b> Boolean := False);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1016_14" HREF="terminal_interface-curses__adb.htm#ref_1020_14">Allow_Scrolling</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1017_7" HREF="terminal_interface-curses__adb.htm#ref_1021_7">Win</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__adb.htm#ref_1022_7">Mode</A></FONT> : <b>in</b> Boolean := False);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Allow_Scrolling);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Allow_Scrolling</A>);
+ 
+-   <b>function</b> Scrolling_Allowed (Win : Window := Standard_Window) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1022_13" HREF="terminal_interface-curses__adb.htm#ref_1032_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1022_32" HREF="terminal_interface-curses__adb.htm#ref_1032_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  There is no such function in the C interface.</EM></FONT>
+-   <b>pragma</b> Inline (Scrolling_Allowed);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1022_13">Scrolling_Allowed</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_59"#2|</EM></FONT>
+-   <b>procedure</b> Set_Scroll_Region
+-     (<FONT COLOR=red><A NAME="ref_1023_7" HREF="terminal_interface-curses__adb.htm#ref_1098_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1024_7" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+-      Bottom_Line : <b>in</b> Line_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1027_14" HREF="terminal_interface-curses__adb.htm#ref_1041_14">Set_Scroll_Region</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1028_7" HREF="terminal_interface-curses__adb.htm#ref_1042_7">Win</A></FONT>         : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1029_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Top_Line</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: setscrreg()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Scroll_Region);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1027_14">Set_Scroll_Region</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_60"#2|</EM></FONT>
+-   <b>procedure</b> Update_Screen;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1040_14" HREF="terminal_interface-curses__adb.htm#ref_1057_14">Update_Screen</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT>
+-   <b>pragma</b> Inline (Update_Screen);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Update_Screen</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_61"#2|</EM></FONT>
+-   <b>procedure</b> Refresh (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1045_14" HREF="terminal_interface-curses__adb.htm#ref_1067_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_23" HREF="terminal_interface-curses__adb.htm#ref_1067_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  There is an overloaded Refresh for Pads.</EM></FONT>
+    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: refresh()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_62"#2|</EM></FONT>
+-   <b>procedure</b> Refresh_Without_Update
+-     (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1052_14" HREF="terminal_interface-curses__adb.htm#ref_1077_14">Refresh_Without_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1053_7" HREF="terminal_interface-curses__adb.htm#ref_1078_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  There is an overloaded Refresh_Without_Update for Pads.</EM></FONT>
+    <FONT COLOR=green><EM>--  The Inline pragma appears there</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_63"#2|</EM></FONT>
+-   <b>procedure</b> Redraw (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1059_14" HREF="terminal_interface-curses__adb.htm#ref_1088_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1088_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_64"#2|</EM></FONT>
+-   <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="ref_1058_22" HREF="terminal_interface-curses__adb.htm#ref_1155_7">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                     <FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Begin_Line</A></FONT> : <b>in</b> Line_Position;
+-                     Line_Count : <b>in</b> Positive);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1063_14" HREF="terminal_interface-curses__adb.htm#ref_1098_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1063_22" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Win</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1064_22" HREF="terminal_interface-curses__adb.htm#ref_1100_7">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                     <FONT COLOR=red><A NAME="ref_1065_22" HREF="terminal_interface-curses__adb.htm#ref_1101_7">Line_Count</A></FONT> : <b>in</b> Positive);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT>
+    <b>pragma</b> Inline (Redraw);
+ 
+@@ -1070,99 +1075,99 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_65"#2|</EM></FONT>
+-   <b>procedure</b> Erase (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1074_14" HREF="terminal_interface-curses__adb.htm#ref_1115_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1074_21" HREF="terminal_interface-curses__adb.htm#ref_1115_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: erase()</EM></FONT>
+-   <b>pragma</b> Inline (Erase);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Erase</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_66"#2|</EM></FONT>
+-   <b>procedure</b> Clear
+-     (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1080_14" HREF="terminal_interface-curses__adb.htm#ref_1125_14">Clear</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1081_7" HREF="terminal_interface-curses__adb.htm#ref_1125_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: clear()</EM></FONT>
+-   <b>pragma</b> Inline (Clear);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Clear</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_67"#2|</EM></FONT>
+-   <b>procedure</b> Clear_To_End_Of_Screen
+-     (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1087_14" HREF="terminal_interface-curses__adb.htm#ref_1135_14">Clear_To_End_Of_Screen</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1088_7" HREF="terminal_interface-curses__adb.htm#ref_1135_38">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: clrtobot()</EM></FONT>
+-   <b>pragma</b> Inline (Clear_To_End_Of_Screen);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1087_14">Clear_To_End_Of_Screen</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_68"#2|</EM></FONT>
+-   <b>procedure</b> Clear_To_End_Of_Line
+-     (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1094_14" HREF="terminal_interface-curses__adb.htm#ref_1145_14">Clear_To_End_Of_Line</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1095_7" HREF="terminal_interface-curses__adb.htm#ref_1145_36">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: clrtoeol()</EM></FONT>
+-   <b>pragma</b> Inline (Clear_To_End_Of_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Clear_To_End_Of_Line</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_69"#2|</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
+    <FONT COLOR=green><EM>--  TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></FONT>
+    <FONT COLOR=green><EM>--  because in C it is common to see bkgdset(A_BOLD) or</EM></FONT>
+    <FONT COLOR=green><EM>--  bkgdset(COLOR_PAIR(n))</EM></FONT>
+-   <b>procedure</b> Set_Background
+-     (<FONT COLOR=red><A NAME="ref_1104_7" HREF="terminal_interface-curses__adb.htm#ref_1212_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-      Ch  : <b>in</b> Attributed_Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1108_14" HREF="terminal_interface-curses__adb.htm#ref_1155_14">Set_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1109_7" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1110_7" HREF="terminal_interface-curses__adb.htm#ref_1157_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: bkgdset()</EM></FONT>
+-   <b>pragma</b> Inline (Set_Background);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1108_14">Set_Background</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_70"#2|</EM></FONT>
+-   <b>procedure</b> Change_Background
+-     (<FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1222_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-      Ch  : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1116_14" HREF="terminal_interface-curses__adb.htm#ref_1165_14">Change_Background</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1117_7" HREF="terminal_interface-curses__adb.htm#ref_1166_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1118_7" HREF="terminal_interface-curses__adb.htm#ref_1167_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: bkgd()</EM></FONT>
+-   <b>pragma</b> Inline (Change_Background);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1116_14">Change_Background</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_71"#2|</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
+    <FONT COLOR=green><EM>--  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT>
+-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Get_Background</A> (Win : Window := Standard_Window)
+-     <b>return</b> Attributed_Character;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1125_13" HREF="terminal_interface-curses__adb.htm#ref_1177_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_29" HREF="terminal_interface-curses__adb.htm#ref_1177_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
++     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: bkgdget()</EM></FONT>
+-   <b>pragma</b> Inline (Get_Background);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1125_13">Get_Background</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_72"#2|</EM></FONT>
+-   <b>procedure</b> Untouch (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1136_14" HREF="terminal_interface-curses__adb.htm#ref_1212_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1136_23" HREF="terminal_interface-curses__adb.htm#ref_1212_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Untouch);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1136_14">Untouch</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_73"#2|</EM></FONT>
+-   <b>procedure</b> Touch (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1141_14" HREF="terminal_interface-curses__adb.htm#ref_1203_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1203_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_74"#2|</EM></FONT>
+-   <b>procedure</b> Touch (<FONT COLOR=red><A NAME="ref_1140_21" HREF="terminal_interface-curses__adb.htm#ref_1277_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                    <FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1278_21">Start</A></FONT> : <b>in</b> Line_Position;
+-                    Count : <b>in</b> Positive);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__adb.htm#ref_1221_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_21" HREF="terminal_interface-curses__adb.htm#ref_1221_21">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                    <FONT COLOR=red><A NAME="ref_1146_21" HREF="terminal_interface-curses__adb.htm#ref_1222_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                    <FONT COLOR=red><A NAME="ref_1147_21" HREF="terminal_interface-curses__adb.htm#ref_1223_21">Count</A></FONT> : <b>in</b> Positive);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT>
+    <b>pragma</b> Inline (Touch);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_75"#2|</EM></FONT>
+-   <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="ref_1147_35" HREF="terminal_interface-curses__adb.htm#ref_1242_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                                  <FONT COLOR=red><A NAME="ref_1148_35" HREF="terminal_interface-curses__adb.htm#ref_1243_35">Start</A></FONT> : <b>in</b> Line_Position;
+-                                  <FONT COLOR=red><A NAME="ref_1149_35" HREF="terminal_interface-curses__adb.htm#ref_1244_35">Count</A></FONT> : <b>in</b> Positive;
+-                                  State : <b>in</b> Boolean);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1152_14" HREF="terminal_interface-curses__adb.htm#ref_1186_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1152_35" HREF="terminal_interface-curses__adb.htm#ref_1186_35">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                                  <FONT COLOR=red><A NAME="ref_1153_35" HREF="terminal_interface-curses__adb.htm#ref_1187_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                                  <FONT COLOR=red><A NAME="ref_1154_35" HREF="terminal_interface-curses__adb.htm#ref_1188_35">Count</A></FONT> : <b>in</b> Positive;
++                                  <FONT COLOR=red><A NAME="ref_1155_35" HREF="terminal_interface-curses__adb.htm#ref_1189_35">State</A></FONT> : <b>in</b> Boolean);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT>
+-   <b>pragma</b> Inline (Change_Lines_Status);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Change_Lines_Status</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_76"#2|</EM></FONT>
+-   <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="ref_1155_25" HREF="terminal_interface-curses__adb.htm#ref_1286_7">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                        Line : Line_Position) <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1160_13" HREF="terminal_interface-curses__adb.htm#ref_1229_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1160_25" HREF="terminal_interface-curses__adb.htm#ref_1230_7">Win</A></FONT>  : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1161_25" HREF="terminal_interface-curses__adb.htm#ref_1231_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_77"#2|</EM></FONT>
+-   <b>function</b> Is_Touched (Win : Window := Standard_Window) <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_78"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1165_13" HREF="terminal_interface-curses__adb.htm#ref_1243_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1165_25" HREF="terminal_interface-curses__adb.htm#ref_1244_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT>
+    <b>pragma</b> Inline (Is_Touched);
+ 
+@@ -1170,176 +1175,176 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_78"#2|</EM></FONT>
+-   <b>procedure</b> Copy
+-     (<FONT COLOR=red><A NAME="ref_1170_7" HREF="terminal_interface-curses__adb.htm#ref_1313_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1171_7" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1172_7" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1173_7" HREF="terminal_interface-curses__adb.htm#ref_1316_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1317_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
+-      Non_Destructive_Mode     : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1174_14" HREF="terminal_interface-curses__adb.htm#ref_1256_14">Copy</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1257_7">Source_Window</A></FONT>            : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1258_7">Destination_Window</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1259_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1178_7" HREF="terminal_interface-curses__adb.htm#ref_1260_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1179_7" HREF="terminal_interface-curses__adb.htm#ref_1261_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1262_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1263_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1264_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1183_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Non_Destructive_Mode</A></FONT>     : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT>
+-   <b>pragma</b> Inline (Copy);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1174_14">Copy</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_79"#2|</EM></FONT>
+-   <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="ref_1183_25" HREF="terminal_interface-curses__adb.htm#ref_1349_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                        Destination_Window : <b>in</b> Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1188_14" HREF="terminal_interface-curses__adb.htm#ref_1292_14">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1188_25" HREF="terminal_interface-curses__adb.htm#ref_1293_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                        <FONT COLOR=red><A NAME="ref_1189_25" HREF="terminal_interface-curses__adb.htm#ref_1294_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT>
+-   <b>pragma</b> Inline (Overwrite);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overwrite</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_80"#2|</EM></FONT>
+-   <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="ref_1189_23" HREF="terminal_interface-curses__adb.htm#ref_1361_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-                      Destination_Window : <b>in</b> Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1194_14" HREF="terminal_interface-curses__adb.htm#ref_1304_14">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1194_23" HREF="terminal_interface-curses__adb.htm#ref_1305_7">Source_Window</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                      <FONT COLOR=red><A NAME="ref_1195_23" HREF="terminal_interface-curses__adb.htm#ref_1306_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT>
+-   <b>pragma</b> Inline (Overlay);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1194_14">Overlay</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_81"#2|</EM></FONT>
+-   <b>procedure</b> Insert_Delete_Lines
+-     (<FONT COLOR=red><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1374_7">Win</A></FONT>   : <b>in</b> Window  := Standard_Window;
+-      Lines : <b>in</b> Integer := 1); <FONT COLOR=green><EM>--  default is to insert one line above</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1204_14" HREF="terminal_interface-curses__adb.htm#ref_1317_14">Insert_Delete_Lines</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1205_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Win</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1206_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Lines</A></FONT> : <b>in</b> Integer := 1); <FONT COLOR=green><EM>--  default is to insert one line above</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: insdelln()</EM></FONT>
+-   <b>pragma</b> Inline (Insert_Delete_Lines);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1204_14">Insert_Delete_Lines</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_82"#2|</EM></FONT>
+-   <b>procedure</b> Delete_Line (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1212_14" HREF="terminal_interface-curses__adb.htm#ref_1329_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1212_27" HREF="terminal_interface-curses__adb.htm#ref_1329_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: deleteln()</EM></FONT>
+-   <b>pragma</b> Inline (Delete_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Delete_Line</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_83"#2|</EM></FONT>
+-   <b>procedure</b> Insert_Line (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1218_14" HREF="terminal_interface-curses__adb.htm#ref_1335_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1218_27" HREF="terminal_interface-curses__adb.htm#ref_1335_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: insertln()</EM></FONT>
+-   <b>pragma</b> Inline (Insert_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1218_14">Insert_Line</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_84"#2|</EM></FONT>
+-   <b>procedure</b> Get_Size
+-     (<FONT COLOR=red><A NAME="ref_1224_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT>               : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1225_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      Number_Of_Columns : <b>out</b> Column_Count);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1228_14" HREF="terminal_interface-curses__adb.htm#ref_1342_14">Get_Size</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1229_7" HREF="terminal_interface-curses__adb.htm#ref_1343_7">Win</A></FONT>               : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1230_7" HREF="terminal_interface-curses__adb.htm#ref_1344_7">Number_Of_Lines</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__adb.htm#ref_1345_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Size);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1228_14">Get_Size</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_85"#2|</EM></FONT>
+-   <b>procedure</b> Get_Window_Position
+-     (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1415_7">Win</A></FONT>             : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1416_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Top_Left_Column : <b>out</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1236_14" HREF="terminal_interface-curses__adb.htm#ref_1362_14">Get_Window_Position</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1237_7" HREF="terminal_interface-curses__adb.htm#ref_1363_7">Win</A></FONT>             : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1238_7" HREF="terminal_interface-curses__adb.htm#ref_1364_7">Top_Left_Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1239_7" HREF="terminal_interface-curses__adb.htm#ref_1365_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Window_Position);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1236_14">Get_Window_Position</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_86"#2|</EM></FONT>
+-   <b>procedure</b> Get_Cursor_Position
+-     (<FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1427_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1428_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Column : <b>out</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1244_14" HREF="terminal_interface-curses__adb.htm#ref_1380_14">Get_Cursor_Position</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1245_7" HREF="terminal_interface-curses__adb.htm#ref_1381_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1246_7" HREF="terminal_interface-curses__adb.htm#ref_1382_7">Line</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1247_7" HREF="terminal_interface-curses__adb.htm#ref_1383_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT>
+-   <b>pragma</b> Inline (Get_Cursor_Position);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Get_Cursor_Position</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_87"#2|</EM></FONT>
+-   <b>procedure</b> Get_Origin_Relative_To_Parent
+-     (<FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1439_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1250_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Top_Left_Column</A></FONT>    : <b>out</b> Column_Position;
+-      Is_Not_A_Subwindow : <b>out</b> Boolean);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1252_14" HREF="terminal_interface-curses__adb.htm#ref_1398_14">Get_Origin_Relative_To_Parent</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1253_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT>                : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1254_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Top_Left_Line</A></FONT>      : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1255_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Top_Left_Column</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1256_7" HREF="terminal_interface-curses__adb.htm#ref_1402_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Instead of placing -1 in the coordinates as return, we use a boolean</EM></FONT>
+    <FONT COLOR=green><EM>--  to return the info that the window has no parent.</EM></FONT>
+-   <b>pragma</b> Inline (Get_Origin_Relative_To_Parent);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1252_14">Get_Origin_Relative_To_Parent</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_88"#2|</EM></FONT>
+-   <b>function</b> New_Pad (<FONT COLOR=red><A NAME="ref_1262_22" HREF="terminal_interface-curses__adb.htm#ref_1458_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                     Columns : Column_Count) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1267_13" HREF="terminal_interface-curses__adb.htm#ref_1424_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_22" HREF="terminal_interface-curses__adb.htm#ref_1424_22">Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                     <FONT COLOR=red><A NAME="ref_1268_22" HREF="terminal_interface-curses__adb.htm#ref_1425_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT>
+-   <b>pragma</b> Inline (New_Pad);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1267_13">New_Pad</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_89"#2|</EM></FONT>
+-   <b>function</b> Sub_Pad
+-     (<FONT COLOR=red><A NAME="ref_1269_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1270_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_1271_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+-      <FONT COLOR=red><A NAME="ref_1272_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      First_Column_Position : Column_Position) <b>return</b> Window;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1273_13" HREF="terminal_interface-curses__adb.htm#ref_1439_13">Sub_Pad</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1274_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Pad</A></FONT>                   : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1275_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Number_Of_Lines</A></FONT>       : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1276_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Number_Of_Columns</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++      <FONT COLOR=red><A NAME="ref_1277_7" HREF="terminal_interface-curses__adb.htm#ref_1443_7">First_Line_Position</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1278_7" HREF="terminal_interface-curses__adb.htm#ref_1444_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT>
+-   <b>pragma</b> Inline (Sub_Pad);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1273_13">Sub_Pad</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_90"#2|</EM></FONT>
+-   <b>procedure</b> Refresh
+-     (<FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1281_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1282_7" HREF="terminal_interface-curses__adb.htm#ref_1505_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1283_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Destination_Right_Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1283_14" HREF="terminal_interface-curses__adb.htm#ref_1467_14">Refresh</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1468_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__adb.htm#ref_1469_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__adb.htm#ref_1470_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1471_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1472_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1473_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1290_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT>
+    <b>pragma</b> Inline (Refresh);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_91"#2|</EM></FONT>
+-   <b>procedure</b> Refresh_Without_Update
+-     (<FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1532_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+-      <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1533_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__adb.htm#ref_1534_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__adb.htm#ref_1535_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__adb.htm#ref_1536_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Destination_Right_Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1295_14" HREF="terminal_interface-curses__adb.htm#ref_1497_14">Refresh_Without_Update</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1498_7">Pad</A></FONT>                      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1297_7" HREF="terminal_interface-curses__adb.htm#ref_1499_7">Source_Top_Row</A></FONT>           : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1298_7" HREF="terminal_interface-curses__adb.htm#ref_1500_7">Source_Left_Column</A></FONT>       : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__adb.htm#ref_1501_7">Destination_Top_Row</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1300_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Destination_Left_Column</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1301_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Destination_Bottom_Row</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1302_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT>
+    <b>pragma</b> Inline (Refresh_Without_Update);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_92"#2|</EM></FONT>
+-   <b>procedure</b> Add_Character_To_Pad_And_Echo_It
+-     (<FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1562_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A>;
+-      Ch  : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1307_14" HREF="terminal_interface-curses__adb.htm#ref_1527_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1528_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1309_7" HREF="terminal_interface-curses__adb.htm#ref_1529_7">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT>
+ 
+-   <b>procedure</b> Add_Character_To_Pad_And_Echo_It
+-     (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1575_7">Pad</A></FONT> : <b>in</b> Window;
+-      Ch  : <b>in</b> Character);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1312_14" HREF="terminal_interface-curses__adb.htm#ref_1540_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__adb.htm#ref_1541_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++      <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__adb.htm#ref_1542_7">Ch</A></FONT>  : <b>in</b> Character);
+    <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_93"#2|</EM></FONT>
+-   <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="ref_1317_22" HREF="terminal_interface-curses__adb.htm#ref_1586_22">Win</A></FONT>    : <b>in</b> Window  := Standard_Window;
+-                     Amount : <b>in</b> Integer := 1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1322_14" HREF="terminal_interface-curses__adb.htm#ref_1552_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_22" HREF="terminal_interface-curses__adb.htm#ref_1552_22">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>  := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1323_22" HREF="terminal_interface-curses__adb.htm#ref_1553_22">Amount</A></FONT> : <b>in</b> Integer := 1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: scroll()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: scrl()</EM></FONT>
+-   <b>pragma</b> Inline (Scroll);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Scroll</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_94"#2|</EM></FONT>
+-   <b>procedure</b> Delete_Character (Win : <b>in</b> Window := Standard_Window);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1334_14" HREF="terminal_interface-curses__adb.htm#ref_1565_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1334_32" HREF="terminal_interface-curses__adb.htm#ref_1565_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: delch()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_95"#2|</EM></FONT>
+-   <b>procedure</b> Delete_Character
+-     (<FONT COLOR=red><A NAME="ref_1335_7" HREF="terminal_interface-curses__adb.htm#ref_1610_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1336_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Column : <b>in</b> Column_Position);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1339_14" HREF="terminal_interface-curses__adb.htm#ref_1575_14">Delete_Character</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1340_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1341_7" HREF="terminal_interface-curses__adb.htm#ref_1577_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1342_7" HREF="terminal_interface-curses__adb.htm#ref_1578_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvdelch()</EM></FONT>
+    <b>pragma</b> Inline (Delete_Character);
+@@ -1348,17 +1353,17 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_96"#2|</EM></FONT>
+-   <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Peek</A> (Win : Window := Standard_Window)
+-     <b>return</b> Attributed_Character;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1352_13" HREF="terminal_interface-curses__adb.htm#ref_1590_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1352_19" HREF="terminal_interface-curses__adb.htm#ref_1590_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>)
++     <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+    <FONT COLOR=green><EM>--  AKA: inch()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_97"#2|</EM></FONT>
+-   <b>function</b> Peek
+-     (<FONT COLOR=red><A NAME="ref_1354_7" HREF="terminal_interface-curses__adb.htm#ref_1634_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1355_7" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      Column : Column_Position) <b>return</b> Attributed_Character;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1358_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1359_7" HREF="terminal_interface-curses__adb.htm#ref_1600_7">Win</A></FONT>    : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__adb.htm#ref_1601_7">Line</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__adb.htm#ref_1602_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvinch()</EM></FONT>
+    <FONT COLOR=green><EM>--  More Peek's follow, pragma Inline appears later.</EM></FONT>
+@@ -1367,17 +1372,17 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_98"#2|</EM></FONT>
+-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1366_22" HREF="terminal_interface-curses__adb.htm#ref_1646_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+-                     Ch  : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1371_14" HREF="terminal_interface-curses__adb.htm#ref_1612_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1371_22" HREF="terminal_interface-curses__adb.htm#ref_1612_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1613_22">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: insch()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_99"#2|</EM></FONT>
+-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1658_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                     <FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1659_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                     <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1660_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
+-                     Ch     : <b>in</b> Attributed_Character);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1377_14" HREF="terminal_interface-curses__adb.htm#ref_1623_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1377_22" HREF="terminal_interface-curses__adb.htm#ref_1624_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1378_22" HREF="terminal_interface-curses__adb.htm#ref_1625_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                     <FONT COLOR=red><A NAME="ref_1379_22" HREF="terminal_interface-curses__adb.htm#ref_1626_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                     <FONT COLOR=red><A NAME="ref_1380_22" HREF="terminal_interface-curses__adb.htm#ref_1627_7">Ch</A></FONT>     : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvinsch()</EM></FONT>
+ 
+@@ -1385,21 +1390,21 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_100"#2|</EM></FONT>
+-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1384_22" HREF="terminal_interface-curses__adb.htm#ref_1677_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+-                     <FONT COLOR=red><A NAME="ref_1385_22" HREF="terminal_interface-curses__adb.htm#ref_1678_22">Str</A></FONT> : <b>in</b> String;
+-                     Len : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1389_14" HREF="terminal_interface-curses__adb.htm#ref_1643_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1389_22" HREF="terminal_interface-curses__adb.htm#ref_1643_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1390_22" HREF="terminal_interface-curses__adb.htm#ref_1644_22">Str</A></FONT> : <b>in</b> String;
++                     <FONT COLOR=red><A NAME="ref_1391_22" HREF="terminal_interface-curses__adb.htm#ref_1645_22">Len</A></FONT> : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: winsstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: insnstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: insstr()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_101"#2|</EM></FONT>
+-   <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1696_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                     <FONT COLOR=red><A NAME="ref_1394_22" HREF="terminal_interface-curses__adb.htm#ref_1697_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                     <FONT COLOR=red><A NAME="ref_1395_22" HREF="terminal_interface-curses__adb.htm#ref_1698_7">Column</A></FONT> : <b>in</b> Column_Position;
+-                     <FONT COLOR=red><A NAME="ref_1396_22" HREF="terminal_interface-curses__adb.htm#ref_1699_7">Str</A></FONT>    : <b>in</b> String;
+-                     Len    : <b>in</b> Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__adb.htm#ref_1661_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1398_22" HREF="terminal_interface-curses__adb.htm#ref_1662_7">Win</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1399_22" HREF="terminal_interface-curses__adb.htm#ref_1663_7">Line</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                     <FONT COLOR=red><A NAME="ref_1400_22" HREF="terminal_interface-curses__adb.htm#ref_1664_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                     <FONT COLOR=red><A NAME="ref_1401_22" HREF="terminal_interface-curses__adb.htm#ref_1665_7">Str</A></FONT>    : <b>in</b> String;
++                     <FONT COLOR=red><A NAME="ref_1402_22" HREF="terminal_interface-curses__adb.htm#ref_1666_7">Len</A></FONT>    : <b>in</b> Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwinsstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvinsnstr()</EM></FONT>
+@@ -1410,21 +1415,21 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_102"#2|</EM></FONT>
+-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1409_20" HREF="terminal_interface-curses__adb.htm#ref_1719_20">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+-                   <FONT COLOR=red><A NAME="ref_1410_20" HREF="terminal_interface-curses__adb.htm#ref_1720_20">Str</A></FONT> : <b>out</b> String;
+-                   Len : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1414_14" HREF="terminal_interface-curses__adb.htm#ref_1685_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1414_20" HREF="terminal_interface-curses__adb.htm#ref_1685_20">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                   <FONT COLOR=red><A NAME="ref_1415_20" HREF="terminal_interface-curses__adb.htm#ref_1686_20">Str</A></FONT> : <b>out</b> String;
++                   <FONT COLOR=red><A NAME="ref_1416_20" HREF="terminal_interface-curses__adb.htm#ref_1687_20">Len</A></FONT> : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: winstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: innstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: instr()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_103"#2|</EM></FONT>
+-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1749_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                   <FONT COLOR=red><A NAME="ref_1419_20" HREF="terminal_interface-curses__adb.htm#ref_1750_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                   <FONT COLOR=red><A NAME="ref_1420_20" HREF="terminal_interface-curses__adb.htm#ref_1751_7">Column</A></FONT> : <b>in</b>  Column_Position;
+-                   <FONT COLOR=red><A NAME="ref_1421_20" HREF="terminal_interface-curses__adb.htm#ref_1752_7">Str</A></FONT>    : <b>out</b> String;
+-                   Len    : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1423_14" HREF="terminal_interface-curses__adb.htm#ref_1714_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1423_20" HREF="terminal_interface-curses__adb.htm#ref_1715_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                   <FONT COLOR=red><A NAME="ref_1424_20" HREF="terminal_interface-curses__adb.htm#ref_1716_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_1425_20" HREF="terminal_interface-curses__adb.htm#ref_1717_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_1426_20" HREF="terminal_interface-curses__adb.htm#ref_1718_7">Str</A></FONT>    : <b>out</b> String;
++                   <FONT COLOR=red><A NAME="ref_1427_20" HREF="terminal_interface-curses__adb.htm#ref_1719_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwinstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvinnstr()</EM></FONT>
+@@ -1434,21 +1439,21 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_104"#2|</EM></FONT>
+-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1433_20" HREF="terminal_interface-curses__adb.htm#ref_1761_7">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+-                   <FONT COLOR=red><A NAME="ref_1434_20" HREF="terminal_interface-curses__adb.htm#ref_1762_7">Str</A></FONT> : <b>out</b> Attributed_String;
+-                   Len : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1438_14" HREF="terminal_interface-curses__adb.htm#ref_1726_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1438_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                   <FONT COLOR=red><A NAME="ref_1439_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++                   <FONT COLOR=red><A NAME="ref_1440_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Len</A></FONT> : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: winchstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: inchnstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: inchstr()</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_105"#2|</EM></FONT>
+-   <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1798_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                   <FONT COLOR=red><A NAME="ref_1443_20" HREF="terminal_interface-curses__adb.htm#ref_1799_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                   <FONT COLOR=red><A NAME="ref_1444_20" HREF="terminal_interface-curses__adb.htm#ref_1800_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+-                   <FONT COLOR=red><A NAME="ref_1445_20" HREF="terminal_interface-curses__adb.htm#ref_1801_7">Str</A></FONT>    : <b>out</b> Attributed_String;
+-                   Len    : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1447_14" HREF="terminal_interface-curses__adb.htm#ref_1763_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1447_20" HREF="terminal_interface-curses__adb.htm#ref_1764_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                   <FONT COLOR=red><A NAME="ref_1448_20" HREF="terminal_interface-curses__adb.htm#ref_1765_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_1449_20" HREF="terminal_interface-curses__adb.htm#ref_1766_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                   <FONT COLOR=red><A NAME="ref_1450_20" HREF="terminal_interface-curses__adb.htm#ref_1767_7">Str</A></FONT>    : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
++                   <FONT COLOR=red><A NAME="ref_1451_20" HREF="terminal_interface-curses__adb.htm#ref_1768_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwinchstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvinchnstr()</EM></FONT>
+@@ -1459,10 +1464,10 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_106"#2|</EM></FONT>
+-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1458_19" HREF="terminal_interface-curses__adb.htm#ref_1809_19">Win</A></FONT> : <b>in</b>  Window := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_1459_19" HREF="terminal_interface-curses__adb.htm#ref_1810_19">Str</A></FONT> : <b>out</b> String;
+-                  Len : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1463_14" HREF="terminal_interface-curses__adb.htm#ref_1775_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1463_19" HREF="terminal_interface-curses__adb.htm#ref_1775_19">Win</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_1464_19" HREF="terminal_interface-curses__adb.htm#ref_1776_19">Str</A></FONT> : <b>out</b> String;
++                  <FONT COLOR=red><A NAME="ref_1465_19" HREF="terminal_interface-curses__adb.htm#ref_1777_19">Len</A></FONT> : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: wgetstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: getnstr()</EM></FONT>
+@@ -1470,12 +1475,12 @@
+    <FONT COLOR=green><EM>--  actually getstr is not supported because that results in buffer</EM></FONT>
+    <FONT COLOR=green><EM>--  overflows.</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_107"#2|</EM></FONT>
+-   <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1469_19" HREF="terminal_interface-curses__adb.htm#ref_1839_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+-                  <FONT COLOR=red><A NAME="ref_1470_19" HREF="terminal_interface-curses__adb.htm#ref_1840_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-                  <FONT COLOR=red><A NAME="ref_1471_19" HREF="terminal_interface-curses__adb.htm#ref_1841_7">Column</A></FONT> : <b>in</b>  Column_Position;
+-                  <FONT COLOR=red><A NAME="ref_1472_19" HREF="terminal_interface-curses__adb.htm#ref_1842_7">Str</A></FONT>    : <b>out</b> String;
+-                  Len    : <b>in</b>  Integer := -1);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1474_14" HREF="terminal_interface-curses__adb.htm#ref_1804_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1474_19" HREF="terminal_interface-curses__adb.htm#ref_1805_7">Win</A></FONT>    : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                  <FONT COLOR=red><A NAME="ref_1475_19" HREF="terminal_interface-curses__adb.htm#ref_1806_7">Line</A></FONT>   : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_1476_19" HREF="terminal_interface-curses__adb.htm#ref_1807_7">Column</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++                  <FONT COLOR=red><A NAME="ref_1477_19" HREF="terminal_interface-curses__adb.htm#ref_1808_7">Str</A></FONT>    : <b>out</b> String;
++                  <FONT COLOR=red><A NAME="ref_1478_19" HREF="terminal_interface-curses__adb.htm#ref_1809_7">Len</A></FONT>    : <b>in</b>  Integer := -1);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvwgetstr()</EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: mvgetnstr()</EM></FONT>
+@@ -1488,90 +1493,90 @@
+ 
+    <FONT COLOR=green><EM>--  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
+ 
+-   <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="ref_1486_35">Three_Two_Three</A></FONT>,
+-                                  <FONT COLOR=red><A NAME="ref_1487_35">Four_Four</A></FONT>,
+-                                  <FONT COLOR=red><A NAME="ref_1488_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
+-        <FONT COLOR=red><A NAME="ref_1489_9"> </A></FONT>                         PC_Style_With_Index);  <FONT COLOR=green><EM>--  "</EM></FONT>
+-   <b>type</b> <FONT COLOR=red><A NAME="ref_1490_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="ref_1490_49">12</A></FONT>;
+-   <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1491_9">Soft_Label_Key_Format</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1491_35">Three_Two_Three</A></FONT>,
++                                  <FONT COLOR=red><A NAME="ref_1492_35">Four_Four</A></FONT>,
++                                  <FONT COLOR=red><A NAME="ref_1493_35">PC_Style</A></FONT>,              <FONT COLOR=green><EM>--  ncurses specific</EM></FONT>
++                                  <FONT COLOR=red><A NAME="ref_1494_35">PC_Style_With_Index</A></FONT>);  <FONT COLOR=green><EM>--  "</EM></FONT>
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1495_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1496_9">Label_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1496_33">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_1496_39">Centered</A></FONT>, <FONT COLOR=red><A NAME="ref_1496_49">Right</A></FONT>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_108"#2|</EM></FONT>
+-   <b>procedure</b> Init_Soft_Label_Keys
+-     (Format : <b>in</b> Soft_Label_Key_Format := Three_Two_Three);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1499_14" HREF="terminal_interface-curses__adb.htm#ref_1816_14">Init_Soft_Label_Keys</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1491_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1491_35">Three_Two_Three</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT>
+-   <b>pragma</b> Inline (Init_Soft_Label_Keys);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Init_Soft_Label_Keys</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_109"#2|</EM></FONT>
+-   <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1500_34" HREF="terminal_interface-curses__adb.htm#ref_1861_34">Label</A></FONT> : <b>in</b> Label_Number;
+-                                 <FONT COLOR=red><A NAME="ref_1501_34" HREF="terminal_interface-curses__adb.htm#ref_1862_34">Text</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">String</A>;
+-                                 Fmt   : <b>in</b> Label_Justification := Left);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1505_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1505_34" HREF="terminal_interface-curses__adb.htm#ref_1827_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
++                                 <FONT COLOR=red><A NAME="ref_1506_34" HREF="terminal_interface-curses__adb.htm#ref_1828_34">Text</A></FONT>  : <b>in</b> String;
++                                 <FONT COLOR=red><A NAME="ref_1507_34" HREF="terminal_interface-curses__adb.htm#ref_1829_34">Fmt</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1496_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1496_33">Left</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_110"#2|</EM></FONT>
+-   <b>procedure</b> Refresh_Soft_Label_Keys;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_111"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1512_14" HREF="terminal_interface-curses__adb.htm#ref_1846_14">Refresh_Soft_Label_Keys</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT>
+-   <b>pragma</b> Inline (Refresh_Soft_Label_Keys);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1512_14">Refresh_Soft_Label_Keys</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_111"#2|</EM></FONT>
+-   <b>procedure</b> Refresh_Soft_Label_Keys_Without_Update;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1517_14" HREF="terminal_interface-curses__adb.htm#ref_1856_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT>
+-   <b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1517_14">Refresh_Soft_Label_Keys_Without_Update</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_112"#2|</EM></FONT>
+-   <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1517_34" HREF="terminal_interface-curses__adb.htm#ref_1900_34">Label</A></FONT> : <b>in</b> Label_Number;
+-                                 Text  : <b>out</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1522_14" HREF="terminal_interface-curses__adb.htm#ref_1866_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1522_34" HREF="terminal_interface-curses__adb.htm#ref_1866_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>;
++                                 <FONT COLOR=red><A NAME="ref_1523_34" HREF="terminal_interface-curses__adb.htm#ref_1867_34">Text</A></FONT>  : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_113"#2|</EM></FONT>
+-   <b>function</b> Get_Soft_Label_Key (Label : <b>in</b> Label_Number) <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1527_13" HREF="terminal_interface-curses__adb.htm#ref_1875_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1527_33" HREF="terminal_interface-curses__adb.htm#ref_1875_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1495_9">Label_Number</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Get_Soft_Label_Key);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_114"#2|</EM></FONT>
+-   <b>procedure</b> Clear_Soft_Label_Keys;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1533_14" HREF="terminal_interface-curses__adb.htm#ref_1883_14">Clear_Soft_Label_Keys</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT>
+-   <b>pragma</b> Inline (Clear_Soft_Label_Keys);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1533_14">Clear_Soft_Label_Keys</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_115"#2|</EM></FONT>
+-   <b>procedure</b> Restore_Soft_Label_Keys;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1538_14" HREF="terminal_interface-curses__adb.htm#ref_1893_14">Restore_Soft_Label_Keys</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT>
+-   <b>pragma</b> Inline (Restore_Soft_Label_Keys);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1538_14">Restore_Soft_Label_Keys</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_116"#2|</EM></FONT>
+-   <b>procedure</b> Touch_Soft_Label_Keys;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_117"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1543_14" HREF="terminal_interface-curses__adb.htm#ref_1903_14">Touch_Soft_Label_Keys</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT>
+-   <b>pragma</b> Inline (Touch_Soft_Label_Keys);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1543_14">Touch_Soft_Label_Keys</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_117"#2|</EM></FONT>
+-   <b>procedure</b> Switch_Soft_Label_Key_Attributes
+-     (<FONT COLOR=red><A NAME="ref_1544_7" HREF="terminal_interface-curses__adb.htm#ref_1948_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
+-      On   : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1548_14" HREF="terminal_interface-curses__adb.htm#ref_1913_14">Switch_Soft_Label_Key_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1549_7" HREF="terminal_interface-curses__adb.htm#ref_1914_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
++      <FONT COLOR=red><A NAME="ref_1550_7" HREF="terminal_interface-curses__adb.htm#ref_1915_7">On</A></FONT>   : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: slk_attroff()</EM></FONT>
+-   <b>pragma</b> Inline (Switch_Soft_Label_Key_Attributes);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1548_14">Switch_Soft_Label_Key_Attributes</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_118"#2|</EM></FONT>
+-   <b>procedure</b> Set_Soft_Label_Key_Attributes
+-     (<FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1972_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
+-      Color : <b>in</b> Color_Pair := Color_Pair'First);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1556_14" HREF="terminal_interface-curses__adb.htm#ref_1937_14">Set_Soft_Label_Key_Attributes</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1557_7" HREF="terminal_interface-curses__adb.htm#ref_1938_7">Attr</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
++      <FONT COLOR=red><A NAME="ref_1558_7" HREF="terminal_interface-curses__adb.htm#ref_1939_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Soft_Label_Key_Attributes);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1556_14">Set_Soft_Label_Key_Attributes</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_119"#2|</EM></FONT>
+-   <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Character_Attribute_Set;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1563_13" HREF="terminal_interface-curses__adb.htm#ref_1953_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_120"#2|</EM></FONT>
+-   <b>function</b> Get_Soft_Label_Key_Attributes <b>return</b> Color_Pair;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1567_13" HREF="terminal_interface-curses__adb.htm#ref_1963_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
+    <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_121"#2|</EM></FONT>
+-   <b>procedure</b> Set_Soft_Label_Key_Color (Pair : <b>in</b> Color_Pair);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1572_14" HREF="terminal_interface-curses__adb.htm#ref_1973_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1572_40" HREF="terminal_interface-curses__adb.htm#ref_1973_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Soft_Label_Key_Color);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1572_14">Set_Soft_Label_Key_Color</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT>
+@@ -1582,21 +1587,21 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_122"#2|</EM></FONT>
+-   <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_2018_26">Key</A></FONT>    : <b>in</b> Special_Key_Code;
+-                         Enable : <b>in</b> Boolean := True);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1586_14" HREF="terminal_interface-curses__adb.htm#ref_1984_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1586_26" HREF="terminal_interface-curses__adb.htm#ref_1984_26">Key</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
++                         <FONT COLOR=red><A NAME="ref_1587_26" HREF="terminal_interface-curses__adb.htm#ref_1985_26">Enable</A></FONT> : <b>in</b> Boolean := True);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
+-   <b>pragma</b> Inline (Enable_Key);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1586_14">Enable_Key</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_123"#2|</EM></FONT>
+-   <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_2031_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">String</A>;
+-                         Key        : <b>in</b> Special_Key_Code);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1596_14" HREF="terminal_interface-curses__adb.htm#ref_1997_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1596_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Definition</A></FONT> : <b>in</b> String;
++                         <FONT COLOR=red><A NAME="ref_1597_26" HREF="terminal_interface-curses__adb.htm#ref_1998_26">Key</A></FONT>        : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
+-   <b>pragma</b> Inline (Define_Key);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1596_14">Define_Key</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
+@@ -1606,89 +1611,89 @@
+    <FONT COLOR=green><EM>--  | putwin, getwin are in the child package PutWin</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_124"#2|</EM></FONT>
+-   <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="ref_1605_24" HREF="terminal_interface-curses__adb.htm#ref_144_24">Key</A></FONT>  : <b>in</b>  Real_Key_Code;
+-                       Name : <b>out</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1610_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1610_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
++                       <FONT COLOR=red><A NAME="ref_1611_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  The external name for a real keystroke.</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_125"#2|</EM></FONT>
+-   <b>function</b> Key_Name (Key  : <b>in</b>  Real_Key_Code) <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1616_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1616_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></FONT>  : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <FONT COLOR=green><EM>--  We don't inline this routine</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_126"#2|</EM></FONT>
+-   <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="ref_1617_26" HREF="terminal_interface-curses__adb.htm#ref_2047_26">Ch</A></FONT>  : <b>in</b> Attributed_Character;
+-                         Str : <b>out</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1622_14" HREF="terminal_interface-curses__adb.htm#ref_2013_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1622_26" HREF="terminal_interface-curses__adb.htm#ref_2013_26">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
++                         <FONT COLOR=red><A NAME="ref_1623_26" HREF="terminal_interface-curses__adb.htm#ref_2014_26">Str</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_127"#2|</EM></FONT>
+-   <b>function</b> Un_Control (Ch  : <b>in</b> Attributed_Character) <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1627_13" HREF="terminal_interface-curses__adb.htm#ref_2022_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1627_25" HREF="terminal_interface-curses__adb.htm#ref_2022_25">Ch</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Un_Control);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_128"#2|</EM></FONT>
+-   <b>procedure</b> Delay_Output (Msecs : <b>in</b> Natural);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1633_14" HREF="terminal_interface-curses__adb.htm#ref_2030_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_1633_28" HREF="terminal_interface-curses__adb.htm#ref_2030_28">Msecs</A></FONT> : <b>in</b> Natural);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT>
+-   <b>pragma</b> Inline (Delay_Output);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Delay_Output</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_129"#2|</EM></FONT>
+-   <b>procedure</b> Flush_Input;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1638_14" HREF="terminal_interface-curses__adb.htm#ref_2040_14">Flush_Input</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT>
+-   <b>pragma</b> Inline (Flush_Input);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1638_14">Flush_Input</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_130"#2|</EM></FONT>
+-   <b>function</b> Baudrate <b>return</b> Natural;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1647_13" HREF="terminal_interface-curses__adb.htm#ref_2050_13">Baudrate</A></FONT> <b>return</b> Natural;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT>
+-   <b>pragma</b> Inline (Baudrate);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1647_13">Baudrate</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_131"#2|</EM></FONT>
+-   <b>function</b> Erase_Character <b>return</b> Character;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1652_13" HREF="terminal_interface-curses__adb.htm#ref_2058_13">Erase_Character</A></FONT> <b>return</b> Character;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT>
+-   <b>pragma</b> Inline (Erase_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1652_13">Erase_Character</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_132"#2|</EM></FONT>
+-   <b>function</b> Kill_Character <b>return</b> Character;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1657_13" HREF="terminal_interface-curses__adb.htm#ref_2066_13">Kill_Character</A></FONT> <b>return</b> Character;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT>
+-   <b>pragma</b> Inline (Kill_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1657_13">Kill_Character</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_133"#2|</EM></FONT>
+-   <b>function</b> Has_Insert_Character <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1662_13" HREF="terminal_interface-curses__adb.htm#ref_2074_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT>
+-   <b>pragma</b> Inline (Has_Insert_Character);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1662_13">Has_Insert_Character</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_134"#2|</EM></FONT>
+-   <b>function</b> Has_Insert_Line <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1667_13" HREF="terminal_interface-curses__adb.htm#ref_2086_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT>
+-   <b>pragma</b> Inline (Has_Insert_Line);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1667_13">Has_Insert_Line</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_135"#2|</EM></FONT>
+-   <b>function</b> Supported_Attributes <b>return</b> Character_Attribute_Set;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1672_13" HREF="terminal_interface-curses__adb.htm#ref_2098_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT>
+-   <b>pragma</b> Inline (Supported_Attributes);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1672_13">Supported_Attributes</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_136"#2|</EM></FONT>
+-   <b>procedure</b> Long_Name (Name : <b>out</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1677_14" HREF="terminal_interface-curses__adb.htm#ref_2108_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1677_25" HREF="terminal_interface-curses__adb.htm#ref_2108_25">Name</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_137"#2|</EM></FONT>
+-   <b>function</b> Long_Name <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1681_13" HREF="terminal_interface-curses__adb.htm#ref_2116_13">Long_Name</A></FONT> <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Long_Name);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_138"#2|</EM></FONT>
+-   <b>procedure</b> Terminal_Name (Name : <b>out</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1687_14" HREF="terminal_interface-curses__adb.htm#ref_2124_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1687_29" HREF="terminal_interface-curses__adb.htm#ref_2124_29">Name</A></FONT> : <b>out</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_139"#2|</EM></FONT>
+-   <b>function</b> Terminal_Name <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_140"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1691_13" HREF="terminal_interface-curses__adb.htm#ref_2132_13">Terminal_Name</A></FONT> <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  Same as function</EM></FONT>
+    <b>pragma</b> Inline (Terminal_Name);
+@@ -1703,119 +1708,119 @@
+    <FONT COLOR=green><EM>--  In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT>
+    <FONT COLOR=green><EM>--  This is equivalent to c.Color := n;</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_140"#2|</EM></FONT>
+-   <b>procedure</b> Start_Color;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1707_14">Start_Color</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT>
+    <b>pragma</b> Import (C, Start_Color, "start_color");
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_141"#2|</EM></FONT>
+-   <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="ref_1707_25" HREF="terminal_interface-curses__adb.htm#ref_2174_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Redefinable_Color_Pair</A>;
+-                        <FONT COLOR=red><A NAME="ref_1708_25" HREF="terminal_interface-curses__adb.htm#ref_2175_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                        Back : <b>in</b> Color_Number);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1712_14" HREF="terminal_interface-curses__adb.htm#ref_2140_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_1712_25" HREF="terminal_interface-curses__adb.htm#ref_2140_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
++                        <FONT COLOR=red><A NAME="ref_1713_25" HREF="terminal_interface-curses__adb.htm#ref_2141_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                        <FONT COLOR=red><A NAME="ref_1714_25" HREF="terminal_interface-curses__adb.htm#ref_2142_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT>
+-   <b>pragma</b> Inline (Init_Pair);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1712_14">Init_Pair</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_142"#2|</EM></FONT>
+-   <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="ref_1714_28" HREF="terminal_interface-curses__adb.htm#ref_2195_28">Pair</A></FONT> : <b>in</b> Color_Pair;
+-                           <FONT COLOR=red><A NAME="ref_1715_28" HREF="terminal_interface-curses__adb.htm#ref_2196_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+-                           Back : <b>out</b> Color_Number);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1719_14" HREF="terminal_interface-curses__adb.htm#ref_2161_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1719_28" HREF="terminal_interface-curses__adb.htm#ref_2161_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
++                           <FONT COLOR=red><A NAME="ref_1720_28" HREF="terminal_interface-curses__adb.htm#ref_2162_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                           <FONT COLOR=red><A NAME="ref_1721_28" HREF="terminal_interface-curses__adb.htm#ref_2163_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT>
+-   <b>pragma</b> Inline (Pair_Content);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Pair_Content</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_143"#2|</EM></FONT>
+-   <b>function</b> Has_Colors <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1726_13" HREF="terminal_interface-curses__adb.htm#ref_2181_13">Has_Colors</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT>
+-   <b>pragma</b> Inline (Has_Colors);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1726_13">Has_Colors</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_144"#2|</EM></FONT>
+-   <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="ref_1726_26" HREF="terminal_interface-curses__adb.htm#ref_2227_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+-                         <FONT COLOR=red><A NAME="ref_1727_26" HREF="terminal_interface-curses__adb.htm#ref_2228_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                         <FONT COLOR=red><A NAME="ref_1728_26" HREF="terminal_interface-curses__adb.htm#ref_2229_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                         Blue  : <b>in</b> RGB_Value);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1731_14" HREF="terminal_interface-curses__adb.htm#ref_2193_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_26" HREF="terminal_interface-curses__adb.htm#ref_2193_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                         <FONT COLOR=red><A NAME="ref_1732_26" HREF="terminal_interface-curses__adb.htm#ref_2194_26">Red</A></FONT>   : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                         <FONT COLOR=red><A NAME="ref_1733_26" HREF="terminal_interface-curses__adb.htm#ref_2195_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                         <FONT COLOR=red><A NAME="ref_1734_26" HREF="terminal_interface-curses__adb.htm#ref_2196_26">Blue</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT>
+-   <b>pragma</b> Inline (Init_Color);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1731_14">Init_Color</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_145"#2|</EM></FONT>
+-   <b>function</b> Can_Change_Color <b>return</b> Boolean;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1739_13" HREF="terminal_interface-curses__adb.htm#ref_2210_13">Can_Change_Color</A></FONT> <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT>
+-   <b>pragma</b> Inline (Can_Change_Color);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1739_13">Can_Change_Color</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_146"#2|</EM></FONT>
+-   <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="ref_1739_29" HREF="terminal_interface-curses__adb.htm#ref_2256_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+-                            <FONT COLOR=red><A NAME="ref_1740_29" HREF="terminal_interface-curses__adb.htm#ref_2257_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                            <FONT COLOR=red><A NAME="ref_1741_29" HREF="terminal_interface-curses__adb.htm#ref_2258_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+-                            Blue  : <b>out</b> RGB_Value);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1744_14" HREF="terminal_interface-curses__adb.htm#ref_2222_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1744_29" HREF="terminal_interface-curses__adb.htm#ref_2222_29">Color</A></FONT> : <b>in</b>  <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
++                            <FONT COLOR=red><A NAME="ref_1745_29" HREF="terminal_interface-curses__adb.htm#ref_2223_29">Red</A></FONT>   : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                            <FONT COLOR=red><A NAME="ref_1746_29" HREF="terminal_interface-curses__adb.htm#ref_2224_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
++                            <FONT COLOR=red><A NAME="ref_1747_29" HREF="terminal_interface-curses__adb.htm#ref_2225_29">Blue</A></FONT>  : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT>
+-   <b>pragma</b> Inline (Color_Content);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1744_14">Color_Content</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Not implemented: getsyx, setsyx</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <b>type</b> Curses_Mode <b>is</b> (Curses, Shell);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1756_9">Curses_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1756_25">Curses</A></FONT>, <FONT COLOR=red><A NAME="ref_1756_33">Shell</A></FONT>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_147"#2|</EM></FONT>
+-   <b>procedure</b> Save_Curses_Mode (Mode : <b>in</b> Curses_Mode);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1759_14" HREF="terminal_interface-curses__adb.htm#ref_2246_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1759_32" HREF="terminal_interface-curses__adb.htm#ref_2246_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: def_shell_mode()</EM></FONT>
+-   <b>pragma</b> Inline (Save_Curses_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Save_Curses_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_148"#2|</EM></FONT>
+-   <b>procedure</b> Reset_Curses_Mode (Mode : <b>in</b> Curses_Mode);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_149"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1765_14" HREF="terminal_interface-curses__adb.htm#ref_2264_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1765_33" HREF="terminal_interface-curses__adb.htm#ref_2264_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_9">Curses_Mode</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  AKA: reset_shell_mode()</EM></FONT>
+-   <b>pragma</b> Inline (Reset_Curses_Mode);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Reset_Curses_Mode</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_149"#2|</EM></FONT>
+-   <b>procedure</b> Save_Terminal_State;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1771_14" HREF="terminal_interface-curses__adb.htm#ref_2282_14">Save_Terminal_State</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT>
+-   <b>pragma</b> Inline (Save_Terminal_State);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1771_14">Save_Terminal_State</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_150"#2|</EM></FONT>
+-   <b>procedure</b> Reset_Terminal_State;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1776_14" HREF="terminal_interface-curses__adb.htm#ref_2292_14">Reset_Terminal_State</A></FONT>;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT>
+-   <b>pragma</b> Inline (Reset_Terminal_State);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1776_14">Reset_Terminal_State</A>);
+ 
+-   <b>type</b> Stdscr_Init_Proc <b>is</b> <b>access</b>
+-      <b>function</b> (<FONT COLOR=red><A NAME="ref_1776_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Window</A>;
+-                Columns :<A HREF="terminal_interface-curses__ads.htm#ref_1774_9"> </A>Column_Count) <b>return</b> Integer;
+-   <b>pragma</b> Convention (C, Stdscr_Init_Proc);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1780_9">Stdscr_Init_Proc</A></FONT> <b>is</b> <b>access</b>
++      <b>function</b> (<FONT COLOR=red><A NAME="ref_1781_17">Win</A></FONT>     : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++                <FONT COLOR=red><A NAME="ref_1782_17">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> Integer;
++   <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>);
+    <FONT COLOR=green><EM>--  N.B.: the return value is actually ignored, but it seems to be</EM></FONT>
+    <FONT COLOR=green><EM>--        a good practice to return 0 if you think all went fine</EM></FONT>
+    <FONT COLOR=green><EM>--        and -1 otherwise.</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_151"#2|</EM></FONT>
+-   <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="ref_1784_29" HREF="terminal_interface-curses__adb.htm#ref_2336_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Integer</A>;
+-                            Proc  : <b>in</b> Stdscr_Init_Proc);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_152"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1789_14" HREF="terminal_interface-curses__adb.htm#ref_2302_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_1789_29" HREF="terminal_interface-curses__adb.htm#ref_2302_29">Lines</A></FONT> : <b>in</b> Integer;
++                            <FONT COLOR=red><A NAME="ref_1790_29" HREF="terminal_interface-curses__adb.htm#ref_2303_29">Proc</A></FONT>  : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1780_9">Stdscr_Init_Proc</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT>
+    <FONT COLOR=green><EM>--  N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT>
+    <FONT COLOR=green><EM>--        ripoffline(), in which the Lines argument absolute value is the</EM></FONT>
+    <FONT COLOR=green><EM>--        number of lines to be ripped of. The official ripoffline() only</EM></FONT>
+    <FONT COLOR=green><EM>--        uses the sign of Lines to rip of a single line from bottom or top.</EM></FONT>
+-   <b>pragma</b> Inline (Rip_Off_Lines);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1789_14">Rip_Off_Lines</A>);
+ 
+-   <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1798_9">Cursor_Visibility</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1798_31">Invisible</A></FONT>, <FONT COLOR=red><A NAME="ref_1798_42">Normal</A></FONT>, <FONT COLOR=red><A NAME="ref_1798_50">Very_Visible</A></FONT>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_152"#2|</EM></FONT>
+-   <b>procedure</b> Set_Cursor_Visibility (Visibility : <b>in</b> <b>out</b> Cursor_Visibility);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_153"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1801_14" HREF="terminal_interface-curses__adb.htm#ref_2314_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_1801_37" HREF="terminal_interface-curses__adb.htm#ref_2314_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_9">Cursor_Visibility</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT>
+-   <b>pragma</b> Inline (Set_Cursor_Visibility);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1801_14">Set_Cursor_Visibility</A>);
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_153"#2|</EM></FONT>
+-   <b>procedure</b> Nap_Milli_Seconds (Ms : <b>in</b> Natural);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_154"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1806_14" HREF="terminal_interface-curses__adb.htm#ref_2327_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_1806_33" HREF="terminal_interface-curses__adb.htm#ref_2327_33">Ms</A></FONT> : <b>in</b> Natural);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT>
+-   <b>pragma</b> Inline (Nap_Milli_Seconds);
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1806_14">Nap_Milli_Seconds</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Some useful helpers.</EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+-   <b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
+-   <b>procedure</b> Transform_Coordinates
+-     (<FONT COLOR=red><A NAME="ref_1810_7" HREF="terminal_interface-curses__adb.htm#ref_2421_7">W</A></FONT>      : <b>in</b> Window := Standard_Window;
+-      <FONT COLOR=red><A NAME="ref_1811_7" HREF="terminal_interface-curses__adb.htm#ref_2422_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+-      <FONT COLOR=red><A NAME="ref_1812_7" HREF="terminal_interface-curses__adb.htm#ref_2423_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
+-      Dir    : <b>in</b> Transform_Direction := From_Screen);
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1813_9">Transform_Direction</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1813_33">From_Screen</A></FONT>, <FONT COLOR=red><A NAME="ref_1813_46">To_Screen</A></FONT>);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1814_14" HREF="terminal_interface-curses__adb.htm#ref_2395_14">Transform_Coordinates</A></FONT>
++     (<FONT COLOR=red><A NAME="ref_1815_7" HREF="terminal_interface-curses__adb.htm#ref_2396_7">W</A></FONT>      : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++      <FONT COLOR=red><A NAME="ref_1816_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">Line</A></FONT>   : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++      <FONT COLOR=red><A NAME="ref_1818_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Dir</A></FONT>    : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1813_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1813_33">From_Screen</A>);
+    <FONT COLOR=green><EM>--  This procedure transforms screen coordinates into coordinates relative</EM></FONT>
+    <FONT COLOR=green><EM>--  to the window and vice versa, depending on the Dir parameter.</EM></FONT>
+    <FONT COLOR=green><EM>--  Screen coordinates are the position informations on the physical device.</EM></FONT>
+@@ -1824,51 +1829,59 @@
+    <FONT COLOR=green><EM>--  We don't inline this procedure</EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+-   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/dft_fgbg.3x.html">dft_fgbg.3x</A></EM></FONT>
++   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_154"#2|</EM></FONT>
+-   <b>procedure</b> Use_Default_Colors;
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">use_default_colors()</A></EM></FONT>
+-   <b>pragma</b> Inline (Use_Default_Colors);
+-
+    <FONT COLOR=green><EM>--  #1A NAME="AFU_155"#2|</EM></FONT>
+-   <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="ref_1831_37" HREF="terminal_interface-curses__adb.htm#ref_2459_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+-                                    Back : Color_Number := Default_Color);
+-   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/dft_fgbg.3x.html">assume_default_colors()</A></EM></FONT>
+-   <b>pragma</b> Inline (Assume_Default_Colors);
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1831_14" HREF="terminal_interface-curses__adb.htm#ref_2424_14">Use_Default_Colors</A></FONT>;
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1831_14">Use_Default_Colors</A>);
++
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_156"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1836_14" HREF="terminal_interface-curses__adb.htm#ref_2434_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_1836_37" HREF="terminal_interface-curses__adb.htm#ref_2434_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
++                                    <FONT COLOR=red><A NAME="ref_1837_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>);
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></FONT>
++   <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1836_14">Assume_Default_Colors</A>);
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_156"#2|</EM></FONT>
+-   <b>function</b> Curses_Version <b>return</b> String;
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_157"#2|</EM></FONT>
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1846_13" HREF="terminal_interface-curses__adb.htm#ref_2449_13">Curses_Version</A></FONT> <b>return</b> String;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_157"#2|</EM></FONT>
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_158"#2|</EM></FONT>
+    <FONT COLOR=green><EM>--  The returnvalue is the previous setting of the flag</EM></FONT>
+-   <b>function</b> Use_Extended_Names (Enable : Boolean) <b>return</b> Boolean;
++   <b>function</b> <FONT COLOR=red><A NAME="ref_1851_13" HREF="terminal_interface-curses__adb.htm#ref_2472_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_1851_33" HREF="terminal_interface-curses__adb.htm#ref_2472_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean;
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
++   <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT>
++   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
++
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_159"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1859_14" HREF="terminal_interface-curses__adb.htm#ref_2458_14">Curses_Free_All</A></FONT>;
++   <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></FONT>
++
++   <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_158"#2|</EM></FONT>
+-   <b>procedure</b> Screen_Dump_To_File (Filename : <b>in</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_160"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1867_14" HREF="terminal_interface-curses__adb.htm#ref_2487_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1867_35" HREF="terminal_interface-curses__adb.htm#ref_2487_35">Filename</A></FONT> : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_159"#2|</EM></FONT>
+-   <b>procedure</b> Screen_Restore_From_File (Filename : <b>in</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_161"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1871_14" HREF="terminal_interface-curses__adb.htm#ref_2500_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1871_40" HREF="terminal_interface-curses__adb.htm#ref_2500_40">Filename</A></FONT> : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_160"#2|</EM></FONT>
+-   <b>procedure</b> Screen_Init_From_File (Filename : <b>in</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1875_14" HREF="terminal_interface-curses__adb.htm#ref_2513_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_37" HREF="terminal_interface-curses__adb.htm#ref_2513_37">Filename</A></FONT> : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_161"#2|</EM></FONT>
+-   <b>procedure</b> Screen_Set_File (Filename : <b>in</b> String);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_163"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1879_14" HREF="terminal_interface-curses__adb.htm#ref_2526_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1879_31" HREF="terminal_interface-curses__adb.htm#ref_2526_31">Filename</A></FONT> : <b>in</b> String);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></FONT>
+ 
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+@@ -1899,42 +1912,24 @@
+    <FONT COLOR=green><EM>--  | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></FONT>
+    <FONT COLOR=green><EM>--  |=====================================================================</EM></FONT>
+ 
+-   <FONT COLOR=green><EM>--  #1A NAME="AFU_162"#2|</EM></FONT>
+-   <b>procedure</b> Resize (<FONT COLOR=red><A NAME="ref_1898_22" HREF="terminal_interface-curses__adb.htm#ref_2550_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+-                     <FONT COLOR=red><A NAME="ref_1899_22" HREF="terminal_interface-curses__adb.htm#ref_2551_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+-                     Number_Of_Columns : Column_Count);
++   <FONT COLOR=green><EM>--  #1A NAME="AFU_164"#2|</EM></FONT>
++   <b>procedure</b> <FONT COLOR=red><A NAME="ref_1911_14" HREF="terminal_interface-curses__adb.htm#ref_2539_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_1911_22" HREF="terminal_interface-curses__adb.htm#ref_2539_22">Win</A></FONT>               : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_476_13">Standard_Window</A>;
++                     <FONT COLOR=red><A NAME="ref_1912_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Number_Of_Lines</A></FONT>   : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
++                     <FONT COLOR=red><A NAME="ref_1913_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+    <FONT COLOR=green><EM>--  AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT>
+ 
+ <b>private</b>
+-   <b>type</b> Window <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+-   Null_Window : <b>constant</b> Window := 0;
++   <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++   <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := 0;
+ 
+    <FONT COLOR=green><EM>--  The next constants are generated and may be different on your</EM></FONT>
+    <FONT COLOR=green><EM>--  architecture.</EM></FONT>
+    <FONT COLOR=green><EM>--</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1910_4">Offset_maxy</A></FONT>        : <b>constant</b> Natural :=  2; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1911_4">Offset_maxx</A></FONT>        : <b>constant</b> Natural :=  3; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1912_4">Offset_begy</A></FONT>        : <b>constant</b> Natural :=  4; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1913_4">Offset_begx</A></FONT>        : <b>constant</b> Natural :=  5; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1914_4">Offset_cury</A></FONT>        : <b>constant</b> Natural :=  0; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1915_4">Offset_curx</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1916_4">Offset_yoffset</A></FONT>     : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>--  short</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1917_4">Offset_pary</A></FONT>        : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>--  int</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1918_4">Offset_parx</A></FONT>        : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>--  int</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1919_4">Offset_notimeout</A></FONT>   : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1920_4">Offset_clear</A></FONT>       : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1921_4">Offset_leaveok</A></FONT>     : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1922_4">Offset_scroll</A></FONT>      : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1923_4">Offset_idlok</A></FONT>       : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1924_4">Offset_idcok</A></FONT>       : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1925_4">Offset_immed</A></FONT>       : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1926_4">Offset_sync</A></FONT>        : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1927_4">Offset_use_keypad</A></FONT>  : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>--  char</EM></FONT>
+-   <FONT COLOR=red><A NAME="ref_1928_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
+-   Offset_XY          : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  int</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_1923_4">Sizeof_bool</A></FONT>        : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  bool</EM></FONT>
++   <FONT COLOR=red><A NAME="ref_1924_4">Offset_XY</A></FONT>          : <b>constant</b> Natural :=  1; <FONT COLOR=green><EM>--  int</EM></FONT>
+ 
+-   <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_1930_9">Interfaces</A>.C.char'Size;
+-   Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
++   <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'Size;
++   <FONT COLOR=red><A NAME="ref_1927_4">Curses_Bool_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := 0;
+ 
+-<b>end</b> Terminal_Interface.Curses;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/man/captoinfo.1m.html
+--- ncurses-5.6/doc/html/man/captoinfo.1m.html	2006-12-16 22:51:21.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/captoinfo.1m.html	2007-03-04 00:10:34.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: captoinfo.1m,v 1.20 2006/05/13 15:14:01 tom Exp @
++  * @Id: captoinfo.1m,v 1.21 2006/12/24 18:07:15 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -166,7 +166,7 @@
+        GG    acs magic cookie count
+ 
+        If  the  single-line  capabilities occur in an entry, they
+-       will automatically be composed into an <STRONG>acsc</STRONG>  string.   The
++       will automatically be composed into an <EM>acsc</EM>  string.   The
+        double-line capabilities and <STRONG>GG</STRONG> are discarded with a warn-
+        ing message.
+ 
+@@ -183,11 +183,11 @@
+        font2   s2ds
+        font3   s3ds
+ 
+-       Additionally, the AIX <STRONG>box1</STRONG> capability  will  be  automati-
+-       cally translated to an <STRONG>acsc</STRONG> string.
++       Additionally, the AIX <EM>box1</EM> capability  will  be  automati-
++       cally translated to an <EM>acsc</EM> string.
+ 
+        Hewlett-Packard's  terminfo  library supports two nonstan-
+-       dard terminfo capabilities <STRONG>meml</STRONG>  (memory  lock)  and  <STRONG>memu</STRONG>
++       dard terminfo capabilities <EM>meml</EM>  (memory  lock)  and  <EM>memu</EM>
+        (memory  unlock).   These will be discarded with a warning
+        message.
+ 
+@@ -195,7 +195,7 @@
+ </PRE>
+ <H2>NOTES</H2><PRE>
+        This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-I</EM>
+-       mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
++       mode.  You can use other <STRONG>tic</STRONG> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
+ 
+        The  trace  option isn't identical to SVr4's.  Under SVr4,
+        instead of following the <STRONG>-v</STRONG> with  a  trace  level  n,  you
+@@ -206,7 +206,7 @@
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ </PRE>
+Index: doc/html/man/clear.1.html
+--- ncurses-5.6/doc/html/man/clear.1.html	2006-12-16 22:51:21.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/clear.1.html	2007-03-04 00:10:34.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: clear.1,v 1.5 2006/07/01 21:55:09 tom Exp @
++  * @Id: clear.1,v 1.6 2006/12/24 18:07:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -69,7 +69,7 @@
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/curs_add_wch.3x.html
+--- ncurses-5.6/doc/html/man/curs_add_wch.3x.html	2006-12-16 22:51:22.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_add_wch.3x.html	2006-12-24 15:50:48.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_add_wch.3x,v 1.5 2006/12/02 17:02:35 tom Exp @
++  * @Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -87,8 +87,7 @@
+ 
+        -    If  the  character  part  of  <EM>wch</EM>  is a tab, newline,
+             backspace or other control character, the  window  is
+-            updated  and  the  cursor  moves as if <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG> were
+-            called.
++            updated and the cursor moves as if <STRONG>addch</STRONG> were called.
+ 
+        The <STRONG>echo_wchar</STRONG> function is functionally  equivalent  to  a
+        call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>.  Similarly,
+@@ -125,9 +124,8 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,       <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>,       <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
+-       <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>,     <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+-       <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,
++       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
+ 
+ 
+ 
+Index: doc/html/man/curs_addch.3x.html
+--- ncurses-5.6/doc/html/man/curs_addch.3x.html	2006-12-16 22:51:22.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_addch.3x.html	2006-12-24 17:02:31.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_addch.3x,v 1.25 2006/12/02 17:02:22 tom Exp @
++  * @Id: curs_addch.3x,v 1.26 2006/12/24 16:05:17 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -192,7 +192,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,
+-       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
++       <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
+ 
+        Comparable  functions  in  the  wide-character  (ncursesw)
+        library are described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
+Index: doc/html/man/curs_border.3x.html
+--- ncurses-5.6/doc/html/man/curs_border.3x.html	2006-09-23 20:43:00.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_border.3x.html	2007-03-04 00:10:36.000000000 +0000
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!-- 
+   ****************************************************************************
+-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_border.3x,v 1.18 2006/02/25 21:49:19 tom Exp @
++  * @Id: curs_border.3x,v 1.19 2007/02/24 16:15:38 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -65,8 +65,8 @@
+        <STRONG>int</STRONG> <STRONG>whline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+        <STRONG>int</STRONG> <STRONG>vline(chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+        <STRONG>int</STRONG> <STRONG>wvline(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+-       <STRONG>mvhline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+-       <STRONG>mvwhline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
++       <STRONG>int</STRONG> <STRONG>mvhline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
++       <STRONG>int</STRONG> <STRONG>mvwhline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+        <STRONG>int</STRONG> <STRONG>mvvline(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+        <STRONG>int</STRONG> <STRONG>mvwvline(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+ 
+Index: doc/html/man/curs_extend.3x.html
+--- ncurses-5.6/doc/html/man/curs_extend.3x.html	2006-09-23 20:43:01.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_extend.3x.html	2007-03-04 00:10:37.000000000 +0000
+@@ -28,7 +28,7 @@
+   * authorization.                                                           *
+   ****************************************************************************
+   * Author: Thomas E. Dickey 1999-on
+-  * @Id: curs_extend.3x,v 1.15 2006/02/25 21:04:43 tom Exp @
++  * @Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -73,7 +73,7 @@
+        standard names which may be  compiled  into  the  terminfo
+        description, i.e., via the terminfo or termcap interfaces.
+        Normally these names are  available  for  use,  since  the
+-       essential  decision  is made by using the <STRONG>-x</STRONG> option of <EM>tic</EM>
++       essential  decision  is made by using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>
+        to compile extended terminal definitions.  However you can
+        disable  this  feature  to ensure compatibility with other
+        implementations of curses.
+@@ -90,8 +90,8 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>,       <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,      <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>,
+-       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>,     <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,      <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>,
+-       <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="nofilter.3x.html">nofilter(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
++       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,  <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>,  <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,  <STRONG>key-</STRONG>
++       <STRONG><A HREF="keybound.3x.html">bound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+ 
+ 
+ </PRE>
+Index: doc/html/man/curs_getcchar.3x.html
+--- ncurses-5.6/doc/html/man/curs_getcchar.3x.html	2006-09-23 20:43:01.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_getcchar.3x.html	2006-12-24 17:02:34.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_getcchar.3x,v 1.8 2006/07/15 22:51:07 wcmbrine Exp @
++  * @Id: curs_getcchar.3x,v 1.10 2006/12/24 16:00:02 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -136,8 +136,8 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       Functions:   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="wcwidth.3x.html">wcwidth(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr_get.3x.html">curs_attr_get(3x)</A></STRONG>,
+-       <STRONG><A HREF="can_change_color.3x.html">can_change_color(3x)</A></STRONG>.
++       Functions:   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
++       <STRONG><A HREF="wcwidth.3.html">wcwidth(3)</A></STRONG>.
+ 
+ 
+ 
+Index: doc/html/man/curs_insstr.3x.html
+--- ncurses-5.6/doc/html/man/curs_insstr.3x.html	2006-09-23 20:43:04.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_insstr.3x.html	2006-12-24 15:50:54.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_insstr.3x,v 1.17 2006/02/25 21:49:19 tom Exp @
++  * @Id: curs_insstr.3x,v 1.18 2006/12/24 14:59:30 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -112,7 +112,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+ 
+ 
+ 
+Index: doc/html/man/curs_mouse.3x.html
+--- ncurses-5.6/doc/html/man/curs_mouse.3x.html	2005-05-15 17:05:53.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_mouse.3x.html	2007-03-04 00:10:40.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++  * Copyright (c) 1998-2005,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            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp @
++  * @Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -162,45 +162,48 @@
+        screen windows enclose the location of a mouse event.
+ 
+        The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coor-
+-       dinates from stdscr-relative coordinates  to  screen-rela-
+-       tive  coordinates  or  vice  versa.  Please remember, that
+-       stdscr-relative coordinates are not  always  identical  to
+-       screen-relative  coordinates  due  to the mechanism to re-
+-       serve lines on top or bottom of the screen for other  pur-
+-       poses  (ripoff()  call,  see also slk_...  functions).  If
+-       the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG>  must
+-       reference  the coordinates of a location inside the window
+-       <STRONG>win</STRONG>.  They are converted  to  screen-relative  coordinates
+-       and  returned through the pointers.  If the conversion was
+-       successful, the function returns <STRONG>TRUE</STRONG>.  If one of the  pa-
+-       rameters  was  NULL or the location is not inside the win-
+-       dow, <STRONG>FALSE</STRONG> is returned.  If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the point-
+-       ers  <STRONG>pY,</STRONG>  <STRONG>pX</STRONG>  must  reference screen-relative coordinates.
+-       They are converted to stdscr-relative coordinates  if  the
+-       window <STRONG>win</STRONG> encloses this point.  In this case the function
+-       returns <STRONG>TRUE</STRONG>.  If one of the parameters  is  NULL  or  the
+-       point is not inside the window, <STRONG>FALSE</STRONG> is returned.  Please
+-       notice, that the referenced coordinates are only  replaced
+-       by  the  converted  coordinates  if the transformation was
+-       successful.
++       dinates from stdscr-relative  coordinates  to  coordinates
++       relative to the given window or vice versa.  Please remem-
++       ber, that stdscr-relative coordinates are not always iden-
++       tical  to window-relative coordinates due to the mechanism
++       to reserve lines on top or bottom of the screen for  other
++       purposes (see the <STRONG>ripoffline()</STRONG> and <STRONG>slk_init</STRONG> calls, for ex-
++       ample).  If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the  pointers
++       <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference the coordinates of a location inside
++       the window <STRONG>win</STRONG>.  They are converted to window-relative co-
++       ordinates  and returned through the pointers.  If the con-
++       version was successful, the function returns <STRONG>TRUE</STRONG>.  If one
++       of  the  parameters was NULL or the location is not inside
++       the window, <STRONG>FALSE</STRONG> is returned.  If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the
++       pointers  <STRONG>pY,</STRONG>  <STRONG>pX</STRONG>  must  reference window-relative coordi-
++       nates.  They are converted to stdscr-relative  coordinates
++       if  the  window <STRONG>win</STRONG> encloses this point.  In this case the
++       function returns <STRONG>TRUE</STRONG>.  If one of the parameters  is  NULL
++       or  the point is not inside the window, <STRONG>FALSE</STRONG> is returned.
++       Please notice, that the referenced  coordinates  are  only
++       replaced  by  the converted coordinates if the transforma-
++       tion was successful.
++
++       The <STRONG>mouse_trafo</STRONG> function performs the same translation  as
++       <STRONG>wmouse_trafo</STRONG>, using stdscr for <STRONG>win</STRONG>.
+ 
+        The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou-
+-       sands  of  a second) that can elapse between press and re-
+-       lease events for them to be recognized as  a  click.   Use
+-       <STRONG>mouseinterval(0)</STRONG>  to disable click resolution.  This func-
++       sands of a second) that can elapse between press  and  re-
++       lease  events  for  them to be recognized as a click.  Use
++       <STRONG>mouseinterval(0)</STRONG> to disable click resolution.  This  func-
+        tion returns the previous interval value.  Use <STRONG>mouseinter-</STRONG>
+-       <STRONG>val(-1)</STRONG>  to  obtain the interval without altering it.  The
++       <STRONG>val(-1)</STRONG> to obtain the interval without altering  it.   The
+        default is one sixth of a second.
+ 
+-       Note that mouse events will be ignored when  input  is  in
++       Note  that  mouse  events will be ignored when input is in
+        cooked mode, and will cause an error beep when cooked mode
+-       is being simulated in a window by a function such as  <STRONG>get-</STRONG>
++       is  being simulated in a window by a function such as <STRONG>get-</STRONG>
+        <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
+ 
+ 
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+-       <STRONG>getmouse</STRONG>  and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail-
++       <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon  fail-
+        ure or <STRONG>OK</STRONG> upon successful completion.
+ 
+               <STRONG>getmouse</STRONG>
+@@ -212,83 +215,85 @@
+ 
+        <STRONG>mousemask</STRONG> returns the mask of reportable events.
+ 
+-       <STRONG>mouseinterval</STRONG>  returns the previous interval value, unless
+-       the terminal was not initialized.  In that  case,  it  re-
++       <STRONG>mouseinterval</STRONG> returns the previous interval value,  unless
++       the  terminal  was  not initialized.  In that case, it re-
+        turns the maximum interval value (166).
+ 
+-       <STRONG>wenclose</STRONG>  and <STRONG>wmouse_trafo</STRONG> are boolean functions returning
++       <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions  returning
+        <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.
+ 
+ 
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+-       These calls were designed for  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  and  are  not
++       These  calls  were  designed  for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not
+        found in SVr4 curses, 4.4BSD curses, or any other previous
+        version of curses.
+ 
+        The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
+-       preprocessor  can  be  used to test whether these features
+-       are present.  If the interface is changed,  the  value  of
+-       <STRONG>NCURSES_MOUSE_VERSION</STRONG>  will  be incremented.  These values
+-       for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when  configur-
++       preprocessor can be used to test  whether  these  features
++       are  present.   If  the interface is changed, the value of
++       <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incremented.   These  values
++       for  <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when configur-
+        ing ncurses:
+ 
+-              1  has  definitions  for reserved events.  The mask
++              1  has definitions for reserved events.   The  mask
+                  uses 28 bits.
+ 
+               2  adds definitions for button 5, removes the defi-
+-                 nitions  for  reserved events.  The mask uses 29
++                 nitions for reserved events.  The mask  uses  29
+                  bits.
+ 
+-       The order of the <STRONG>MEVENT</STRONG> structure members is  not  guaran-
+-       teed.   Additional fields may be added to the structure in
++       The  order  of the <STRONG>MEVENT</STRONG> structure members is not guaran-
++       teed.  Additional fields may be added to the structure  in
+        the future.
+ 
+-       Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented  using  ei-
+-       ther  xterm's built-in mouse-tracking API or platform-spe-
++       Under  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>,  these calls are implemented using ei-
++       ther xterm's built-in mouse-tracking API or  platform-spe-
+        cific drivers including
+               Alessandro Rubini's gpm server.
+               FreeBSD sysmouse
+               OS/2 EMX
+-       If you  are  using  an  unsupported  configuration,  mouse
+-       events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the <STRONG>wmouse-</STRONG>
++       If  you  are  using  an  unsupported  configuration, mouse
++       events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the  <STRONG>mouse-</STRONG>
+        <STRONG>mask</STRONG> function will always return <STRONG>0</STRONG>).
+ 
+-       If the terminfo entry contains a <STRONG>XM</STRONG> string, this  is  used
+-       in  the xterm mouse driver to control the way the terminal
++       If  the  terminfo entry contains a <STRONG>XM</STRONG> string, this is used
++       in the xterm mouse driver to control the way the  terminal
+        is initialized for mouse operation.  The default, if <STRONG>XM</STRONG> is
+        not found, corresponds to private mode 1000 of xterm:
+               \E[?1000%?%p1%{1}%=%th%el%;
+        The z member in the event structure is not presently used.
+-       It is intended for use with touch screens  (which  may  be
++       It  is  intended  for use with touch screens (which may be
+        pressure-sensitive)   or   with   3D-mice/trackballs/power
+        gloves.
+ 
+ 
+ </PRE>
+ <H2>BUGS</H2><PRE>
+-       Mouse events under xterm will not in fact be ignored  dur-
+-       ing  cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
+-       Instead, the xterm mouse report sequence  will  appear  in
++       Mouse  events under xterm will not in fact be ignored dur-
++       ing cooked mode, if they have been enabled  by  <STRONG>mousemask</STRONG>.
++       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  inter-
+-       preted  as  a  variety of function key.  Your terminfo de-
+-       scription must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning  of
+-       the response from xterm for mouse clicks).
+-
+-       Because  there  are  no  standard  terminal responses that
+-       would serve to identify terminals which support the  xterm
+-       mouse  protocol,  <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
+-       ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined  in
++       a  window  with  its keypad bit off, since they are inter-
++       preted as a variety of function key.   Your  terminfo  de-
++       scription  should  have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
++       of the response from xterm for mouse clicks).  Other  val-
++       ues  for  <STRONG>kmous</STRONG>  are permitted, but under the same assump-
++       tion, 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, <STRONG>ncurses</STRONG> assumes that if your  $TERM  envi-
++       ronment  variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
+        the terminal description, then the terminal may send mouse
+        events.
+ 
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>.
+ 
+ 
+ 
+Index: doc/html/man/curs_printw.3x.html
+--- ncurses-5.6/doc/html/man/curs_printw.3x.html	2006-09-23 20:43:06.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_printw.3x.html	2006-12-24 17:02:39.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_printw.3x,v 1.16 2006/02/25 21:49:19 tom Exp @
++  * @Id: curs_printw.3x,v 1.17 2006/12/24 16:05:17 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -69,12 +69,12 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+        The  <STRONG>printw</STRONG>,  <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are
+-       analogous to <STRONG>printf</STRONG>  [see  <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>].   In  effect,  the
++       analogous to  <STRONG>printf</STRONG>  [see  <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>].   In  effect,  the
+        string that would be output by <STRONG>printf</STRONG> is output instead as
+        though <STRONG>waddstr</STRONG> were used on the given window.
+ 
+        The <STRONG>vwprintw</STRONG>  and  <STRONG>wv_printw</STRONG>  routines  are  analogous  to
+-       <STRONG>vprintf</STRONG>  [see  <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>]  and  perform a <STRONG>wprintw</STRONG> using a
++       <STRONG>vprintf</STRONG>  [see  <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>]  and  perform  a <STRONG>wprintw</STRONG> using a
+        variable argument list.  The third argument is a  <STRONG>va_list</STRONG>,
+        a   pointer   to  a  list  of  arguments,  as  defined  in
+        <STRONG>&lt;stdarg.h&gt;</STRONG>.
+@@ -107,7 +107,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG>vprintf(3S)</STRONG>
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG>vprintf(3)</STRONG>
+ 
+ 
+ 
+Index: doc/html/man/curs_scanw.3x.html
+--- ncurses-5.6/doc/html/man/curs_scanw.3x.html	2006-09-23 20:43:07.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_scanw.3x.html	2006-12-24 17:02:39.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_scanw.3x,v 1.13 2006/02/25 21:42:22 tom Exp @
++  * @Id: curs_scanw.3x,v 1.14 2006/12/24 16:05:49 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -66,7 +66,7 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+        The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines  are  analogous  to
+-       <STRONG>scanf</STRONG> [see <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>].  The effect of these routines is as
++       <STRONG>scanf</STRONG>  [see <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>].  The effect of these routines is as
+        though <STRONG>wgetstr</STRONG> were called on the window, and the  result-
+        ing line used as input for <STRONG><A HREF="sscanf.3.html">sscanf(3)</A></STRONG>.  Fields which do not
+        map to a variable in the <EM>fmt</EM> field are lost.
+@@ -114,7 +114,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3S.html">scanf(3S)</A></STRONG>
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>
+ 
+ 
+ 
+Index: doc/html/man/curs_scr_dump.3x.html
+--- ncurses-5.6/doc/html/man/curs_scr_dump.3x.html	2006-09-23 20:43:07.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_scr_dump.3x.html	2006-12-24 17:02:39.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_scr_dump.3x,v 1.6 2006/02/25 21:49:19 tom Exp @
++  * @Id: curs_scr_dump.3x,v 1.7 2006/12/24 16:05:49 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -122,7 +122,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,      <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,       <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+-       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3S.html">system(3S)</A></STRONG>
++       <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3.html">system(3)</A></STRONG>
+ 
+ 
+ 
+Index: doc/html/man/curs_termcap.3x.html
+--- ncurses-5.6/doc/html/man/curs_termcap.3x.html	2006-09-23 20:43:08.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_termcap.3x.html	2006-12-24 17:02:40.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_termcap.3x,v 1.20 2006/02/25 21:50:01 tom Exp @
++  * @Id: curs_termcap.3x,v 1.21 2006/12/24 16:05:49 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -175,7 +175,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>.
++       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
+ 
+ 
+ 
+Index: doc/html/man/curs_terminfo.3x.html
+--- ncurses-5.6/doc/html/man/curs_terminfo.3x.html	2006-12-16 22:51:32.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_terminfo.3x.html	2007-03-04 00:10:43.000000000 +0000
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!-- 
+   ****************************************************************************
+-  * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
++  * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_terminfo.3x,v 1.24 2006/11/04 21:50:03 tom Exp @
++  * @Id: curs_terminfo.3x,v 1.26 2007/02/24 16:37:50 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -62,7 +62,7 @@
+        <STRONG>int</STRONG> <STRONG>setterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>);</STRONG>
+        <STRONG>TERMINAL</STRONG> <STRONG>*set_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>nterm</EM><STRONG>);</STRONG>
+        <STRONG>int</STRONG> <STRONG>del_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>oterm</EM><STRONG>);</STRONG>
+-       <STRONG>int</STRONG> <STRONG>restartterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
++       <STRONG>int</STRONG> <STRONG>restartterm(char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fildes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*tparm(char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+        <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
+        <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+@@ -318,7 +318,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG>
+-       <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="putc.3S.html">putc(3S)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
++       <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ 
+ 
+ 
+Index: doc/html/man/curs_trace.3x.html
+--- ncurses-5.6/doc/html/man/curs_trace.3x.html	2005-05-15 17:05:56.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_trace.3x.html	2007-03-04 00:10:43.000000000 +0000
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!-- 
+   ****************************************************************************
+-  * Copyright (c) 2000-2002,2005 Free Software Foundation, Inc.              *
++  * Copyright (c) 2000-2005,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp @
++  * @Id: curs_trace.3x,v 1.8 2007/02/24 17:33:49 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -61,7 +61,7 @@
+        <STRONG>char</STRONG> <STRONG>*_traceattr(attr_t</STRONG> <STRONG>attr);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*_traceattr2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*_nc_tracebits(void);</STRONG>
+-       <STRONG>char</STRONG> <STRONG>*_tracechar(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>char</STRONG> <STRONG>ch);</STRONG>
++       <STRONG>char</STRONG> <STRONG>*_tracechar(int);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*_tracechtype(chtype</STRONG> <STRONG>ch);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*_tracechtype2(int</STRONG> <STRONG>buffer,</STRONG> <STRONG>chtype</STRONG> <STRONG>ch);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*_tracemouse(const</STRONG> <STRONG>MEVENT</STRONG> <STRONG>*event);</STRONG>
+Index: doc/html/man/curs_util.3x.html
+--- ncurses-5.6/doc/html/man/curs_util.3x.html	2006-09-23 20:43:09.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/curs_util.3x.html	2007-03-04 00:10:43.000000000 +0000
+@@ -1,7 +1,7 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+ <!-- 
+   ****************************************************************************
+-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: curs_util.3x,v 1.21 2006/08/26 14:17:48 tom Exp @
++  * @Id: curs_util.3x,v 1.23 2007/02/24 15:59:07 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -57,7 +57,7 @@
+        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+ 
+        <STRONG>char</STRONG> <STRONG>*unctrl(chtype</STRONG> <STRONG>c);</STRONG>
+-       <STRONG>char</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*c);</STRONG>
++       <STRONG>wchar_t</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*c);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*keyname(int</STRONG> <STRONG>c);</STRONG>
+        <STRONG>char</STRONG> <STRONG>*key_name(wchar_t</STRONG> <STRONG>w);</STRONG>
+        <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
+@@ -191,8 +191,8 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="use_legacy_coding.3.html">use_legacy_coding(3)</A></STRONG>,    <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,     <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
+-       <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
++       <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG>curs_ker-</STRONG>
++       <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>.
+ 
+ 
+ 
+Index: doc/html/man/default_colors.3x.html
+--- ncurses-5.6/doc/html/man/default_colors.3x.html	2006-09-23 20:43:09.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/default_colors.3x.html	2006-12-24 15:50:59.000000000 +0000
+@@ -28,7 +28,7 @@
+   * authorization.                                                           *
+   ****************************************************************************
+   * Author: Thomas E. Dickey 1997,1999,2000,2005
+-  * @Id: default_colors.3x,v 1.19 2006/02/25 21:49:19 tom Exp @
++  * @Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -121,7 +121,7 @@
+ 
+ </PRE>
+ <H2>NOTES</H2><PRE>
+-       Associated with this extension, the <STRONG><A HREF="init_pair.3x.html">init_pair(3x)</A></STRONG> function
++       Associated  with  this  extension,  the <STRONG>init_pair</STRONG> function
+        accepts negative arguments to specify  default  foreground
+        or background colors.
+ 
+Index: doc/html/man/form.3x.html
+--- ncurses-5.6/doc/html/man/form.3x.html	2006-12-16 22:51:33.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form.3x.html	2007-03-04 00:10:44.000000000 +0000
+@@ -236,7 +236,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/form_field_new.3x.html
+--- ncurses-5.6/doc/html/man/form_field_new.3x.html	2006-12-16 22:51:35.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form_field_new.3x.html	2006-12-24 15:51:01.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: form_field_new.3x,v 1.14 2006/11/04 17:12:00 tom Exp @
++  * @Id: form_field_new.3x,v 1.15 2006/12/24 14:56:41 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -127,9 +127,9 @@
+        were not supported on Version 7 or BSD versions.
+ 
+        It may be unwise to count on the set of attributes  copied
+-       by  <STRONG><A HREF="dup_field.3x.html">dup_field(3x)</A></STRONG>  being  portable;  the  System  V  forms
+-       library documents are not very explicit  about  what  gets
+-       copied and what doesn't.
++       by  <STRONG>dup_field</STRONG>  being  portable; the System V forms library
++       documents are not very explicit about what gets copied and
++       what doesn't.
+ 
+ 
+ </PRE>
+Index: doc/html/man/form_field_opts.3x.html
+--- ncurses-5.6/doc/html/man/form_field_opts.3x.html	2006-12-16 22:51:36.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form_field_opts.3x.html	2007-03-04 00:10:46.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: form_field_opts.3x,v 1.12 2006/11/04 17:12:00 tom Exp @
++  * @Id: form_field_opts.3x,v 1.13 2007/02/24 17:34:27 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -54,10 +54,10 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
+-       int set_field_opts(FIELD *field, OPTIONS opts);
+-       int field_opts_on(FIELD *field, OPTIONS opts);
+-       int field_opts_off(FIELD *field, OPTIONS opts);
+-       OPTIONS field_opts(const FIELD *field);
++       int set_field_opts(FIELD *field, Field_Options opts);
++       int field_opts_on(FIELD *field, Field_Options opts);
++       int field_opts_off(FIELD *field, Field_Options opts);
++       Field_Options field_opts(const FIELD *field);
+ 
+ 
+ </PRE>
+Index: doc/html/man/form_field_validation.3x.html
+--- ncurses-5.6/doc/html/man/form_field_validation.3x.html	2006-12-16 22:51:36.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form_field_validation.3x.html	2006-12-24 17:02:44.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: form_field_validation.3x,v 1.15 2006/11/04 17:14:19 tom Exp @
++  * @Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -124,16 +124,16 @@
+             Regular expression data.  Requires a regular  expres-
+             sion  <STRONG>(char</STRONG>  <STRONG>*)</STRONG>  third argument; the data is valid if
+             the regular expression matches it.   Regular  expres-
+-            sions   are   in   the   format  of  <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG>  and
+-            <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>. Please notice that the  regular  expres-
+-            sion  must  match  the  whole  field. If you have for
+-            example an eight  character  wide  field,  a  regular
+-            expression  "^[0-9]*$"  always means that you have to
+-            fill all eight positions with digits. If you want  to
+-            allow  fewer digits, you may use for example "^[0-9]*
+-            *$" which is good for trailing spaces (up to an empty
+-            field),  or  "^ *[0-9]* *$" which is good for leading
+-            and trailing spaces around the digits.
++            sions  are  in  the  format  of  <STRONG>regcomp</STRONG> and <STRONG>regexec</STRONG>.
++            Please notice that the regular expression must  match
++            the  whole  field.  If  you have for example an eight
++            character wide field, a regular expression "^[0-9]*$"
++            always  means  that  you have to fill all eight posi-
++            tions with digits. If you want to allow fewer digits,
++            you  may  use  for example "^[0-9]* *$" which is good
++            for trailing spaces (up to an  empty  field),  or  "^
++            *[0-9]*  *$"  which  is good for leading and trailing
++            spaces around the digits.
+ 
+        TYPE_IPV4
+             An Internet Protocol Version 4 address. This requires
+Index: doc/html/man/form_hook.3x.html
+--- ncurses-5.6/doc/html/man/form_hook.3x.html	2006-12-16 22:51:36.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form_hook.3x.html	2007-03-04 00:10:46.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: form_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
++  * @Id: form_hook.3x,v 1.9 2007/02/24 17:34:18 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -55,14 +55,14 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
+-       int set_field_init(FORM *form, void (*func)(FORM *));
+-       void (*)(FORM *) field_init(const FORM *form);
+-       int set_field_term(FORM *form, void (*func)(FORM *));
+-       void (*)(FORM *) field_term(const FORM *form);
+-       int set_form_init(FORM *form, void (*func)(FORM *));
+-       void (*)(FORM *) form_init(const FORM *form);
+-       int set_form_term(FORM *form, void (*func)(FORM *));
+-       void (*)(FORM *) form_term(const FORM *form);
++       int set_field_init(FORM *form, Form_Hook func);
++       Form_Hook field_init(const FORM *form);
++       int set_field_term(FORM *form, Form_Hook func);
++       Form_Hook field_term(const FORM *form);
++       int set_form_init(FORM *form, Form_Hook func);
++       Form_Hook form_init(const FORM *form);
++       int set_form_term(FORM *form, Form_Hook func);
++       Form_Hook form_term(const FORM *form);
+ 
+ 
+ </PRE>
+Index: doc/html/man/form_opts.3x.html
+--- ncurses-5.6/doc/html/man/form_opts.3x.html	2006-12-16 22:51:37.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/form_opts.3x.html	2007-03-04 00:10:47.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: form_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
++  * @Id: form_opts.3x,v 1.9 2007/02/24 17:34:36 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -54,10 +54,10 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
+-       int set_form_opts(FORM *form, OPTIONS opts);
+-       int form_opts_on(FORM *form, OPTIONS opts);
+-       int form_opts_off(FORM *form, OPTIONS opts);
+-       OPTIONS form_opts(const FORM *form);
++       int set_form_opts(FORM *form, Field_Options opts);
++       int form_opts_on(FORM *form, Field_Options opts);
++       int form_opts_off(FORM *form, Field_Options opts);
++       Field_Options form_opts(const FORM *form);
+ 
+ 
+ </PRE>
+Index: doc/html/man/index.html
+Prereq:  1.2 
+--- ncurses-5.6/doc/html/man/index.html	2006-04-22 22:29:12.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/index.html	2006-12-24 23:05:35.000000000 +0000
+@@ -1,6 +1,6 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <!--
+-  $Id: index.html,v 1.2 2006/04/22 22:29:12 tom Exp $
++  $Id: index.html,v 1.3 2006/12/24 23:05:35 tom Exp $
+   ****************************************************************************
+   * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+   *                                                                          *
+@@ -33,7 +33,6 @@
+ <HEAD>
+ <TITLE>NCURSES - Manual Pages</TITLE>
+ <LINK REV=MADE HREF="mailto:dickey@invisible-island.net">
+-<BASE HREF="http://invisible-island.net/ncurses/man/">
+ </HEAD>
+ <BODY>
+ <HR>
+Index: doc/html/man/infocmp.1m.html
+--- ncurses-5.6/doc/html/man/infocmp.1m.html	2006-12-16 22:51:38.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/infocmp.1m.html	2007-03-04 00:10:48.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: infocmp.1m,v 1.43 2006/05/13 15:14:01 tom Exp @
++  * @Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -423,7 +423,7 @@
+        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,    <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,     <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,     <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ </PRE>
+Index: doc/html/man/infotocap.1m.html
+--- ncurses-5.6/doc/html/man/infotocap.1m.html	2006-12-16 22:51:38.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/infotocap.1m.html	2007-03-04 00:10:48.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: infotocap.1m,v 1.6 2006/05/13 15:35:45 tom Exp @
++  * @Id: infotocap.1m,v 1.8 2006/12/24 20:13:56 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -85,7 +85,7 @@
+ 
+ </PRE>
+ <H2>NOTES</H2><PRE>
+-       This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in  <EM>-C</EM>
++       This utility is actually a link  to  <EM>tic</EM>,  running  in  <EM>-C</EM>
+        mode.  You can use other <EM>tic</EM> options such as <STRONG>-f</STRONG> and  <STRONG>-x</STRONG>.
+ 
+ 
+@@ -93,7 +93,7 @@
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/legacy_coding.3x.html
+--- ncurses-5.6/doc/html/man/legacy_coding.3x.html	2006-09-23 20:43:15.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/legacy_coding.3x.html	2006-12-24 15:51:05.000000000 +0000
+@@ -28,7 +28,7 @@
+   * authorization.                                                           *
+   ****************************************************************************
+   * Author: Thomas E. Dickey
+-  * @Id: legacy_coding.3x,v 1.2 2006/02/25 21:50:01 tom Exp @
++  * @Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -70,21 +70,20 @@
+        The <EM>level</EM> parameter controls the result:
+ 
+               0    the library functions normally, rendering non-
+-                   printing   characters  as  described  in  <STRONG>unc-</STRONG>
+-                   <STRONG><A HREF="unctrl.3x.html">trl(3x)</A></STRONG>.
++                   printing characters as described in <STRONG>unctrl</STRONG>.
+ 
+-              1    the library ignores <STRONG>isprintf</STRONG> for codes in  the
++              1    the  library ignores <STRONG>isprintf</STRONG> for codes in the
+                    range 160-255.
+ 
+-              2    the  library ignores <STRONG>isprintf</STRONG> for codes in the
++              2    the library ignores <STRONG>isprintf</STRONG> for codes in  the
+                    range 128-255.  It also modifies the output of
+-                   <STRONG>unctrl</STRONG>,  showing codes in the range 128-159 as
++                   <STRONG>unctrl</STRONG>, showing codes in the range 128-159  as
+                    is.
+ 
+ 
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+-       If the screen has  not  been  initialized,  or  the  <EM>level</EM>
++       If  the  screen  has  not  been  initialized, or the <EM>level</EM>
+        parameter is out of range, the function returns <STRONG>ERR</STRONG>.  Oth-
+        erwise, it returns the previous level: <STRONG>0</STRONG>, <STRONG>1</STRONG> or <STRONG>2</STRONG>.
+ 
+@@ -93,7 +92,7 @@
+ <H2>PORTABILITY</H2><PRE>
+        This routine is specific to ncurses.  It was not supported
+        on Version 7, BSD or System V implementations.  It is rec-
+-       ommended that any code depending on ncurses extensions  be
++       ommended  that any code depending on ncurses extensions be
+        conditioned using NCURSES_VERSION.
+ 
+ 
+@@ -104,7 +103,7 @@
+ 
+ </PRE>
+ <H2>AUTHOR</H2><PRE>
+-       Thomas  Dickey (to support lynx's font-switching feature).
++       Thomas Dickey (to support lynx's font-switching  feature).
+ 
+ 
+ 
+Index: doc/html/man/menu.3x.html
+--- ncurses-5.6/doc/html/man/menu.3x.html	2006-12-16 22:51:40.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/menu.3x.html	2007-03-04 00:10:49.000000000 +0000
+@@ -226,7 +226,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/menu_hook.3x.html
+--- ncurses-5.6/doc/html/man/menu_hook.3x.html	2006-12-16 22:51:41.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/menu_hook.3x.html	2007-03-04 00:10:50.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: menu_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
++  * @Id: menu_hook.3x,v 1.9 2007/02/24 17:34:08 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -55,14 +55,14 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
+-       int set_item_init(MENU *menu, void (*func)(MENU *));
+-       void (*)(MENU *) item_init(const MENU *menu);
+-       int set_item_term(MENU *menu, void (*func)(MENU *));
+-       void (*)(MENU *) item_term(const MENU *menu);
+-       int set_menu_init(MENU *menu, void (*func)(MENU *));
+-       void (*)(MENU *) menu_init(const MENU *menu);
+-       int set_menu_term(MENU *menu, void (*func)(MENU *));
+-       void (*)(MENU *) menu_term(const MENU *menu);
++       int set_item_init(MENU *menu, Menu_Hook func);
++       Menu_Hook item_init(const MENU *menu);
++       int set_item_term(MENU *menu, Menu_Hook func);
++       Menu_Hook item_term(const MENU *menu);
++       int set_menu_init(MENU *menu, Menu_Hook func);
++       Menu_Hook menu_init(const MENU *menu);
++       int set_menu_term(MENU *menu, Menu_Hook func);
++       Menu_Hook menu_term(const MENU *menu);
+ 
+ 
+ </PRE>
+Index: doc/html/man/menu_opts.3x.html
+--- ncurses-5.6/doc/html/man/menu_opts.3x.html	2006-12-16 22:51:42.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/menu_opts.3x.html	2007-03-04 00:10:50.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: menu_opts.3x,v 1.9 2006/11/04 17:12:00 tom Exp @
++  * @Id: menu_opts.3x,v 1.10 2007/02/24 17:33:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -54,10 +54,10 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
+-       int set_menu_opts(MENU *menu, OPTIONS opts);
+-       int menu_opts_on(MENU *menu, OPTIONS opts);
+-       int menu_opts_off(MENU *menu, OPTIONS opts);
+-       OPTIONS menu_opts(const MENU *menu);
++       int set_menu_opts(MENU *menu, Menu_Options opts);
++       int menu_opts_on(MENU *menu, Menu_Options opts);
++       int menu_opts_off(MENU *menu, Menu_Options opts);
++       Menu_Options menu_opts(const MENU *menu);
+ 
+ 
+ </PRE>
+Index: doc/html/man/mitem_opts.3x.html
+--- ncurses-5.6/doc/html/man/mitem_opts.3x.html	2006-12-16 22:51:44.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/mitem_opts.3x.html	2007-03-04 00:10:52.000000000 +0000
+@@ -2,7 +2,7 @@
+ <!-- 
+   * t
+   ****************************************************************************
+-  * Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: mitem_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp @
++  * @Id: mitem_opts.3x,v 1.9 2007/02/24 17:33:32 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -54,10 +54,10 @@
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
+-       int set_item_opts(ITEM *item, OPTIONS opts);
+-       int item_opts_on(ITEM *item, OPTIONS opts);
+-       int item_opts_off(ITEM *item, OPTIONS opts);
+-       OPTIONS item_opts(const ITEM *item);
++       int set_item_opts(ITEM *item, Item_Options opts);
++       int item_opts_on(ITEM *item, Item_Options opts);
++       int item_opts_off(ITEM *item, Item_Options opts);
++       Item_Options item_opts(const ITEM *item);
+ 
+ 
+ </PRE>
+Index: doc/html/man/ncurses.3x.html
+--- ncurses-5.6/doc/html/man/ncurses.3x.html	2006-12-16 22:51:45.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/ncurses.3x.html	2007-03-04 00:10:53.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: ncurses.3x,v 1.81 2006/12/02 19:23:11 tom Exp @
++  * @Id: ncurses.3x,v 1.82 2006/12/24 14:44:05 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -63,7 +63,7 @@
+        sonable   optimization.    This  implementation  is  ``new
+        curses'' (ncurses) and is  the  approved  replacement  for
+        4.4BSD  classic curses, which has been discontinued.  This
+-       describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+        The <STRONG>ncurses</STRONG> routines emulate  the  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  library  of
+        System V Release 4 UNIX, and the XPG4 curses standard (XSI
+@@ -774,9 +774,9 @@
+        NCURSES_ASSUMED_COLORS
+             Override  the  compiled-in assumption that the termi-
+             nal's  default   colors   are   white-on-black   (see
+-            <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>).   You  may  set the fore-
+-            ground and background color values with this environ-
+-            ment   variable   by   proving   a   2-element  list:
++            <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>).   You may set the foreground and
++            background color values with this  environment  vari-
++            able     by     proving     a     2-element     list:
+             foreground,background.  For example, to tell  ncurses
+             to  not assume anything about the colors, set this to
+             "-1,-1".  To make it green-on-black, set it to "2,0".
+Index: doc/html/man/panel.3x.html
+--- ncurses-5.6/doc/html/man/panel.3x.html	2006-12-16 22:51:45.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/panel.3x.html	2007-03-04 00:10:53.000000000 +0000
+@@ -213,7 +213,7 @@
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ </PRE>
+Index: doc/html/man/term.5.html
+--- ncurses-5.6/doc/html/man/term.5.html	2006-12-16 22:51:45.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/term.5.html	2007-03-04 00:10:54.000000000 +0000
+@@ -27,20 +27,20 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: term.5,v 1.17 2006/12/03 01:08:16 tom Exp @
++  * @Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+-<TITLE>TERM 5</TITLE>
++<TITLE>term 5</TITLE>
+ <link rev=made href="mailto:bug-ncurses@gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </HEAD>
+ <BODY>
+-<H1>TERM 5</H1>
++<H1>term 5</H1>
+ <HR>
+ <PRE>
+ <!-- Manpage converted by man2html 3.0.1 -->
+-<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>                                                         <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
++<STRONG><A HREF="term.5.html">term(5)</A></STRONG>                                                         <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+ 
+ 
+ 
+@@ -95,7 +95,7 @@
+        assumptions about byte  ordering  or  sign  extension  are
+        made.
+ 
+-       The  compiled  file  is  created with the <EM>tic</EM> program, and
++       The  compiled  file  is  created with the <STRONG>tic</STRONG> program, and
+        read by the routine <EM>setupterm</EM>.  The file is  divided  into
+        six parts: the header, terminal names, boolean flags, num-
+        bers, strings, and string table.
+@@ -297,7 +297,7 @@
+ 
+ 
+ 
+-                                                                <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
++                                                                <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+ </PRE>
+ <HR>
+ <ADDRESS>
+Index: doc/html/man/term.7.html
+--- ncurses-5.6/doc/html/man/term.7.html	2006-09-23 20:43:22.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/term.7.html	2007-03-04 00:10:54.000000000 +0000
+@@ -27,20 +27,20 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: term.7,v 1.15 2006/02/25 21:47:06 tom Exp @
++  * @Id: term.7,v 1.17 2006/12/24 18:14:09 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+-<TITLE>TERM 7</TITLE>
++<TITLE>term 7</TITLE>
+ <link rev=made href="mailto:bug-ncurses@gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </HEAD>
+ <BODY>
+-<H1>TERM 7</H1>
++<H1>term 7</H1>
+ <HR>
+ <PRE>
+ <!-- Manpage converted by man2html 3.0.1 -->
+-<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>                                                         <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
++<STRONG><A HREF="term.7.html">term(7)</A></STRONG>                                                         <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
+ 
+ 
+ 
+@@ -98,7 +98,7 @@
+        from your shell.  These capability files are in  a  binary
+        format optimized for retrieval speed (unlike the old text-
+        based <STRONG>termcap</STRONG> format they replace); to examine  an  entry,
+-       you  must  use  the <STRONG><A HREF="infocmp.1.html">infocmp(1)</A></STRONG> command.  Invoke it as fol-
++       you  must  use the <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> command.  Invoke it as fol-
+        lows:
+ 
+             infocmp <EM>entry-name</EM>
+@@ -240,7 +240,7 @@
+ 
+ 
+ 
+-                                                                <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
++                                                                <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
+ </PRE>
+ <HR>
+ <ADDRESS>
+Index: doc/html/man/terminfo.5.html
+--- ncurses-5.6/doc/html/man/terminfo.5.html	2006-12-16 22:51:46.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/terminfo.5.html	2007-03-04 00:10:54.000000000 +0000
+@@ -32,9 +32,9 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: terminfo.head,v 1.13 2006/05/13 15:35:45 tom Exp @
++  * @Id: terminfo.head,v 1.15 2006/12/24 18:04:42 tom Exp @
+   * Head of terminfo man page ends here
+-  * @Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp @
++  * @Id: terminfo.tail,v 1.47 2006/12/24 18:14:22 tom Exp @
+   * Beginning of terminfo.tail file
+   * This file is part of ncurses.
+   * See "terminfo.head" for copyright.
+@@ -46,16 +46,16 @@
+ -->
+ <HTML>
+ <HEAD>
+-<TITLE>TERMINFO 5   File Formats</TITLE>
++<TITLE>terminfo 5   File Formats</TITLE>
+ <link rev=made href="mailto:bug-ncurses@gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </HEAD>
+ <BODY>
+-<H1>TERMINFO 5   File Formats</H1>
++<H1>terminfo 5   File Formats</H1>
+ <HR>
+ <PRE>
+ <!-- Manpage converted by man2html 3.0.1 -->
+-<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
++<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                   File Formats                  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ 
+ 
+ 
+@@ -78,7 +78,7 @@
+        nals by giving a set of capabilities which they  have,  by
+        specifying how to perform screen operations, and by speci-
+        fying padding requirements and  initialization  sequences.
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+        Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
+        fields (embedded commas may be escaped with a backslash or
+@@ -95,13 +95,13 @@
+ 
+        Lines beginning with a `#' in the first column are treated
+        as  comments.  While comment lines are legal at any point,
+-       the output of <EM>captoinfo</EM> and <EM>infotocap</EM>  (aliases  for  <EM>tic</EM>)
++       the output of <STRONG>captoinfo</STRONG> and <STRONG>infotocap</STRONG>  (aliases  for  <STRONG>tic</STRONG>)
+        will move comments so they occur only between entries.
+ 
+        Newlines  and  leading  tabs  may  be  used for formatting
+        entries for readability.  These are  removed  from  parsed
+-       entries.   The  <EM>infocmp</EM> <EM>-f</EM> option relies on this to format
+-       if-then-else expressions: the result can be read by <EM>tic</EM>.
++       entries.   The  <STRONG>infocmp</STRONG> <STRONG>-f</STRONG> option relies on this to format
++       if-then-else expressions: the result can be read by <STRONG>tic</STRONG>.
+ 
+        Terminal names (except for the last, verbose entry) should
+        be chosen using the following conventions.  The particular
+@@ -1234,7 +1234,7 @@
+    <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
+        Cursor addressing and other strings  requiring  parameters
+        in  the  terminal  are described by a parameterized string
+-       capability, with <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG> like escapes <STRONG>%x</STRONG>  in  it.   For
++       capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes  <STRONG>%x</STRONG>  in  it.   For
+        example,  to  address  the  cursor,  the <STRONG>cup</STRONG> capability is
+        given, using two parameters: the row and column to address
+        to.  (Rows and columns are numbered from zero and refer to
+@@ -2269,7 +2269,7 @@
+        termcap entry.
+ 
+        When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
+-       mentation  of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
++       mentation of <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-
+        tc length of a termcap translation is too  long.   The  -c
+        (check)  option  also checks resolved (after tc expansion)
+        lengths.
+@@ -2351,7 +2351,7 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
++       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+ 
+ 
+ </PRE>
+@@ -2361,7 +2361,7 @@
+ 
+ 
+ 
+-                                                            <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
++                                                            <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ </PRE>
+ <HR>
+ <ADDRESS>
+Index: doc/html/man/tic.1m.html
+--- ncurses-5.6/doc/html/man/tic.1m.html	2006-12-16 22:51:46.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/tic.1m.html	2007-03-04 00:10:55.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: tic.1m,v 1.43 2006/05/13 15:14:01 tom Exp @
++  * @Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -309,7 +309,7 @@
+        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,    <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/toe.1m.html
+--- ncurses-5.6/doc/html/man/toe.1m.html	2006-12-16 22:51:47.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/toe.1m.html	2007-03-04 00:10:55.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: toe.1m,v 1.18 2006/05/13 15:14:01 tom Exp @
++  * @Id: toe.1m,v 1.20 2006/12/24 17:20:37 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -92,7 +92,7 @@
+        <STRONG>-v</STRONG><EM>n</EM>    specifies that (verbose) output be written to stan-
+               dard error, showing <STRONG>toe</STRONG>'s progress.   The  optional
+               parameter  <EM>n</EM>  is a number from 1 to 10, interpreted
+-              as for <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG>.
++              as for <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>.
+ 
+        <STRONG>-V</STRONG>     reports the version of ncurses which  was  used  in
+               this program, and exits.
+@@ -109,7 +109,7 @@
+        <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,    <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
+        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/tput.1.html
+--- ncurses-5.6/doc/html/man/tput.1.html	2006-12-16 22:51:47.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/tput.1.html	2007-03-04 00:10:55.000000000 +0000
+@@ -28,7 +28,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: tput.1,v 1.25 2006/05/13 15:14:01 tom Exp @
++  * @Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -89,7 +89,7 @@
+        application  should  test  the  exit  code  (e.g., <STRONG>$?</STRONG>, see
+        <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>.  (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and  <STRONG>DIAG-</STRONG>
+        <STRONG>NOSTICS</STRONG>  sections.)   For  a complete list of capabilities
+-       and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>.
++       and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ 
+        <STRONG>-T</STRONG><EM>type</EM> indicates the  <EM>type</EM>  of  terminal.   Normally  this
+               option is unnecessary, because the default is taken
+@@ -298,7 +298,7 @@
+        exit code   error message
+        ---------------------------------------------------------------------
+        <STRONG>0</STRONG>           (<EM>capname</EM> is a numeric variable that is not specified  in
+-                   the  <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>  database  for this terminal type, e.g.
++                   the  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  database  for this terminal type, e.g.
+                    <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
+        <STRONG>1</STRONG>           no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
+        <STRONG>2</STRONG>           usage error
+@@ -328,7 +328,7 @@
+ <H2>SEE ALSO</H2><PRE>
+        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/man/tset.1.html
+--- ncurses-5.6/doc/html/man/tset.1.html	2006-12-16 22:51:47.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/man/tset.1.html	2007-03-04 00:10:55.000000000 +0000
+@@ -27,7 +27,7 @@
+   * sale, use or other dealings in this Software without prior written       *
+   * authorization.                                                           *
+   ****************************************************************************
+-  * @Id: tset.1,v 1.18 2006/07/29 11:34:07 tom Exp @
++  * @Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -315,10 +315,10 @@
+ 
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+-       <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>,  <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>,  <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>,  <STRONG><A HREF="setupterm.3x.html">setupterm(3x)</A></STRONG>,   <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>,   ter-
++       <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>,  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,  <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>,  ter-
+        <STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
+ 
+-       This describes <STRONG>ncurses</STRONG> version 5.5 (patch 20061209).
++       This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
+ 
+ 
+ 
+Index: doc/html/ncurses-intro.html
+Prereq:  1.41 
+--- ncurses-5.6/doc/html/ncurses-intro.html	2005-12-24 15:47:05.000000000 +0000
++++ ncurses-5.6-20071201/doc/html/ncurses-intro.html	2007-03-03 19:31:50.000000000 +0000
+@@ -1,8 +1,8 @@
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <!--
+-  $Id: ncurses-intro.html,v 1.41 2005/12/24 15:47:05 tom Exp $
++  $Id: ncurses-intro.html,v 1.43 2007/03/03 19:31:50 tom Exp $
+   ****************************************************************************
+-  * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++  * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+   *                                                                          *
+   * Permission is hereby granted, free of charge, to any person obtaining a  *
+   * copy of this software and associated documentation files (the            *
+@@ -914,15 +914,14 @@
+ 
+ <H3><A NAME="xterm">Using NCURSES under XTERM</A></H3>
+ 
+-A resize operation in X sends SIGWINCH to the application running under xterm.
+-The <CODE>ncurses</CODE> library provides an experimental signal
+-handler, but in general does not catch this signal, because it cannot
+-know how you want the screen re-painted.  You will usually have to write the
+-SIGWINCH handler yourself.  Ncurses can give you some help. <P>
+-
+-The easiest way to code your SIGWINCH handler is to have it do an
+-<CODE>endwin</CODE>, followed by an <CODE>refresh</CODE> and a screen repaint you code
+-yourself.  The <CODE>refresh</CODE> will pick up the new screen size from the
++A resize operation in X sends <CODE>SIGWINCH</CODE> to the application running
++under xterm.
++
++The easiest way to handle <CODE>SIGWINCH</CODE>
++is to do an <CODE>endwin</CODE>,
++followed by an <CODE>refresh</CODE> and a screen repaint you code
++yourself.
++The <CODE>refresh</CODE> will pick up the new screen size from the
+ xterm's environment. <P>
+ 
+ That is the standard way, of course (it even works with some vendor's curses
+@@ -934,8 +933,17 @@
+ are limited to the new screen dimensions, and pads <CODE>stdscr</CODE>
+ with blanks if the screen is larger. <P>
+ 
+-Finally, ncurses can be configured to provide its own SIGWINCH handler,
+-based on <CODE>resizeterm</CODE>.
++The <CODE>ncurses</CODE> library provides a SIGWINCH signal handler,
++which pushes a <CODE>KEY_RESIZE</CODE> via the wgetch() calls.
++When <CODE>ncurses</CODE> returns that code,
++it calls <code>resizeterm</CODE>
++to update the size of the standard screen's window, repainting that
++(filling with blanks or truncating as needed).
++It also resizes other windows,
++but its effect may be less satisfactory because it cannot
++know how you want the screen re-painted.
++You will usually have to write special-purpose code to handle
++<CODE>KEY_RESIZE</CODE> yourself.
+ 
+ <H3><A NAME="screens">Handling Multiple Terminal Screens</A></H3>
+ 
+@@ -2184,7 +2192,7 @@
+ from the last page goes to the first, and <CODE>REQ_PREV_PAGE</CODE> from
+ the first page goes to the last.
+ 
+-<H3><A NAME="#ffield">Inter-Field Navigation Requests</A></H3>
++<H3><A NAME="ffield">Inter-Field Navigation Requests</A></H3>
+ 
+ These requests handle navigation between fields on the same page.
+ 
+@@ -2238,7 +2246,7 @@
+ go to B only if A, B, and C <EM>all</EM> share the same first line;
+ otherwise it will skip over B to C.
+ 
+-<H3><A NAME="#fifield">Intra-Field Navigation Requests</A></H3>
++<H3><A NAME="fifield">Intra-Field Navigation Requests</A></H3>
+ 
+ These requests drive movement of the edit cursor within the currently
+ selected field.
+Index: doc/ncurses-intro.doc
+--- ncurses-5.6/doc/ncurses-intro.doc	2005-12-24 15:48:44.000000000 +0000
++++ ncurses-5.6-20071201/doc/ncurses-intro.doc	2007-03-03 23:45:04.000000000 +0000
+@@ -174,7 +174,7 @@
+    The  ncurses  package  was  originated  by  Pavel Curtis. The original
+    maintainer  of  this  package is Zeyd Ben-Halim <zmbenhal@netcom.com>.
+    Eric S. Raymond <esr@snark.thyrsus.com> wrote many of the new features
+-   in  versions  after  1.8.1 and wrote most of this introduction. Jürgen
++   in  versions  after 1.8.1 and wrote most of this introduction. Juergen
+    Pfeifer  wrote  all  of  the  menu and forms code as well as the Ada95
+    binding.  Ongoing  work  is  being done by Thomas Dickey (maintainer).
+    Contact the current maintainers at bug-ncurses@gnu.org.
+@@ -798,15 +798,9 @@
+   Using NCURSES under XTERM
+ 
+    A  resize  operation  in  X  sends SIGWINCH to the application running
+-   under  xterm.  The  ncurses  library  provides  an experimental signal
+-   handler,  but in general does not catch this signal, because it cannot
+-   know  how  you  want  the  screen re-painted. You will usually have to
+-   write the SIGWINCH handler yourself. Ncurses can give you some help.
+-
+-   The  easiest  way  to  code  your SIGWINCH handler is to have it do an
+-   endwin, followed by an refresh and a screen repaint you code yourself.
+-   The  refresh  will  pick  up  the  new  screen  size  from the xterm's
+-   environment.
++   under  xterm.  The  easiest way to handle SIGWINCH is to do an endwin,
++   followed  by  an  refresh  and a screen repaint you code yourself. The
++   refresh will pick up the new screen size from the xterm's environment.
+ 
+    That  is the standard way, of course (it even works with some vendor's
+    curses  implementations). Its drawback is that it clears the screen to
+@@ -816,8 +810,13 @@
+    limited  to  the new screen dimensions, and pads stdscr with blanks if
+    the screen is larger.
+ 
+-   Finally,  ncurses  can  be  configured  to  provide  its  own SIGWINCH
+-   handler, based on resizeterm.
++   The ncurses library provides a SIGWINCH signal handler, which pushes a
++   KEY_RESIZE  via the wgetch() calls. When ncurses returns that code, it
++   calls  resizeterm  to update the size of the standard screen's window,
++   repainting that (filling with blanks or truncating as needed). It also
++   resizes other windows, but its effect may be less satisfactory because
++   it  cannot  know  how you want the screen re-painted. You will usually
++   have to write special-purpose code to handle KEY_RESIZE yourself.
+ 
+   Handling Multiple Terminal Screens
+ 
+@@ -889,11 +888,11 @@
+    To  understand why this is a problem, remember that screen updates are
+    calculated  between  two  representations  of  the entire display. The
+    documentation  says that when you refresh a window, it is first copied
+-   to  the  virtual screen,  and  then  changes  are calculated to update
+-   the  physical screen (and applied to the terminal). But "copied to" is
+-   not  very  specific,  and  subtle differences in how copying works can
+-   produce  different behaviors in the case where two overlapping windows
+-   are each being refreshed at unpredictable intervals.
++   to  the  virtual screen, and then changes are calculated to update the
++   physical  screen (and applied to the terminal). But "copied to" is not
++   very specific, and subtle differences in how copying works can produce
++   different behaviors in the case where two overlapping windows are each
++   being refreshed at unpredictable intervals.
+ 
+    What  happens to the overlapping region depends on what wnoutrefresh()
+    does  with  its  argument  --  what portions of the argument window it
+Index: form/Makefile.in
+Prereq:  1.42 
+--- ncurses-5.6/form/Makefile.in	2006-10-14 20:40:36.000000000 +0000
++++ ncurses-5.6-20071201/form/Makefile.in	2007-04-28 14:56:11.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.42 2006/10/14 20:40:36 tom Exp $
++# $Id: Makefile.in,v 1.47 2007/04/28 14:56:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -27,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
++# Author: Thomas E. Dickey 1996-on
+ #
+ # Makefile for form source code.
+ #
+@@ -91,7 +91,7 @@
+ 
+ CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
+ 
+-LINK		= $(LIBTOOL_LINK) $(CC)
++LINK		= $(LIBTOOL_LINK)
+ LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
+ 
+ SHLIB_DIRS	= -L../lib
+@@ -106,8 +106,6 @@
+ 
+ RANLIB		= @LIB_PREP@
+ 
+-IMPORT_LIB	= @IMPORT_LIB@
+-SHARED_LIB	= @SHARED_LIB@
+ LIBRARIES	= @LIBS_TO_MAKE@
+ 
+ LINT		= @LINT@
+@@ -126,7 +124,7 @@
+ 
+ $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(libdir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ # make copies to simplify include-paths while still keeping form's include
+ # file in this directory.
+Index: form/fld_def.c
+Prereq:  1.33 
+--- ncurses-5.6/form/fld_def.c	2005-04-16 17:31:17.000000000 +0000
++++ ncurses-5.6-20071201/form/fld_def.c	2007-10-13 19:29:58.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fld_def.c,v 1.33 2005/04/16 17:31:17 tom Exp $")
++MODULE_ID("$Id: fld_def.c,v 1.36 2007/10/13 19:29:58 tom Exp $")
+ 
+ /* this can't be readonly */
+ static FIELD default_field =
+@@ -93,7 +93,7 @@
+       assert(err != 0 && ap != (va_list *)0);
+       if ((typ->status & _LINKED_TYPE) != 0)
+ 	{
+-	  p = (TypeArgument *)malloc(sizeof(TypeArgument));
++	  p = typeMalloc(TypeArgument, 1);
+ 
+ 	  if (p != 0)
+ 	    {
+@@ -141,7 +141,7 @@
+       assert(err != 0 && argp != 0);
+       if ((typ->status & _LINKED_TYPE) != 0)
+ 	{
+-	  p = (TypeArgument *)malloc(sizeof(TypeArgument));
++	  p = typeMalloc(TypeArgument, 1);
+ 
+ 	  if (p != 0)
+ 	    {
+@@ -289,8 +289,9 @@
+       nrow >= 0 &&
+       nbuf >= 0 &&
+       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick: this resets the default error */
+-      (New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
++      (New_Field = typeMalloc(FIELD, 1)) != 0)
+     {
++      T((T_CREATE("field %p"), New_Field));
+       *New_Field = default_field;
+       New_Field->rows = rows;
+       New_Field->cols = cols;
+@@ -304,7 +305,7 @@
+ 
+ #if USE_WIDEC_SUPPORT
+       New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
+-      New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
++      New_Field->expanded = typeCalloc(char *, 1 + (unsigned)nbuf);
+ #endif
+ 
+       if (_nc_Copy_Type(New_Field, &default_field))
+Index: form/fld_dup.c
+Prereq:  1.10 
+--- ncurses-5.6/form/fld_dup.c	2004-12-25 22:24:10.000000000 +0000
++++ ncurses-5.6-20071201/form/fld_dup.c	2007-10-13 19:30:21.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fld_dup.c,v 1.10 2004/12/25 22:24:10 tom Exp $")
++MODULE_ID("$Id: fld_dup.c,v 1.12 2007/10/13 19:30:21 tom Exp $")
+ 
+ /*---------------------------------------------------------------------------
+ |   Facility      :  libnform
+@@ -56,8 +56,9 @@
+   T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
+   if (field && (frow >= 0) && (fcol >= 0) &&
+       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick : this resets the default error */
+-      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
++      (New_Field = typeMalloc(FIELD, 1)))
+     {
++      T((T_CREATE("field %p"), New_Field));
+       *New_Field = *_nc_Default_Field;
+       New_Field->frow = frow;
+       New_Field->fcol = fcol;
+Index: form/fld_ftlink.c
+Prereq:  1.11 
+--- ncurses-5.6/form/fld_ftlink.c	2004-12-25 22:24:10.000000000 +0000
++++ ncurses-5.6-20071201/form/fld_ftlink.c	2007-10-13 19:30:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
++MODULE_ID("$Id: fld_ftlink.c,v 1.13 2007/10/13 19:30:35 tom Exp $")
+ 
+ /*---------------------------------------------------------------------------
+ |   Facility      :  libnform  
+@@ -56,10 +56,11 @@
+   T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
+   if (type1 && type2)
+     {
+-      nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
++      nftyp = typeMalloc(FIELDTYPE, 1);
+ 
+       if (nftyp)
+ 	{
++	  T((T_CREATE("fieldtype %p"), nftyp));
+ 	  *nftyp = *_nc_Default_FieldType;
+ 	  nftyp->status |= _LINKED_TYPE;
+ 	  if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
+Index: form/fld_link.c
+Prereq:  1.9 
+--- ncurses-5.6/form/fld_link.c	2004-12-25 22:24:10.000000000 +0000
++++ ncurses-5.6-20071201/form/fld_link.c	2007-10-13 19:30:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
++MODULE_ID("$Id: fld_link.c,v 1.11 2007/10/13 19:30:43 tom Exp $")
+ 
+ /*---------------------------------------------------------------------------
+ |   Facility      :  libnform  
+@@ -57,8 +57,9 @@
+   T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
+   if (field && (frow >= 0) && (fcol >= 0) &&
+       ((err = E_SYSTEM_ERROR) != 0) &&	/* trick: this resets the default error */
+-      (New_Field = (FIELD *)malloc(sizeof(FIELD))))
++      (New_Field = typeMalloc(FIELD, 1)))
+     {
++      T((T_CREATE("field %p"), New_Field));
+       *New_Field = *_nc_Default_Field;
+       New_Field->frow = frow;
+       New_Field->fcol = fcol;
+Index: form/fld_newftyp.c
+Prereq:  1.13 
+--- ncurses-5.6/form/fld_newftyp.c	2004-12-25 22:24:10.000000000 +0000
++++ ncurses-5.6-20071201/form/fld_newftyp.c	2007-10-13 19:30:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fld_newftyp.c,v 1.13 2004/12/25 22:24:10 tom Exp $")
++MODULE_ID("$Id: fld_newftyp.c,v 1.15 2007/10/13 19:30:55 tom Exp $")
+ 
+ static FIELDTYPE const default_fieldtype =
+ {
+@@ -76,10 +76,11 @@
+   T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
+   if ((field_check) || (char_check))
+     {
+-      nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
++      nftyp = typeMalloc(FIELDTYPE, 1);
+ 
+       if (nftyp)
+ 	{
++	  T((T_CREATE("fieldtype %p"), nftyp));
+ 	  *nftyp = default_fieldtype;
+ 	  nftyp->fcheck = field_check;
+ 	  nftyp->ccheck = char_check;
+Index: form/frm_def.c
+Prereq:  1.20 
+--- ncurses-5.6/form/frm_def.c	2006-11-04 16:57:15.000000000 +0000
++++ ncurses-5.6-20071201/form/frm_def.c	2007-10-13 19:31:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: frm_def.c,v 1.20 2006/11/04 16:57:15 tom Exp $")
++MODULE_ID("$Id: frm_def.c,v 1.22 2007/10/13 19:31:17 tom Exp $")
+ 
+ /* this can't be readonly */
+ static FORM default_form =
+@@ -186,8 +186,9 @@
+     RETURN(E_BAD_ARGUMENT);
+ 
+   /* allocate page structures */
+-  if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
++  if ((pg = typeMalloc(_PAGE, page_nr)) != (_PAGE *) 0)
+     {
++      T((T_CREATE("_PAGE %p"), pg));
+       form->page = pg;
+     }
+   else
+@@ -290,11 +291,12 @@
+ {
+   int err = E_SYSTEM_ERROR;
+ 
+-  FORM *form = (FORM *)malloc(sizeof(FORM));
++  FORM *form = typeMalloc(FORM, 1);
+ 
+   T((T_CALLED("new_form(%p)"), fields));
+   if (form)
+     {
++      T((T_CREATE("form %p"), form));
+       *form = *_nc_Default_Form;
+       if ((err = Associate_Fields(form, fields)) != E_OK)
+ 	{
+Index: form/frm_driver.c
+Prereq:  1.76 
+--- ncurses-5.6/form/frm_driver.c	2006-11-04 18:45:35.000000000 +0000
++++ ncurses-5.6-20071201/form/frm_driver.c	2007-11-24 21:32:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: frm_driver.c,v 1.76 2006/11/04 18:45:35 tom Exp $")
++MODULE_ID("$Id: frm_driver.c,v 1.85 2007/11/24 21:32:53 tom Exp $")
+ 
+ /*----------------------------------------------------------------------------
+   This is the core module of the form library. It contains the majority
+@@ -262,7 +262,19 @@
+ static int
+ fix_wchnstr(WINDOW *w, cchar_t *s, int n)
+ {
++  int x;
++
+   win_wchnstr(w, s, n);
++  /*
++   * This function is used to extract the text only from the window.
++   * Strip attributes and color from the string so they will not be added
++   * back when copying the string to the window.
++   */
++  for (x = 0; x < n; ++x)
++    {
++      RemAttr(s[x], A_ATTRIBUTES);
++      SetPair(s[x], 0);
++    }
+   return n;
+ }
+ 
+@@ -651,6 +663,7 @@
+ 
+ 	  result = TRUE;	/* allow sharing of recovery on failure */
+ 
++	  T((T_CREATE("fieldcell %p"), newbuf));
+ 	  field->buf = newbuf;
+ 	  for (i = 0; i <= field->nbuf; i++)
+ 	    {
+@@ -724,6 +737,34 @@
+   return (result);
+ }
+ 
++#ifdef NCURSES_MOUSE_VERSION
++/*---------------------------------------------------------------------------
++|   Facility      :  libnform
++|   Function      :  int Field_encloses(FIELD *field, int ry, int rx)
++|
++|   Description   :  Check if the given coordinates lie within the given field.
++|
++|   Return Values :  E_OK              - success
++|                    E_BAD_ARGUMENT    - invalid form pointer
++|                    E_SYSTEM_ERROR    - form has no current field or
++|                                        field-window
+++--------------------------------------------------------------------------*/
++static int
++Field_encloses(FIELD *field, int ry, int rx)
++{
++  T((T_CALLED("Field_encloses(%p)"), field));
++  if (field != 0
++      && field->frow <= ry
++      && (field->frow + field->rows) > ry
++      && field->fcol <= rx
++      && (field->fcol + field->cols) > rx)
++    {
++      RETURN(E_OK);
++    }
++  RETURN(E_INVALID_FIELD);
++}
++#endif
++
+ /*---------------------------------------------------------------------------
+ |   Facility      :  libnform
+ |   Function      :  int _nc_Position_Form_Cursor(FORM * form)
+@@ -4149,6 +4190,83 @@
+ 	    res = (BI->cmd) (form);
+ 	}
+     }
++#ifdef NCURSES_MOUSE_VERSION
++  else if (KEY_MOUSE == c)
++    {
++      MEVENT event;
++      WINDOW *win = form->win ? form->win : stdscr;
++      WINDOW *sub = form->sub ? form->sub : win;
++
++      getmouse(&event);
++      if ((event.bstate & (BUTTON1_CLICKED |
++			   BUTTON1_DOUBLE_CLICKED |
++			   BUTTON1_TRIPLE_CLICKED))
++	  && wenclose(win, event.y, event.x))
++	{			/* we react only if the click was in the userwin, that means
++				 * inside the form display area or at the decoration window.
++				 */
++	  int ry = event.y, rx = event.x;	/* screen coordinates */
++
++	  res = E_REQUEST_DENIED;
++	  if (mouse_trafo(&ry, &rx, FALSE))
++	    {			/* rx, ry are now "curses" coordinates */
++	      if (ry < sub->_begy)
++		{		/* we clicked above the display region; this is
++				 * interpreted as "scroll up" request
++				 */
++		  if (event.bstate & BUTTON1_CLICKED)
++		    res = form_driver(form, REQ_PREV_FIELD);
++		  else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
++		    res = form_driver(form, REQ_PREV_PAGE);
++		  else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
++		    res = form_driver(form, REQ_FIRST_FIELD);
++		}
++	      else if (ry > sub->_begy + sub->_maxy)
++		{		/* we clicked below the display region; this is
++				 * interpreted as "scroll down" request
++				 */
++		  if (event.bstate & BUTTON1_CLICKED)
++		    res = form_driver(form, REQ_NEXT_FIELD);
++		  else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
++		    res = form_driver(form, REQ_NEXT_PAGE);
++		  else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
++		    res = form_driver(form, REQ_LAST_FIELD);
++		}
++	      else if (wenclose(sub, event.y, event.x))
++		{		/* Inside the area we try to find the hit item */
++		  int i;
++
++		  ry = event.y;
++		  rx = event.x;
++		  if (wmouse_trafo(sub, &ry, &rx, FALSE))
++		    {
++		      int min_field = form->page[form->curpage].pmin;
++		      int max_field = form->page[form->curpage].pmax;
++
++		      for (i = min_field; i <= max_field; ++i)
++			{
++			  FIELD *field = form->field[i];
++
++			  if (Field_Is_Selectable(field)
++			      && Field_encloses(field, ry, rx) == E_OK)
++			    {
++			      res = _nc_Set_Current_Field(form, field);
++			      if (res == E_OK)
++				res = _nc_Position_Form_Cursor(form);
++			      if (res == E_OK
++				  && (event.bstate & BUTTON1_DOUBLE_CLICKED))
++				res = E_UNKNOWN_COMMAND;
++			      break;
++			    }
++			}
++		    }
++		}
++	    }
++	}
++      else
++	res = E_REQUEST_DENIED;
++    }
++#endif /* NCURSES_MOUSE_VERSION */
+   else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
+     {
+       /*
+@@ -4261,7 +4379,7 @@
+   wclear(field->working);
+   mvwaddstr(field->working, 0, 0, value);
+ 
+-  if ((widevalue = (FIELD_CELL *)calloc(len, sizeof(FIELD_CELL))) == 0)
++  if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == 0)
+     {
+       RETURN(E_SYSTEM_ERROR);
+     }
+@@ -4341,10 +4459,7 @@
+ 	      init_mb(state);
+ 	      next = _nc_wcrtomb(0, data[n].chars[0], &state);
+ 	      if (!isEILSEQ(next))
+-		{
+-		  if (next != 0)
+-		    need += next;
+-		}
++		need += next;
+ 	    }
+ 	}
+ 
+@@ -4358,7 +4473,7 @@
+ 	{
+ 	  wclear(field->working);
+ 	  mvwadd_wchnstr(field->working, 0, 0, data, size);
+-	  mvwinnstr(field->working, 0, 0, result, (int)need + 1);
++	  mvwinnstr(field->working, 0, 0, result, (int)need);
+ 	}
+ #else
+       result = Address_Of_Nth_Buffer(field, buffer);
+Index: form/fty_alnum.c
+Prereq:  1.19 
+--- ncurses-5.6/form/fty_alnum.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_alnum.c	2007-10-13 19:31:52.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_alnum.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_alnum.c,v 1.21 2007/10/13 19:31:52 tom Exp $")
+ 
+ #define thisARG alnumARG
+ 
+@@ -55,10 +55,13 @@
+ static void *
+ Make_This_Type(va_list *ap)
+ {
+-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *argp = typeMalloc(thisARG, 1);
+ 
+   if (argp)
+-    argp->width = va_arg(*ap, int);
++    {
++      T((T_CREATE("thisARG %p"), argp));
++      argp->width = va_arg(*ap, int);
++    }
+ 
+   return ((void *)argp);
+ }
+@@ -75,10 +78,13 @@
+ Copy_This_Type(const void *argp)
+ {
+   const thisARG *ap = (const thisARG *)argp;
+-  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *result = typeMalloc(thisARG, 1);
+ 
+   if (result)
+-    *result = *ap;
++    {
++      T((T_CREATE("thisARG %p"), result));
++      *result = *ap;
++    }
+ 
+   return ((void *)result);
+ }
+Index: form/fty_alpha.c
+Prereq:  1.21 
+--- ncurses-5.6/form/fty_alpha.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_alpha.c	2007-10-13 19:32:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_alpha.c,v 1.21 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_alpha.c,v 1.23 2007/10/13 19:32:09 tom Exp $")
+ 
+ #define thisARG alphaARG
+ 
+@@ -55,10 +55,13 @@
+ static void *
+ Make_This_Type(va_list *ap)
+ {
+-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *argp = typeMalloc(thisARG, 1);
+ 
+   if (argp)
+-    argp->width = va_arg(*ap, int);
++    {
++      T((T_CREATE("thisARG %p"), argp));
++      argp->width = va_arg(*ap, int);
++    }
+ 
+   return ((void *)argp);
+ }
+@@ -75,10 +78,13 @@
+ Copy_This_Type(const void *argp)
+ {
+   const thisARG *ap = (const thisARG *)argp;
+-  thisARG *result = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *result = typeMalloc(thisARG, 1);
+ 
+   if (result)
+-    *result = *ap;
++    {
++      T((T_CREATE("thisARG %p"), result));
++      *result = *ap;
++    }
+ 
+   return ((void *)result);
+ }
+Index: form/fty_enum.c
+Prereq:  1.20 
+--- ncurses-5.6/form/fty_enum.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_enum.c	2007-10-13 19:32:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_enum.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_enum.c,v 1.22 2007/10/13 19:32:26 tom Exp $")
+ 
+ typedef struct
+   {
+@@ -56,7 +56,7 @@
+ static void *
+ Make_Enum_Type(va_list *ap)
+ {
+-  enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
++  enumARG *argp = typeMalloc(enumARG, 1);
+ 
+   if (argp)
+     {
+@@ -64,6 +64,7 @@
+       char **kp = (char **)0;
+       int ccase, cunique;
+ 
++      T((T_CREATE("enumARG %p"), argp));
+       argp->kwds = va_arg(*ap, char **);
+       ccase = va_arg(*ap, int);
+       cunique = va_arg(*ap, int);
+@@ -96,10 +97,13 @@
+     {
+       const enumARG *ap = (const enumARG *)argp;
+ 
+-      result = (enumARG *)malloc(sizeof(enumARG));
++      result = typeMalloc(enumARG, 1);
+ 
+       if (result)
+-	*result = *ap;
++	{
++	  T((T_CREATE("enumARG %p"), result));
++	  *result = *ap;
++	}
+     }
+   return (void *)result;
+ }
+Index: form/fty_int.c
+Prereq:  1.20 
+--- ncurses-5.6/form/fty_int.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_int.c	2007-10-13 19:32:40.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_int.c,v 1.20 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_int.c,v 1.22 2007/10/13 19:32:40 tom Exp $")
+ 
+ #if USE_WIDEC_SUPPORT
+ #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+@@ -63,10 +63,11 @@
+ static void *
+ Make_This_Type(va_list *ap)
+ {
+-  thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *argp = typeMalloc(thisARG, 1);
+ 
+   if (argp)
+     {
++      T((T_CREATE("thisARG %p"), argp));
+       argp->precision = va_arg(*ap, int);
+       argp->low = va_arg(*ap, long);
+       argp->high = va_arg(*ap, long);
+@@ -90,9 +91,12 @@
+ 
+   if (argp)
+     {
+-      result = (thisARG *) malloc(sizeof(thisARG));
++      result = typeMalloc(thisARG, 1);
+       if (result)
+-	*result = *ap;
++	{
++	  T((T_CREATE("thisARG %p"), result));
++	  *result = *ap;
++	}
+     }
+   return (void *)result;
+ }
+Index: form/fty_num.c
+Prereq:  1.23 
+--- ncurses-5.6/form/fty_num.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_num.c	2007-10-13 19:32:54.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_num.c,v 1.23 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_num.c,v 1.25 2007/10/13 19:32:54 tom Exp $")
+ 
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+@@ -74,10 +74,11 @@
+ static void *
+ Make_This_Type(va_list *ap)
+ {
+-  thisARG *argn = (thisARG *) malloc(sizeof(thisARG));
++  thisARG *argn = typeMalloc(thisARG, 1);
+ 
+   if (argn)
+     {
++      T((T_CREATE("thisARG %p"), argn));
+       argn->precision = va_arg(*ap, int);
+       argn->low = va_arg(*ap, double);
+       argn->high = va_arg(*ap, double);
+@@ -107,9 +108,12 @@
+ 
+   if (argp)
+     {
+-      result = (thisARG *) malloc(sizeof(thisARG));
++      result = typeMalloc(thisARG, 1);
+       if (result)
+-	*result = *ap;
++	{
++	  T((T_CREATE("thisARG %p"), result));
++	  *result = *ap;
++	}
+     }
+   return (void *)result;
+ }
+Index: form/fty_regex.c
+Prereq:  1.19 
+--- ncurses-5.6/form/fty_regex.c	2006-04-22 21:33:05.000000000 +0000
++++ ncurses-5.6-20071201/form/fty_regex.c	2007-10-13 19:33:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include "form.priv.h"
+ 
+-MODULE_ID("$Id: fty_regex.c,v 1.19 2006/04/22 21:33:05 tom Exp $")
++MODULE_ID("$Id: fty_regex.c,v 1.21 2007/10/13 19:33:50 tom Exp $")
+ 
+ #if HAVE_REGEX_H_FUNCS		/* We prefer POSIX regex */
+ #include <regex.h>
+@@ -105,15 +105,17 @@
+   char *rx = va_arg(*ap, char *);
+   RegExp_Arg *preg;
+ 
+-  preg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
++  preg = typeMalloc(RegExp_Arg, 1);
+ 
+   if (preg)
+     {
+-      if (((preg->pRegExp = (regex_t *) malloc(sizeof(regex_t))) != 0)
++      T((T_CREATE("RegExp_Arg %p"), preg));
++      if (((preg->pRegExp = typeMalloc(regex_t, 1)) != 0)
+ 	  && !regcomp(preg->pRegExp, rx,
+ 		      (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
+ 	{
+-	  preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
++	  T((T_CREATE("regex_t %p"), preg->pRegExp));
++	  preg->refCount = typeMalloc(unsigned long, 1);
+ 
+ 	  *(preg->refCount) = 1;
+ 	}
+@@ -130,20 +132,21 @@
+   char *rx = va_arg(*ap, char *);
+   RegExp_Arg *pArg;
+ 
+-  pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
++  pArg = typeMalloc(RegExp_Arg, 1);
+ 
+   if (pArg)
+     {
+       int blen = RX_INCREMENT;
+ 
++      T((T_CREATE("RegExp_Arg %p"), pArg));
+       pArg->compiled_expression = NULL;
+-      pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
++      pArg->refCount = typeMalloc(unsigned long, 1);
+ 
+       *(pArg->refCount) = 1;
+ 
+       do
+ 	{
+-	  char *buf = (char *)malloc(blen);
++	  char *buf = typeMalloc(char, blen);
+ 
+ 	  if (buf)
+ 	    {
+Index: form/headers
+--- ncurses-5.6/form/headers	1998-02-11 12:13:43.000000000 +0000
++++ ncurses-5.6-20071201/form/headers	2006-12-24 16:25:45.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -29,3 +29,4 @@
+ # Author: Thomas E. Dickey <dickey@clark.net> 1996
+ #
+ $(srcdir)/form.h
++# vile:makemode
+Index: form/modules
+Prereq:  1.14 
+--- ncurses-5.6/form/modules	2004-12-25 23:29:22.000000000 +0000
++++ ncurses-5.6-20071201/form/modules	2006-12-24 00:52:58.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: modules,v 1.14 2004/12/25 23:29:22 tom Exp $
++# $Id: modules,v 1.15 2006/12/24 00:52:58 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
++# Copyright (c) 1998-2004,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"), #
+@@ -27,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey
++# Author: Thomas E. Dickey	1995-on
+ #
+ 
+ @ base
+@@ -72,3 +72,5 @@
+ fty_ipv4	lib		$(srcdir)	$(FORM_PRIV_H)
+ fty_num		lib		$(srcdir)	$(FORM_PRIV_H)
+ fty_regex	lib		$(srcdir)	$(FORM_PRIV_H)
++
++# vile:makemode
+Index: include/MKterm.h.awk.in
+Prereq:  1.47 
+--- ncurses-5.6/include/MKterm.h.awk.in	2006-11-26 01:18:23.000000000 +0000
++++ ncurses-5.6-20071201/include/MKterm.h.awk.in	2007-08-18 11:44:26.000000000 +0000
+@@ -1,6 +1,7 @@
++# vile:awkmode
+ BEGIN		{
+ 		    print  "/****************************************************************************"
+-		    print  " * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *"
++		    print  " * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *"
+ 		    print  " *                                                                          *"
+ 		    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
+ 		    print  " * copy of this software and associated documentation files (the            *"
+@@ -33,7 +34,7 @@
+ 		    print  "/*    and: Thomas E. Dickey                        1995-on                  */"
+ 		    print  "/****************************************************************************/"
+ 		    print  ""
+-		    print  "/* $Id: MKterm.h.awk.in,v 1.47 2006/11/26 01:18:23 tom Exp $ */"
++		    print  "/* $Id: MKterm.h.awk.in,v 1.49 2007/08/18 11:44:26 tom Exp $ */"
+ 		    print  ""
+ 		    print  "/*"
+ 		    print  "**	term.h -- Definition of struct term"
+@@ -229,26 +230,26 @@
+ 			print  ""
+ 			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
+ 			print  ""
+-			print  "#if BROKEN_LINKER"
+-			print  "#define boolnames  _nc_boolnames()"
+-			print  "#define boolcodes  _nc_boolcodes()"
+-			print  "#define boolfnames _nc_boolfnames()"
+-			print  "#define numnames   _nc_numnames()"
+-			print  "#define numcodes   _nc_numcodes()"
+-			print  "#define numfnames  _nc_numfnames()"
+-			print  "#define strnames   _nc_strnames()"
+-			print  "#define strcodes   _nc_strcodes()"
+-			print  "#define strfnames  _nc_strfnames()"
+-			print  ""
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);"
+-			print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);"
++			print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
++			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
++			print  ""
++			print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
++			print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
++			print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
++			print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
++			print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
++			print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
++			print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
++			print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
++			print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
+ 			print  ""
+ 			print  "#else"
+ 			print  ""
+@@ -291,10 +292,10 @@
+ 			print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
+ 			print  ""
+ 			print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
+-			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* implemented */"
++			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */"
+ 			print  "#else"
+-			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* implemented */"
+-			print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* implemented */"
++			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */"
++			print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */"
+ 			print  "#endif"
+ 			print  ""
+ 			print  "#endif /* __NCURSES_H */"
+Index: include/curses.h.in
+Prereq:  1.167 
+--- ncurses-5.6/include/curses.h.in	2006-11-26 01:14:54.000000000 +0000
++++ ncurses-5.6-20071201/include/curses.h.in	2007-11-18 00:32:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,7 +32,7 @@
+  *     and: Thomas E. Dickey                        1996-on                 *
+  ****************************************************************************/
+ 
+-/* $Id: curses.h.in,v 1.167 2006/11/26 01:14:54 tom Exp $ */
++/* $Id: curses.h.in,v 1.181 2007/11/18 00:32:03 tom Exp $ */
+ 
+ #ifndef __NCURSES_H
+ #define __NCURSES_H
+@@ -103,10 +103,17 @@
+ #define	NCURSES_COLOR_T short
+ 
+ /*
++ * Definition used to make WINDOW and similar structs opaque.
++ */
++#ifndef @cf_cv_enable_opaque@
++#define NCURSES_OPAQUE @NCURSES_OPAQUE@
++#endif
++
++/*
+  * The internal type used for window dimensions.
+  */
+ #undef	NCURSES_SIZE_T
+-#define	NCURSES_SIZE_T short
++#define	NCURSES_SIZE_T @NCURSES_SIZE_T@
+ 
+ /*
+  * Control whether tparm() supports varargs or fixed-parameter list.
+@@ -137,7 +144,7 @@
+ #include <stddef.h>	/* we want wchar_t */
+ #endif /* _XOPEN_SOURCE_EXTENDED */
+ 
+-/* XSI and SVr4 specify that curses implements 'bool'.  However, C++ may also
++/* X/Open and SVr4 specify that curses implements 'bool'.  However, C++ may also
+  * implement it.  If so, we must use the C++ compiler's type to avoid conflict
+  * with other interfaces.
+  *
+@@ -184,7 +191,7 @@
+ #endif
+ 
+ /*
+- * XSI attributes.  In the ncurses implementation, they are identical to the
++ * X/Open attributes.  In the ncurses implementation, they are identical to the
+  * A_ attributes.
+  */
+ #define WA_ATTRIBUTES	A_ATTRIBUTES
+@@ -206,9 +213,6 @@
+ #define WA_VERTICAL	A_VERTICAL
+ 
+ /* colors */
+-extern NCURSES_EXPORT_VAR(int) COLORS;
+-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
+-
+ #define COLOR_BLACK	0
+ #define COLOR_RED	1
+ #define COLOR_GREEN	2
+@@ -220,8 +224,8 @@
+ 
+ /* line graphics */
+ 
+-#if @BROKEN_LINKER@
+-extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
++#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@
++NCURSES_WRAPPED_VAR(chtype*, acs_map);
+ #define acs_map (_nc_acs_map())
+ #else
+ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+@@ -346,6 +350,8 @@
+     attr_t	attr;
+     wchar_t	chars[CCHARW_MAX];
+ #if @NCURSES_EXT_COLORS@
++#undef NCURSES_EXT_COLORS
++#define NCURSES_EXT_COLORS @NCURSES_PATCH@
+     int		ext_color;	/* color pair, must be more than 16-bits */
+ #endif
+ }
+@@ -353,6 +359,7 @@
+ 
+ #endif /* _XOPEN_SOURCE_EXTENDED */
+ 
++#if !NCURSES_OPAQUE
+ struct ldat;
+ 
+ struct _win_st
+@@ -409,41 +416,7 @@
+ #endif
+ #endif
+ };
+-
+-extern NCURSES_EXPORT_VAR(WINDOW *)   stdscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *)   curscr;
+-extern NCURSES_EXPORT_VAR(WINDOW *)   newscr;
+-
+-extern NCURSES_EXPORT_VAR(int)	LINES;
+-extern NCURSES_EXPORT_VAR(int)	COLS;
+-extern NCURSES_EXPORT_VAR(int)	TABSIZE;
+-
+-/*
+- * This global was an undocumented feature under AIX curses.
+- */
+-extern NCURSES_EXPORT_VAR(int) ESCDELAY;	/* ESC expire time in milliseconds */
+-
+-/*
+- * These functions are extensions - not in XSI Curses.
+- */
+-#if @NCURSES_EXT_FUNCS@
+-extern NCURSES_EXPORT(bool) is_term_resized (int, int);
+-extern NCURSES_EXPORT(char *) keybound (int, int);
+-extern NCURSES_EXPORT(const char *) curses_version (void);
+-extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+-extern NCURSES_EXPORT(int) define_key (const char *, int);
+-extern NCURSES_EXPORT(int) key_defined (const char *);
+-extern NCURSES_EXPORT(int) keyok (int, bool);
+-extern NCURSES_EXPORT(int) resize_term (int, int);
+-extern NCURSES_EXPORT(int) resizeterm (int, int);
+-extern NCURSES_EXPORT(int) use_default_colors (void);
+-extern NCURSES_EXPORT(int) use_extended_names (bool);
+-extern NCURSES_EXPORT(int) use_legacy_coding (int);
+-extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+-extern NCURSES_EXPORT(void) nofilter(void);
+-#else
+-#define curses_version() NCURSES_VERSION
+-#endif
++#endif /* NCURSES_OPAQUE */
+ 
+ /*
+  * This is an extension to support events...
+@@ -537,7 +510,7 @@
+ #endif
+ 
+ /*
+- * Function prototypes.  This is the complete XSI Curses list of required
++ * Function prototypes.  This is the complete X/Open Curses list of required
+  * functions.  Those marked `generated' will have sources generated from the
+  * macro definitions later in this file, in order to satisfy XPG4.2
+  * requirements.
+@@ -741,7 +714,7 @@
+ extern NCURSES_EXPORT(int) standend (void);				/* generated */
+ extern NCURSES_EXPORT(int) start_color (void);				/* implemented */
+ extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int);	/* implemented */
+-extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int);	/* implemented */
++extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int);	/* implemented */
+ extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);			/* implemented */
+ extern NCURSES_EXPORT(chtype) termattrs (void);				/* implemented */
+ extern NCURSES_EXPORT(char *) termname (void);				/* implemented */
+@@ -825,17 +798,16 @@
+ extern NCURSES_EXPORT(int) putp (const char *);				/* implemented */
+ 
+ #if NCURSES_TPARM_VARARGS
+-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* implemented */
++extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */
+ #else
+-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* implemented */
+-extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* implemented */
++extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */
++extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */
+ #endif
+ 
+-extern NCURSES_EXPORT_VAR(char) ttytype[];	/* needed for backward compatibility */
+-
+ /*
+  * These functions are not in X/Open, but we use them in macro definitions:
+  */
++extern NCURSES_EXPORT(int) getattrs (const WINDOW *);			/* generated */
+ extern NCURSES_EXPORT(int) getcurx (const WINDOW *);			/* generated */
+ extern NCURSES_EXPORT(int) getcury (const WINDOW *);			/* generated */
+ extern NCURSES_EXPORT(int) getbegx (const WINDOW *);			/* generated */
+@@ -846,12 +818,58 @@
+ extern NCURSES_EXPORT(int) getpary (const WINDOW *);			/* generated */
+ 
+ /*
+- * vid_attr() was implemented originally based on a draft of XSI curses.
++ * vid_attr() was implemented originally based on a draft of X/Open curses.
+  */
+ #ifndef _XOPEN_SOURCE_EXTENDED
+ #define vid_attr(a,pair,opts) vidattr(a)
+ #endif
+ 
++/*
++ * These functions are extensions - not in X/Open Curses.
++ */
++#undef  NCURSES_EXT_FUNCS
++#if @NCURSES_EXT_FUNCS@
++#undef  NCURSES_EXT_FUNCS
++#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
++typedef int (*NCURSES_CALLBACK)(WINDOW *, void *);
++extern NCURSES_EXPORT(bool) is_term_resized (int, int);
++extern NCURSES_EXPORT(char *) keybound (int, int);
++extern NCURSES_EXPORT(const char *) curses_version (void);
++extern NCURSES_EXPORT(int) assume_default_colors (int, int);
++extern NCURSES_EXPORT(int) define_key (const char *, int);
++extern NCURSES_EXPORT(int) key_defined (const char *);
++extern NCURSES_EXPORT(int) keyok (int, bool);
++extern NCURSES_EXPORT(int) resize_term (int, int);
++extern NCURSES_EXPORT(int) resizeterm (int, int);
++extern NCURSES_EXPORT(int) use_default_colors (void);
++extern NCURSES_EXPORT(int) use_extended_names (bool);
++extern NCURSES_EXPORT(int) use_legacy_coding (int);
++extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_CALLBACK, void *);
++extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_CALLBACK, void *);
++extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
++extern NCURSES_EXPORT(void) nofilter(void);
++
++/*
++ * These extensions provide access to information stored in the WINDOW even
++ * when NCURSES_OPAQUE is set:
++ */
++extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);		/* generated */
++extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);		/* generated */
++extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);		/* generated */
++extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);	/* generated */
++extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);		/* generated */
++extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
++
++#else
++#define curses_version() NCURSES_VERSION
++#endif
++
+ /* attributes */
+ 
+ #define NCURSES_ATTR_SHIFT       8
+@@ -892,11 +910,18 @@
+ #define getmaxyx(win,y,x)	(y = getmaxy(win), x = getmaxx(win))
+ #define getparyx(win,y,x)	(y = getpary(win), x = getparx(win))
+ 
+-#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
+-			 else getyx(newscr,(y),(x)); \
++#define getsyx(y,x) do { if (is_leaveok(newscr)) \
++			    (y) = (x) = -1; \
++			 else \
++			     getyx(newscr,(y), (x)); \
+ 		    } while(0)
+-#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
+-			 else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
++
++#define setsyx(y,x) do { if ((y) == -1 && (x) == -1) \
++			    leaveok(newscr, TRUE); \
++			 else { \
++			    leaveok(newscr, FALSE); \
++			    wmove(newscr, (y), (x)); \
++			} \
+ 		    } while(0)
+ 
+ #ifndef NCURSES_NOMACROS
+@@ -918,15 +943,17 @@
+ #define gettmode()
+ 
+ /* It seems older SYSV curses versions define these */
+-#define getattrs(win)		((win)?(win)->_attrs:A_NORMAL)
+-#define getcurx(win)		((win)?(win)->_curx:ERR)
+-#define getcury(win)		((win)?(win)->_cury:ERR)
+-#define getbegx(win)		((win)?(win)->_begx:ERR)
+-#define getbegy(win)		((win)?(win)->_begy:ERR)
+-#define getmaxx(win)		((win)?((win)->_maxx + 1):ERR)
+-#define getmaxy(win)		((win)?((win)->_maxy + 1):ERR)
+-#define getparx(win)		((win)?(win)->_parx:ERR)
+-#define getpary(win)		((win)?(win)->_pary:ERR)
++#if !NCURSES_OPAQUE
++#define getattrs(win)		((win) ? (win)->_attrs : A_NORMAL)
++#define getcurx(win)		((win) ? (win)->_curx : ERR)
++#define getcury(win)		((win) ? (win)->_cury : ERR)
++#define getbegx(win)		((win) ? (win)->_begx : ERR)
++#define getbegy(win)		((win) ? (win)->_begy : ERR)
++#define getmaxx(win)		((win) ? ((win)->_maxx + 1) : ERR)
++#define getmaxy(win)		((win) ? ((win)->_maxy + 1) : ERR)
++#define getparx(win)		((win) ? (win)->_parx : ERR)
++#define getpary(win)		((win) ? (win)->_pary : ERR)
++#endif /* NCURSES_OPAQUE */
+ 
+ #define wstandout(win)      	(wattrset(win,A_STANDOUT))
+ #define wstandend(win)      	(wattrset(win,A_NORMAL))
+@@ -934,12 +961,14 @@
+ #define wattron(win,at)		wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
+ #define wattroff(win,at)	wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
+ 
++#if !NCURSES_OPAQUE
+ #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
+ #define wattrset(win,at)	((win)->_color = PAIR_NUMBER(at), \
+ 				 (win)->_attrs = (at))
+ #else
+ #define wattrset(win,at)	((win)->_attrs = (at))
+ #endif
++#endif /* NCURSES_OPAQUE */
+ 
+ #define scroll(win)		wscrl(win,1)
+ 
+@@ -956,7 +985,10 @@
+ #define winchstr(w, s)		winchnstr(w, s, -1)
+ #define winsstr(w, s)		winsnstr(w, s, -1)
+ 
++#if !NCURSES_OPAQUE
+ #define redrawwin(win)		wredrawln(win, 0, (win)->_maxy+1)
++#endif /* NCURSES_OPAQUE */
++
+ #define waddstr(win,str)	waddnstr(win,str,-1)
+ #define waddchstr(win,str)	waddchnstr(win,str,-1)
+ 
+@@ -1064,11 +1096,14 @@
+ /*
+  * Some wide-character functions can be implemented without the extensions.
+  */
++#if !NCURSES_OPAQUE
+ #define getbkgd(win)                    ((win)->_bkgd)
++#endif /* NCURSES_OPAQUE */
+ 
+ #define slk_attr_off(a,v)		((v) ? ERR : slk_attroff(a))
+ #define slk_attr_on(a,v)		((v) ? ERR : slk_attron(a))
+ 
++#if !NCURSES_OPAQUE
+ #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
+ #define wattr_set(win,a,p,opts)		((win)->_attrs = ((a) & ~A_COLOR), \
+ 					 (win)->_color = (p), \
+@@ -1082,9 +1117,10 @@
+ 					 (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
+ 					 OK)
+ #endif
++#endif /* NCURSES_OPAQUE */
+ 
+ /*
+- * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
++ * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
+  * varargs.h.  It adds new calls vw_printw/vw_scanw, which are supposed to
+  * use POSIX stdarg.h.  The ncurses versions of vwprintw/vwscanw already
+  * use stdarg.h, so...
+@@ -1100,9 +1136,76 @@
+ NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
+ #endif
+ 
++/*
++ * These macros are extensions - not in X/Open Curses.
++ */
++#if @NCURSES_EXT_FUNCS@
++#if !NCURSES_OPAQUE
++#define is_cleared(win)		((win)->_clear)
++#define is_idcok(win)		((win)->_idcok)
++#define is_idlok(win)		((win)->_idlok)
++#define is_immedok(win)		((win)->_immed)
++#define is_keypad(win)		((win)->_use_keypad)
++#define is_leaveok(win)		((win)->_leaveok)
++#define is_nodelay(win)		((win)->_delay == 0)
++#define is_notimeout(win)	((win)->_notimeout)
++#define is_scrollok(win)	((win)->_scroll)
++#define is_syncok(win)		((win)->_sync)
++#define wgetparent(win)		((win) ? (win)->_parent : 0)
++#define wgetscrreg(win,t,b)	((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
++#endif
++#endif
++
+ #endif /* NCURSES_NOMACROS */
+ 
+ /*
++ * Public variables.
++ *
++ * Notes:
++ *	a. ESCDELAY was an undocumented feature under AIX curses.
++ *	   It gives the ESC expire time in milliseconds.
++ *	b. ttytype is needed for backward compatibility
++ */
++#if @cf_cv_enable_reentrant@
++
++NCURSES_WRAPPED_VAR(WINDOW *, curscr);
++NCURSES_WRAPPED_VAR(WINDOW *, newscr);
++NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
++NCURSES_WRAPPED_VAR(char *, ttytype);
++NCURSES_WRAPPED_VAR(int, COLORS);
++NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
++NCURSES_WRAPPED_VAR(int, COLS);
++NCURSES_WRAPPED_VAR(int, ESCDELAY);
++NCURSES_WRAPPED_VAR(int, LINES);
++NCURSES_WRAPPED_VAR(int, TABSIZE);
++
++#define curscr      NCURSES_PUBLIC_VAR(curscr())
++#define newscr      NCURSES_PUBLIC_VAR(newscr())
++#define stdscr      NCURSES_PUBLIC_VAR(stdscr())
++#define ttytype     NCURSES_PUBLIC_VAR(ttytype())
++#define COLORS      NCURSES_PUBLIC_VAR(COLORS())
++#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
++#define COLS        NCURSES_PUBLIC_VAR(COLS())
++#define ESCDELAY    NCURSES_PUBLIC_VAR(ESCDELAY())
++#define LINES       NCURSES_PUBLIC_VAR(LINES())
++#define TABSIZE     NCURSES_PUBLIC_VAR(TABSIZE())
++
++#else
++
++extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
++extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
++extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
++extern NCURSES_EXPORT_VAR(char) ttytype[];
++extern NCURSES_EXPORT_VAR(int) COLORS;
++extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
++extern NCURSES_EXPORT_VAR(int) COLS;
++extern NCURSES_EXPORT_VAR(int) ESCDELAY;
++extern NCURSES_EXPORT_VAR(int) LINES;
++extern NCURSES_EXPORT_VAR(int) TABSIZE;
++
++#endif
++
++/*
+  * Pseudo-character tokens outside ASCII range.  The curses wgetch() function
+  * will return any given one of these only if the corresponding k- capability
+  * is defined in your terminal's terminfo entry.
+Index: include/curses.tail
+Prereq:  1.14 
+--- ncurses-5.6/include/curses.tail	2006-05-27 16:28:29.000000000 +0000
++++ ncurses-5.6-20071201/include/curses.tail	2007-03-10 17:51:24.000000000 +0000
+@@ -1,8 +1,9 @@
++/* $Id: curses.tail,v 1.15 2007/03/10 17:51:24 tom Exp $ */
+ /*
++ * vile:cmode:
+  * This file is part of ncurses, designed to be appended after curses.h.in
+  * (see that file for the relevant copyright).
+  */
+-/* $Id: curses.tail,v 1.14 2006/05/27 16:28:29 tom Exp $ */
+ 
+ /* mouse interface */
+ 
+Index: include/curses.wide
+Prereq:  1.32 
+--- ncurses-5.6/include/curses.wide	2006-05-27 19:44:23.000000000 +0000
++++ ncurses-5.6-20071201/include/curses.wide	2007-03-10 17:52:23.000000000 +0000
+@@ -1,11 +1,11 @@
++/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
+ /*
++ * vile:cmode:
+  * This file is part of ncurses, designed to be appended after curses.h.in
+  * (see that file for the relevant copyright).
+  */
+ #ifdef _XOPEN_SOURCE_EXTENDED
+ 
+-/* $Id: curses.wide,v 1.32 2006/05/27 19:44:23 tom Exp $ */
+-
+ extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+ 
+ #define NCURSES_WACS(c)	(&_nc_wacs[(unsigned char)c])
+@@ -197,10 +197,13 @@
+ #define wadd_wchstr(win,str)		wadd_wchnstr(win,str,-1)
+ #define waddwstr(win,wstr)		waddnwstr(win,wstr,-1)
+ #define wget_wstr(w,t)			wgetn_wstr(w,t,-1)
+-#define wgetbkgrnd(win,wch)		(*wch = win->_bkgrnd, OK)
+ #define win_wchstr(w,c)			win_wchnstr(w,c,-1)
+ #define wins_wstr(w,t)			wins_nwstr(w,t,-1)
+ 
++#if !NCURSES_OPAQUE
++#define wgetbkgrnd(win,wch)		(*wch = win->_bkgrnd, OK)
++#endif
++
+ #define mvadd_wch(y,x,c)		mvwadd_wch(stdscr,y,x,c)
+ #define mvadd_wchnstr(y,x,s,n)		mvwadd_wchnstr(stdscr,y,x,s,n)
+ #define mvadd_wchstr(y,x,s)		mvwadd_wchstr(stdscr,y,x,s)
+Index: include/headers
+--- ncurses-5.6/include/headers	2001-04-07 20:52:04.000000000 +0000
++++ ncurses-5.6-20071201/include/headers	2007-01-20 19:57:04.000000000 +0000
+@@ -1,5 +1,6 @@
++# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $
+ ##############################################################################
+-# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -26,10 +27,16 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996
++# Author: Thomas E. Dickey	1996-on
+ #
+ term.h
+ curses.h
+ unctrl.h
+ termcap.h
+ $(srcdir)/ncurses_dll.h
++@ ticlib
++$(srcdir)/tic.h
++$(srcdir)/term_entry.h
++$(srcdir)/nc_tparm.h
++
++# vile:makemode
+Index: include/nc_alloc.h
+Prereq:  1.13 
+--- ncurses-5.6/include/nc_alloc.h	2005-01-16 00:27:35.000000000 +0000
++++ ncurses-5.6-20071201/include/nc_alloc.h	2007-02-03 18:40:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /****************************************************************************
+  *  Author: Thomas E. Dickey <dickey@clark.net> 1996,1997                   *
+  ****************************************************************************/
+-/* $Id: nc_alloc.h,v 1.13 2005/01/16 00:27:35 tom Exp $ */
++/* $Id: nc_alloc.h,v 1.15 2007/02/03 18:40:23 tom Exp $ */
+ 
+ #ifndef NC_ALLOC_included
+ #define NC_ALLOC_included 1
+@@ -67,8 +67,11 @@
+ #define HAVE_NC_FREEALL 1
+ struct termtype;
+ extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
++extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
++extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_free_tparm(void);
+ extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
++extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
+ #define ExitProgram(code) _nc_free_and_exit(code)
+ #endif
+ 
+@@ -87,6 +90,9 @@
+ extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
+ #endif
+ 
++/* entries.c */
++extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
++
+ #define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
+ #define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
+ #define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
+Index: include/ncurses_defs
+Prereq:  1.30 
+--- ncurses-5.6/include/ncurses_defs	2006-08-05 19:27:02.000000000 +0000
++++ ncurses-5.6-20071201/include/ncurses_defs	2007-10-06 21:18:16.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: ncurses_defs,v 1.30 2006/08/05 19:27:02 tom Exp $
++# $Id: ncurses_defs,v 1.35 2007/10/06 21:18:16 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2000-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 2000-2006,2007 Free 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"), #
+@@ -33,10 +33,8 @@
+ 
+ BROKEN_LINKER
+ BSD_TPUTS
+-CC_HAS_INLINE_FUNCS
+ CC_HAS_PROTOS
+ CPP_HAS_PARAM_INIT
+-CPP_HAS_VSCAN_FUNC
+ CURSES_ACS_ARRAY	acs_map
+ CURSES_WACS_ARRAY	_nc_wacs
+ DECL_ERRNO
+@@ -68,6 +66,7 @@
+ HAVE_GPP_BUILTIN_H
+ HAVE_GXX_BUILTIN_H
+ HAVE_HAS_KEY
++HAVE_IOSTREAM
+ HAVE_ISASCII
+ HAVE_ISSETUGID
+ HAVE_LANGINFO_CODESET
+@@ -159,6 +158,7 @@
+ HAVE_WRESIZE
+ HAVE__DOSCAN
+ MIXEDCASE_FILENAMES
++NCURSES_CHAR_EQ
+ NCURSES_EXPANDED
+ NCURSES_EXT_COLORS
+ NCURSES_EXT_FUNCS
+@@ -189,12 +189,10 @@
+ USE_MY_MEMMOVE
+ USE_OK_BCOPY
+ USE_RCS_IDS
++USE_REENTRANT
+ USE_SAFE_SPRINTF
+ USE_SCROLL_HINTS
+ USE_SIGWINCH
+-USE_STDIO_VSCAN
+-USE_STRSTREAM_VSCAN
+-USE_STRSTREAM_VSCAN_CAST
+ USE_SYMLINKS
+ USE_SYSMOUSE
+ USE_TERMCAP
+Index: include/ncurses_dll.h
+Prereq:  1.5 
+--- ncurses-5.6/include/ncurses_dll.h	2006-04-22 22:07:51.000000000 +0000
++++ ncurses-5.6-20071201/include/ncurses_dll.h	2007-03-10 19:21:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -25,7 +25,7 @@
+  * sale, use or other dealings in this Software without prior written       *
+  * authorization.                                                           *
+  ****************************************************************************/
+-/* $Id: ncurses_dll.h,v 1.5 2006/04/22 22:07:51 tom Exp $ */
++/* $Id: ncurses_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
+ 
+ #ifndef NCURSES_DLL_H_incl
+ #define NCURSES_DLL_H_incl 1
+@@ -76,4 +76,11 @@
+ #  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+ #endif
+ 
++/*
++ * For reentrant code, we map the various global variables into SCREEN by
++ * using functions to access them.
++ */
++#define NCURSES_PUBLIC_VAR(name) _nc_##name
++#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
++
+ #endif /* NCURSES_DLL_H_incl */
+Index: include/tic.h
+Prereq:  1.55 
+--- ncurses-5.6/include/tic.h	2006-08-19 14:17:49.000000000 +0000
++++ ncurses-5.6-20071201/include/tic.h	2007-08-11 16:12:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -33,7 +33,7 @@
+  ****************************************************************************/
+ 
+ /*
+- * $Id: tic.h,v 1.55 2006/08/19 14:17:49 tom Exp $
++ * $Id: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $
+  *	tic.h - Global variables and structures for the terminfo
+  *			compiler.
+  */
+@@ -164,16 +164,6 @@
+ extern NCURSES_EXPORT_VAR(struct token)	_nc_curr_token;
+ 
+ 	/*
+-	 * List of keynames with their corresponding code.
+-	 */
+-struct kn {
+-	const char *name;
+-	int code;
+-};
+-
+-extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
+-
+-	/*
+ 	 * Offsets to string capabilities, with the corresponding functionkey
+ 	 * codes.
+ 	 */
+@@ -185,11 +175,11 @@
+ #if	BROKEN_LINKER
+ 
+ #define	_nc_tinfo_fkeys	_nc_tinfo_fkeysf()
+-extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
++extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
+ 
+ #else
+ 
+-extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
++extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
+ 
+ #endif
+ 
+@@ -214,14 +204,9 @@
+ 	const char	*source;
+ };
+ 
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
+-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
+-
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[];
+-extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[];
+-
+ extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
+-extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool);
++extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool);
++extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool);
+ 
+ #define NOTFOUND	((struct name_table_entry *) 0)
+ 
+@@ -259,7 +244,7 @@
+ 
+ /* comp_hash.c: name lookup */
+ extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
+-	(const char *, const struct name_table_entry *const *);
++	(const char *, const short *);
+ extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry
+ 	(const char *, int, const struct name_table_entry *);
+ 
+Index: install-sh
+--- ncurses-5.6/install-sh	2001-06-22 14:37:33.000000000 +0000
++++ ncurses-5.6-20071201/install-sh	2003-11-29 21:30:21.000000000 +0000
+@@ -1,19 +1,37 @@
+ #! /bin/sh
+ #
+ # install - install a program, script, or datafile
+-# This comes from X11R5 (mit/util/scripts/install.sh).
+ #
+-# Copyright 1991 by the Massachusetts Institute of Technology
++# This originates from X11R5 (mit/util/scripts/install.sh), which was
++# later released in X11R6 (xc/config/util/install.sh) with the
++# following copyright and license.
+ #
+-# Permission to use, copy, modify, distribute, and sell this software and its
+-# documentation for any purpose is hereby granted without fee, provided that
+-# the above copyright notice appear in all copies and that both that
+-# copyright notice and this permission notice appear in supporting
+-# documentation, and that the name of M.I.T. not be used in advertising or
+-# publicity pertaining to distribution of the software without specific,
+-# written prior permission.  M.I.T. makes no representations about the
+-# suitability of this software for any purpose.  It is provided "as is"
+-# without express or implied warranty.
++# Copyright (C) 1994 X Consortium
++#
++# 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, 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
++# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
++# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++#
++# Except as contained in this notice, the name of the X Consortium shall not
++# be used in advertising or otherwise to promote the sale, use or other deal-
++# ings in this Software without prior written authorization from the X Consor-
++# tium.
++#
++#
++# FSF changes to this file are in the public domain.
+ #
+ # Calling this script install-sh is preferred over install.sh, to prevent
+ # `make' implicit rules from creating a file called install from it
+@@ -56,7 +74,7 @@
+ 
+ while [ x"$1" != x ]; do
+     case $1 in
+-	-c) instcmd="$cpprog"
++	-c) instcmd=$cpprog
+ 	    shift
+ 	    continue;;
+ 
+@@ -79,7 +97,7 @@
+ 	    shift
+ 	    continue;;
+ 
+-	-s) stripcmd="$stripprog"
++	-s) stripcmd=$stripprog
+ 	    shift
+ 	    continue;;
+ 
+@@ -106,7 +124,7 @@
+ 
+ if [ x"$src" = x ]
+ then
+-	echo "install:	no input file specified"
++	echo "$0: no input file specified" >&2
+ 	exit 1
+ else
+ 	:
+@@ -116,7 +134,7 @@
+ 	dst=$src
+ 	src=""
+ 
+-	if [ -d $dst ]; then
++	if [ -d "$dst" ]; then
+ 		instcmd=:
+ 		chmodcmd=""
+ 	else
+@@ -128,17 +146,17 @@
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ 
+-	if [ -f $src -o -d $src ]
++	if [ -f "$src" ] || [ -d "$src" ]
+ 	then
+ 		:
+ 	else
+-		echo "install:  $src does not exist"
++		echo "$0: $src does not exist" >&2
+ 		exit 1
+ 	fi
+ 
+ 	if [ x"$dst" = x ]
+ 	then
+-		echo "install:	no destination specified"
++		echo "$0: no destination specified" >&2
+ 		exit 1
+ 	else
+ 		:
+@@ -147,16 +165,16 @@
+ # If destination is a directory, append the input filename; if your system
+ # does not like double slashes in filenames, you may need to add some logic
+ 
+-	if [ -d $dst ]
++	if [ -d "$dst" ]
+ 	then
+-		dst="$dst"/`basename $src`
++		dst=$dst/`basename "$src"`
+ 	else
+ 		:
+ 	fi
+ fi
+ 
+ ## this sed command emulates the dirname command
+-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
++dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+ 
+ # Make sure that the destination directory exists.
+ #  this part is taken from Noah Friedman's mkinstalldirs script
+@@ -165,48 +183,48 @@
+ if [ ! -d "$dstdir" ]; then
+ defaultIFS='
+ 	'
+-IFS="${IFS-${defaultIFS}}"
++IFS="${IFS-$defaultIFS}"
+ 
+-oIFS="${IFS}"
++oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+-IFS="${oIFS}"
++set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
++IFS=$oIFS
+ 
+ pathcomp=''
+ 
+ while [ $# -ne 0 ] ; do
+-	pathcomp="${pathcomp}${1}"
++	pathcomp=$pathcomp$1
+ 	shift
+ 
+-	if [ ! -d "${pathcomp}" ] ;
++	if [ ! -d "$pathcomp" ] ;
+         then
+-		$mkdirprog "${pathcomp}"
++		$mkdirprog "$pathcomp"
+ 	else
+ 		:
+ 	fi
+ 
+-	pathcomp="${pathcomp}/"
++	pathcomp=$pathcomp/
+ done
+ fi
+ 
+ if [ x"$dir_arg" != x ]
+ then
+-	$doit $instcmd $dst &&
++	$doit $instcmd "$dst" &&
+ 
+-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
+-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
+-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
+-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
++	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
++	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
++	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
++	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
+ else
+ 
+ # If we're going to rename the final executable, determine the name now.
+ 
+ 	if [ x"$transformarg" = x ]
+ 	then
+-		dstfile=`basename $dst`
++		dstfile=`basename "$dst"`
+ 	else
+-		dstfile=`basename $dst $transformbasename |
++		dstfile=`basename "$dst" $transformbasename |
+ 			sed $transformarg`$transformbasename
+ 	fi
+ 
+@@ -214,20 +232,24 @@
+ 
+ 	if [ x"$dstfile" = x ]
+ 	then
+-		dstfile=`basename $dst`
++		dstfile=`basename "$dst"`
+ 	else
+ 		:
+ 	fi
+ 
+-# Make a temp file name in the proper directory.
++# Make a couple of temp file names in the proper directory.
+ 
+ 	dsttmp=$dstdir/#inst.$$#
++	rmtmp=$dstdir/#rm.$$#
+ 
+-# Move or copy the file name to the temp name
++# Trap to clean up temp files at exit.
+ 
+-	$doit $instcmd $src $dsttmp &&
++	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
++	trap '(exit $?); exit' 1 2 13 15
+ 
+-	trap "rm -f ${dsttmp}" 0 &&
++# Move or copy the file name to the temp name
++
++	$doit $instcmd "$src" "$dsttmp" &&
+ 
+ # and set any options; do chmod last to preserve setuid bits
+ 
+@@ -235,17 +257,38 @@
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $instcmd $src $dsttmp" command.
+ 
+-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
+-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
+-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
+-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
++	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
++	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
++	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
++	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
++
++# Now remove or move aside any old file at destination location.  We try this
++# two ways since rm can't unlink itself on some systems and the destination
++# file might be busy for other reasons.  In this case, the final cleanup
++# might fail but the new file should still install successfully.
++
++{
++	if [ -f "$dstdir/$dstfile" ]
++	then
++		$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
++		$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
++		{
++		  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
++		  (exit 1); exit
++		}
++	else
++		:
++	fi
++} &&
+ 
+ # Now rename the file to the real destination.
+ 
+-	$doit $rmcmd -f $dstdir/$dstfile &&
+-	$doit $mvcmd $dsttmp $dstdir/$dstfile
++	$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ 
+ fi &&
+ 
++# The final little trick to "correctly" pass the exit status to the exit trap.
+ 
+-exit 0
++{
++	(exit 0); exit
++}
+Index: man/Makefile.in
+Prereq:  1.39 
+--- ncurses-5.6/man/Makefile.in	2005-07-16 17:26:45.000000000 +0000
++++ ncurses-5.6-20071201/man/Makefile.in	2007-03-31 15:54:06.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.39 2005/07/16 17:26:45 tom Exp $
++# $Id: Makefile.in,v 1.41 2007/03/31 15:54:06 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -52,7 +52,7 @@
+ tags :
+ 
+ $(DESTDIR)$(mandir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
+ 
+@@ -77,4 +77,4 @@
+ 	sh $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
+ 
+ distclean realclean: clean
+-	rm -f Makefile ../edit_man.*
++	rm -f Makefile ../edit_man.* ../man_alias.*
+Index: man/captoinfo.1m
+Prereq:  1.20 
+--- ncurses-5.6/man/captoinfo.1m	2006-05-13 15:14:01.000000000 +0000
++++ ncurses-5.6-20071201/man/captoinfo.1m	2007-06-02 20:40:07.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,16 +27,16 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: captoinfo.1m,v 1.20 2006/05/13 15:14:01 tom Exp $
+-.TH captoinfo 1M ""
++.\" $Id: captoinfo.1m,v 1.22 2007/06/02 20:40:07 tom Exp $
++.TH @CAPTOINFO@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+-\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
++\fB@CAPTOINFO@\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
+ .SH SYNOPSIS
+-\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
++\fB@CAPTOINFO@\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
+ .SH DESCRIPTION
+-\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions.  For each
++\fB@CAPTOINFO@\fR looks in \fIfile\fR for \fBtermcap\fR descriptions.  For each
+ one found, an equivalent \fBterminfo\fR description is written to standard
+ output.  Termcap \fBtc\fR capabilities are translated directly to terminfo
+ \fBuse\fR capabilities.
+@@ -67,7 +67,7 @@
+ .SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
+ .PP
+ Some obsolete nonstandard capabilities will automatically be translated
+-into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR.
++into standard (SVr4/XSI Curses) terminfo capabilities by \fB@CAPTOINFO@\fR.
+ Whenever one of these automatic translations is done, the program
+ will issue an notification to stderr, inviting the user to check that
+ it has not mistakenly translated a completely unknown and random
+@@ -145,7 +145,7 @@
+ .TE
+ .PP
+ If the single-line capabilities occur in an entry, they will automatically
+-be composed into an \fBacsc\fR string.  The double-line capabilities and
++be composed into an \fIacsc\fR string.  The double-line capabilities and
+ \fBGG\fR are discarded with a warning message.
+ .PP
+ IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
+@@ -164,17 +164,17 @@
+ font3	s3ds
+ .TE
+ .PP
+-Additionally, the AIX \fBbox1\fR capability will be automatically translated to
+-an \fBacsc\fR string.
++Additionally, the AIX \fIbox1\fR capability will be automatically translated to
++an \fIacsc\fR string.
+ .PP
+ Hewlett-Packard's terminfo library supports two nonstandard terminfo
+-capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
++capabilities \fImeml\fR (memory lock) and \fImemu\fR (memory unlock).
+ These will be discarded with a warning message.
+ .SH NOTES
+-This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
+-You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
++This utility is actually a link to \fB@TIC@\fR(1M), running in \fI-I\fR mode.
++You can use other \fB@TIC@\fR options such as \fB-f\fR and  \fB-x\fR.
+ .PP
+-The trace option isn't identical to SVr4's.  Under SVr4, instead of following
++The trace option is not identical to SVr4's.  Under SVr4, instead of following
+ the \fB-v\fR with a trace level n, you repeat it n times.
+ .SH SEE ALSO
+ \fB@INFOCMP@\fR(1M),
+Index: man/clear.1
+Prereq:  1.5 
+--- ncurses-5.6/man/clear.1	2006-07-01 21:55:09.000000000 +0000
++++ ncurses-5.6-20071201/man/clear.1	2006-12-24 18:07:53.000000000 +0000
+@@ -26,20 +26,20 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: clear.1,v 1.5 2006/07/01 21:55:09 tom Exp $
+-.TH clear 1 ""
++.\" $Id: clear.1,v 1.6 2006/12/24 18:07:53 tom Exp $
++.TH @CLEAR@ 1 ""
+ .ds n 5
+ .SH NAME
+-\fBclear\fR - clear the terminal screen
++\fB@CLEAR@\fR - clear the terminal screen
+ .SH SYNOPSIS
+-\fBclear\fR
++\fB@CLEAR@\fR
+ .br
+ .SH DESCRIPTION
+-\fBclear\fR clears your screen if this is possible.  It looks in the
++\fB@CLEAR@\fR clears your screen if this is possible.  It looks in the
+ environment for the terminal type and then in the \fBterminfo\fR database to
+ figure out how to clear the screen.
+ .PP
+-\fBclear\fR ignores any command-line parameters that may be present.
++\fB@CLEAR@\fR ignores any command-line parameters that may be present.
+ .SH SEE ALSO
+ \fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
+ .PP
+Index: man/curs_add_wch.3x
+Prereq:  1.5 
+--- ncurses-5.6/man/curs_add_wch.3x	2006-12-02 17:02:35.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_add_wch.3x	2006-12-24 15:22:22.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_add_wch.3x,v 1.5 2006/12/02 17:02:35 tom Exp $
++.\" $Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp $
+ .TH curs_add_wch 3X ""
+ .SH NAME
+ \fBadd_wch\fP,
+@@ -82,7 +82,7 @@
+ -
+ If the character part of \fIwch\fP is
+ a tab, newline, backspace or other control character,
+-the window is updated and the cursor moves as if \fBaddch\fR(3X) were called.
++the window is updated and the cursor moves as if \fBaddch\fR were called.
+ .PP
+ The \fBecho_wchar\fP
+ function is functionally equivalent to a call to
+@@ -122,7 +122,7 @@
+ .PP
+ \fBcurses\fR(3X),
+ \fBcurs_addch\fR(3X),
+-\fBcurs_attr_get\fR(3X),
++\fBcurs_attr\fR(3X),
+ \fBcurs_clear\fR(3X),
+ \fBcurs_outopts\fR(3X),
+ \fBcurs_refresh\fR(3X),
+Index: man/curs_addch.3x
+Prereq:  1.25 
+--- ncurses-5.6/man/curs_addch.3x	2006-12-02 17:02:22.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_addch.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_addch.3x,v 1.25 2006/12/02 17:02:22 tom Exp $
++.\" $Id: curs_addch.3x,v 1.27 2007/06/02 20:40:07 tom Exp $
+ .TH curs_addch 3X ""
+ .SH NAME
+ \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
+@@ -87,7 +87,7 @@
+ .SS Line Graphics
+ The following variables may be used to add line drawing characters to the
+ screen with routines of the \fBaddch\fR family.  The default character listed
+-below is used if the \fBacsc\fR capability doesn't define a terminal-specific
++below is used if the \fBacsc\fR capability does not define a terminal-specific
+ replacement for it.
+ The names are taken from VT100 nomenclature.
+ .PP
+@@ -168,7 +168,7 @@
+ \fBcurs_inch\fR(3X),
+ \fBcurs_outopts\fR(3X),
+ \fBcurs_refresh\fR(3X),
+-\fBputc\fR(3S).
++\fBputc\fR(3).
+ .PP
+ Comparable functions in the wide-character (ncursesw) library are
+ described in
+Index: man/curs_attr.3x
+Prereq:  1.30 
+--- ncurses-5.6/man/curs_attr.3x	2006-07-15 18:39:05.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_attr.3x	2007-03-17 20:30:33.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_attr.3x,v 1.30 2006/07/15 18:39:05 tom Exp $
++.\" $Id: curs_attr.3x,v 1.31 2007/03/17 20:30:33 tom Exp $
+ .TH curs_attr 3X ""
+ .na
+ .hy 0
+@@ -253,6 +253,9 @@
+ if the window pointer is null.
+ The \fBwcolor_set\fP function returns an error if the color pair parameter
+ is outside the range 0..COLOR_PAIRS-1.
++This implementation also provides
++\fBgetattrs\fR
++for compatibility with older versions of curses.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBcurs_addch\fR(3X),
+Index: man/curs_border.3x
+Prereq:  1.18 
+--- ncurses-5.6/man/curs_border.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_border.3x	2007-02-24 16:15:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_border.3x,v 1.18 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_border.3x,v 1.19 2007/02/24 16:15:38 tom Exp $
+ .TH curs_border 3X ""
+ .na
+ .hy 0
+@@ -64,9 +64,9 @@
+ .br
+ \fBint wvline(WINDOW *win, chtype ch, int n);\fR
+ .br
+-\fBmvhline(int y, int x, chtype ch, int n);\fR
++\fBint mvhline(int y, int x, chtype ch, int n);\fR
+ .br
+-\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
++\fBint mvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
+ .br
+ \fBint mvvline(int y, int x, chtype ch, int n);\fR
+ .br
+Index: man/curs_deleteln.3x
+Prereq:  1.10 
+--- ncurses-5.6/man/curs_deleteln.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_deleteln.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_deleteln.3x,v 1.10 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_deleteln.3x,v 1.11 2007/06/02 20:40:07 tom Exp $
+ .TH curs_deleteln 3X ""
+ .SH NAME
+ \fBdeleteln\fR,
+@@ -79,7 +79,7 @@
+ Note that all but \fBwinsdelln\fR may be macros.
+ .PP
+ These routines do not require a hardware line delete or insert feature in the
+-terminal.  In fact, they won't use hardware line delete/insert unless
++terminal.  In fact, they will not use hardware line delete/insert unless
+ \fBidlok(..., TRUE)\fR has been set on the current window.
+ .SH SEE ALSO
+ \fBcurses\fR(3X)
+Index: man/curs_extend.3x
+Prereq:  1.15 
+--- ncurses-5.6/man/curs_extend.3x	2006-02-25 21:04:43.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_extend.3x	2006-12-24 18:01:48.000000000 +0000
+@@ -28,7 +28,7 @@
+ .\"
+ .\" Author: Thomas E. Dickey 1999-on
+ .\"
+-.\" $Id: curs_extend.3x,v 1.15 2006/02/25 21:04:43 tom Exp $
++.\" $Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp $
+ .TH curs_extend 3X ""
+ .SH NAME
+ \fBcurses_version\fP,
+@@ -56,7 +56,7 @@
+ which may be compiled into the terminfo
+ description, i.e., via the terminfo or termcap interfaces.
+ Normally these names are available for use, since the essential decision
+-is made by using the \fB-x\fP option of \fItic\fP to compile
++is made by using the \fB-x\fP option of \fB@TIC@\fP to compile
+ extended terminal definitions.
+ However you can disable this feature
+ to ensure compatibility with other implementations of curses.
+@@ -68,11 +68,11 @@
+ \fBcurs_getch\fR(3X),
+ \fBcurs_mouse\fR(3X),
+ \fBcurs_print\fR(3X),
++\fBcurs_util\fR(3X),
+ \fBdefault_colors\fR(3X),
+ \fBdefine_key\fR(3X),
+ \fBkeybound\fR(3X),
+ \fBkeyok\fR(3X),
+-\fBnofilter\fR(3X),
+ \fBresizeterm\fR(3X),
+ \fBwresize\fR(3X).
+ .SH AUTHOR
+Index: man/curs_getcchar.3x
+Prereq:  1.8 
+--- ncurses-5.6/man/curs_getcchar.3x	2006-07-15 22:51:07.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_getcchar.3x	2006-12-24 16:00:02.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_getcchar.3x,v 1.8 2006/07/15 22:51:07 wcmbrine Exp $
++.\" $Id: curs_getcchar.3x,v 1.10 2006/12/24 16:00:02 tom Exp $
+ .TH curs_getcchar 3X ""
+ .SH NAME
+ \fBgetcchar\fP,
+@@ -132,10 +132,10 @@
+ .SH SEE ALSO
+ .PP
+ Functions:
++\fBcurs_attr\fR(3X),
++\fBcurs_color\fR(3X),
+ \fBcurses\fR(3X),
+-\fBwcwidth\fR(3X),
+-\fBcurs_attr_get\fR(3X),
+-\fBcan_change_color\fR(3X).
++\fBwcwidth\fR(3).
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_getyx.3x
+Prereq:  1.13 
+--- ncurses-5.6/man/curs_getyx.3x	2006-05-27 20:28:05.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_getyx.3x	2007-05-12 16:34:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_getyx.3x,v 1.13 2006/05/27 20:28:05 tom Exp $
++.\" $Id: curs_getyx.3x,v 1.16 2007/05/12 16:34:49 tom Exp $
+ .TH curs_getyx 3X ""
+ .SH NAME
+ \fBgetyx\fR,
+@@ -69,7 +69,7 @@
+ \fBgetmaxyx\fR
+ macros are described in the XSI Curses standard, Issue 4.
+ .PP
+-This implementation also provides
++This implementation also provides functions
+ \fBgetbegx\fR,
+ \fBgetbegy\fR,
+ \fBgetcurx\fR,
+@@ -79,10 +79,25 @@
+ \fBgetparx\fR and
+ \fBgetpary\fR
+ for compatibility with older versions of curses.
+-X/Open does not define a corresponding \fBgetcuryx\fP function,
+-though that would be needed to make references to the WINDOW structure opaque.
++.PP
++Although X/Open Curses does not address this,
++many implementations provide members of the WINDOW structure
++containing values corresponding to these macros.
++For best portability, do not rely on using the data in WINDOW,
++since some implementations make WINDOW opaque (do not allow
++direct use of its members).
++.PP
++Besides the problem of opaque structures,
++the data stored in like-named members may not have like-values in
++different implementations.
++For example, the WINDOW._maxx and WINDOW._maxy values in ncurses
++have (at least since release 1.8.1) differed by one from some
++other implementations.
++The difference is hidden by means of the macro \fBgetmaxyx\fP.
+ .SH SEE ALSO
+-\fBcurses\fR(3X)
++\fBcurses\fR(3X),
++\fBcurs_legacy\fR(3X),
++\fBcurs_opaque\fR(3X)
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_insstr.3x
+Prereq:  1.17 
+--- ncurses-5.6/man/curs_insstr.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_insstr.3x	2006-12-24 14:59:30.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_insstr.3x,v 1.17 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_insstr.3x,v 1.18 2006/12/24 14:59:30 tom Exp $
+ .TH curs_insstr 3X ""
+ .SH NAME
+ \fBinsstr\fR,
+@@ -90,7 +90,7 @@
+ Also, no implementation of curses documents this inconsistency.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+-\fBunctrl\fR(3X),
++\fBcurs_util\fR(3X),
+ \fBcurs_clear\fR(3X),
+ \fBcurs_inch\fR(3X).
+ .\"#
+Index: man/curs_legacy.3x
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/man/curs_legacy.3x	2007-04-07 23:54:29.000000000 +0000
+@@ -0,0 +1,93 @@
++.\"***************************************************************************
++.\" Copyright (c) 2007 Free Software Foundation, Inc.                        *
++.\"                                                                          *
++.\" Permission is hereby granted, free of charge, to any person obtaining a  *
++.\" copy of this software and associated documentation files (the            *
++.\" "Software"), to deal in the Software without restriction, including      *
++.\" without limitation the rights to use, copy, modify, merge, publish,      *
++.\" distribute, distribute with modifications, sublicense, and/or sell       *
++.\" copies of the Software, and to permit persons to whom the Software is    *
++.\" furnished to do so, subject to the following conditions:                 *
++.\"                                                                          *
++.\" The above copyright notice and this permission notice shall be included  *
++.\" in all copies or substantial portions of the Software.                   *
++.\"                                                                          *
++.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++.\"                                                                          *
++.\" Except as contained in this notice, the name(s) of the above copyright   *
++.\" holders shall not be used in advertising or otherwise to promote the     *
++.\" sale, use or other dealings in this Software without prior written       *
++.\" authorization.                                                           *
++.\"***************************************************************************
++.\"
++.\" $Id: curs_legacy.3x,v 1.1 2007/04/07 23:54:29 tom Exp $
++.TH curs_legacy 3X ""
++.SH NAME
++\fBgetbegx\fR,
++\fBgetbegy\fR,
++\fBgetcurx\fR,
++\fBgetcury\fR,
++\fBgetmaxx\fR,
++\fBgetmaxy\fR,
++\fBgetparx\fR,
++\fBgetpary\fR - get \fBcurses\fR cursor and window coordinates
++.SH SYNOPSIS
++\fB#include <curses.h>\fR
++.sp
++\fBint getbegx(WINDOW *win);\fR
++.br
++\fBint getbegy(WINDOW *win);\fR
++.br
++\fBint getcurx(WINDOW *win);\fR
++.br
++\fBint getcury(WINDOW *win);\fR
++.br
++\fBint getmaxx(WINDOW *win);\fR
++.br
++\fBint getmaxy(WINDOW *win);\fR
++.br
++\fBint getparx(WINDOW *win);\fR
++.br
++\fBint getpary(WINDOW *win);\fR
++.br
++.SH DESCRIPTION
++The \fBgetbegy\fR and \fBgetbegx\fR functions return the same
++data as \fBgetbegyx\fR.
++.PP
++The \fBgetcury\fR and \fBgetcurx\fR functions return the same
++data as \fBgetyx\fR.
++.PP
++The \fBgetmaxy\fR and \fBgetmaxx\fR functions return the same
++data as \fBgetmaxyx\fR.
++.PP
++The \fBgetpary\fR and \fBgetparx\fR functions return the same
++data as \fBgetparyx\fR.
++.SH RETURN VALUE
++These functions return an integer,
++or ERR if the window parameter is null.
++.SH NOTES
++All of these interfaces are provided as macros and functions.
++The macros are suppressed (and only the functions provided)
++when \fBNCURSES_OPAQUE\fR is defined.
++The standard forms such as \fBgetyx\fP must be implemented as macros,
++and (in this implementation) are defined in terms of the functions
++described here,
++to avoid reliance on internal details of the WINDOW structure.
++.SH PORTABILITY
++These functions were supported on Version 7, BSD or System V implementations.
++.SH SEE ALSO
++\fBcurses\fR(3X),
++\fBcurs_getyx\fR(3X),
++\fBcurs_opaque\fR(3X)
++.\"#
++.\"# The following sets edit modes for GNU EMACS
++.\"# Local Variables:
++.\"# mode:nroff
++.\"# fill-column:79
++.\"# End:
+Index: man/curs_mouse.3x
+Prereq:  1.28 
+--- ncurses-5.6/man/curs_mouse.3x	2005-05-15 16:18:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_mouse.3x	2006-12-30 23:43:34.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2005,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            *
+@@ -27,7 +27,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp $
++.\" $Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp $
+ .TH curs_mouse 3X ""
+ .na
+ .hy 0
+@@ -158,22 +158,23 @@
+ It is useful for determining what subset of
+ the screen windows enclose the location of a mouse event.
+ .PP
+-The \fBwmouse_trafo\fR function transforms a given pair of coordinates from
+-stdscr-relative coordinates to screen-relative coordinates or vice versa.
++The \fBwmouse_trafo\fR function transforms a given pair of coordinates
++from stdscr-relative coordinates
++to coordinates relative to the given window or vice versa.
+ Please remember, that stdscr-relative coordinates are not always identical
+-to screen-relative coordinates due to the mechanism to reserve lines on top
+-or bottom of the screen for other purposes (ripoff() call, see also slk_...
+-functions).
++to window-relative coordinates due to the mechanism to reserve lines on top
++or bottom of the screen for other purposes
++(see the \fBripoffline()\fP and \fBslk_init\fR calls, for example).
+ If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
+-\fBpY, pX\fR must reference the coordinates of a location inside the window
+-\fBwin\fR.
+-They are converted to screen-relative coordinates and returned
++\fBpY, pX\fR must reference the coordinates of a location
++inside the window \fBwin\fR.
++They are converted to window-relative coordinates and returned
+ through the pointers.
+ If the conversion was successful, the function returns \fBTRUE\fR.
+ If one of the parameters was NULL or the location is
+ not inside the window, \fBFALSE\fR is returned.
+ If \fBto_screen\fR is
+-\fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative
++\fBFALSE\fR, the pointers \fBpY, pX\fR must reference window-relative
+ coordinates.
+ They are converted to stdscr-relative coordinates if the
+ window \fBwin\fR encloses this point.
+@@ -184,6 +185,10 @@
+ are only replaced by the converted coordinates if the transformation was
+ successful.
+ .PP
++The \fBmouse_trafo\fR function performs the same translation
++as \fBwmouse_trafo\fR,
++using stdscr for \fBwin\fR.
++.PP
+ The \fBmouseinterval\fR function sets the maximum time (in thousands of a
+ second) that can elapse between press and release events for them to
+ be recognized as a click.
+@@ -259,7 +264,7 @@
+ .RE
+ If you are using an unsupported configuration,
+ mouse events will not be visible to
+-\fBncurses\fR(3X) (and the \fBwmousemask\fR function will always
++\fBncurses\fR(3X) (and the \fBmousemask\fR function will always
+ return \fB0\fR).
+ .PP
+ If the terminfo entry contains a \fBXM\fR string,
+@@ -276,14 +281,17 @@
+ 3D-mice/trackballs/power gloves.
+ .SH BUGS
+ Mouse events under xterm will not in fact be ignored during cooked mode,
+-if they have been enabled by \fBwmousemask\fR.
++if they have been enabled by \fBmousemask\fR.
+ Instead, the xterm mouse
+ report sequence will appear in the string read.
+ .PP
+ 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 must have \fBkmous\fR set to "\\E[M" (the beginning
+-of the response from xterm for mouse clicks).
++Your terminfo description should have \fBkmous\fR set to "\\E[M"
++(the beginning of the response from xterm for mouse clicks).
++Other values for \fBkmous\fR are permitted,
++but under the same assumption,
++i.e., it is the beginning of the response.
+ .PP
+ Because there are no standard terminal responses that would serve to identify
+ terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
+@@ -291,7 +299,9 @@
+ or \fBkmous\fR is defined in
+ the terminal description, then the terminal may send mouse events.
+ .SH SEE ALSO
+-\fBcurses\fR(3X).
++\fBcurses\fR(3X),
++\fBcurs_kernel\fR(3X),
++\fBcurs_slk\fR(3X).
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_opaque.3x
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/man/curs_opaque.3x	2007-09-08 18:49:13.000000000 +0000
+@@ -0,0 +1,133 @@
++.\"***************************************************************************
++.\" Copyright (c) 2007 Free Software Foundation, Inc.                        *
++.\"                                                                          *
++.\" Permission is hereby granted, free of charge, to any person obtaining a  *
++.\" copy of this software and associated documentation files (the            *
++.\" "Software"), to deal in the Software without restriction, including      *
++.\" without limitation the rights to use, copy, modify, merge, publish,      *
++.\" distribute, distribute with modifications, sublicense, and/or sell       *
++.\" copies of the Software, and to permit persons to whom the Software is    *
++.\" furnished to do so, subject to the following conditions:                 *
++.\"                                                                          *
++.\" The above copyright notice and this permission notice shall be included  *
++.\" in all copies or substantial portions of the Software.                   *
++.\"                                                                          *
++.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++.\"                                                                          *
++.\" Except as contained in this notice, the name(s) of the above copyright   *
++.\" holders shall not be used in advertising or otherwise to promote the     *
++.\" sale, use or other dealings in this Software without prior written       *
++.\" authorization.                                                           *
++.\"***************************************************************************
++.\"
++.\" $Id: curs_opaque.3x,v 1.6 2007/09/08 18:49:13 tom Exp $
++.TH curs_opaque 3X ""
++.na
++.hy 0
++.SH NAME
++\fBis_cleared\fR,
++\fBis_idlok\fR,
++\fBis_idcok\fR,
++\fBis_immedok\fR,
++\fBis_keypad\fR,
++\fBis_leaveok\fR,
++\fBis_nodelay\fR,
++\fBis_timeout\fR,
++\fBis_scrollok\fR,
++\fBis_syncok\fR - \fBcurses\fR window properties
++.ad
++.hy
++.SH SYNOPSIS
++\fB#include <curses.h>\fR
++.sp
++\fBbool is_cleared(const WINDOW *win);\fR
++.br
++\fBbool is_idcok(const WINDOW *win);\fR
++.br
++\fBbool is_idlok(const WINDOW *win);\fR
++.br
++\fBbool is_immedok(const WINDOW *win);\fR
++.br
++\fBbool is_keypad(const WINDOW *win);\fR
++.br
++\fBbool is_leaveok(const WINDOW *win);\fR
++.br
++\fBbool is_nodelay(const WINDOW *win);\fR
++.br
++\fBbool is_notimeout(const WINDOW *win);\fR
++.br
++\fBbool is_scrollok(const WINDOW *win);\fR
++.br
++\fBbool is_syncok(const WINDOW *win);\fR
++.br
++\fBWINDOW * wgetparent(const WINDOW *win);\fR
++.br
++\fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR
++.br
++.SH DESCRIPTION
++This implementation provides functions which return properties
++set in the WINDOW structure, allowing it to be ``opaque'' if
++the symbol \fBNCURSES_OPAQUE\fR is defined:
++.TP 5
++\fBis_cleared\fR
++returns the value set in \fBclearok\fR
++.TP 5
++\fBis_idcok\fR
++returns the value set in \fBidcok\fR
++.TP 5
++\fBis_idlok\fR
++returns the value set in \fBidlok\fR
++.TP 5
++\fBis_immedok\fR
++returns the value set in \fBimmedok\fR
++.TP 5
++\fBis_keypad\fR
++returns the value set in \fBkeypad\fR
++.TP 5
++\fBis_leaveok\fR
++returns the value set in \fBleaveok\fR
++.TP 5
++\fBis_nodelay\fR
++returns the value set in \fBnodelay\fR
++.TP 5
++\fBis_notimeout\fR
++returns the value set in \fBnotimeout\fR
++.TP 5
++\fBis_scrollok\fR
++returns the value set in \fBscrollok\fR
++.TP 5
++\fBis_syncok\fR
++returns the value set in \fBsyncok\fR
++.TP 5
++\fBwgetparent\fR
++returns the parent WINDOW pointer for subwindows,
++or NULL for windows having no parent.
++.TP 5
++\fBwgetscrreg\fR
++returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP.
++.SH RETURN VALUE
++These functions all return TRUE or FALSE, except as noted.
++.SH NOTES
++Both a macro and a function are provided for each name.
++.SH PORTABILITY
++These routines are specific to ncurses.
++They were not supported on Version 7, BSD or System V implementations.
++It is recommended that any code depending on ncurses extensions
++be conditioned using NCURSES_VERSION.
++.SH SEE ALSO
++\fBcurses\fR(3X),
++\fBcurs_inopts\fR(3X),
++\fBcurs_outopts\fR(3X),
++\fBcurs_window\fR(3X)
++.\"#
++.\"# The following sets edit modes for GNU EMACS
++.\"# Local Variables:
++.\"# mode:nroff
++.\"# fill-column:79
++.\"# End:
+Index: man/curs_outopts.3x
+Prereq:  1.20 
+--- ncurses-5.6/man/curs_outopts.3x	2005-05-15 16:18:32.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_outopts.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp $
++.\" $Id: curs_outopts.3x,v 1.21 2007/06/02 20:40:07 tom Exp $
+ .TH curs_outopts 3X ""
+ .na
+ .hy 0
+@@ -91,7 +91,7 @@
+ application needs insert/delete line, for example, for a screen editor.
+ It is
+ disabled by default because insert/delete line tends to be visually annoying
+-when used in applications where it isn't really needed.
++when used in applications where it is not really needed.
+ If insert/delete line
+ cannot be used, \fBcurses\fR redraws the changed portions of all lines.
+ .PP
+Index: man/curs_printw.3x
+Prereq:  1.16 
+--- ncurses-5.6/man/curs_printw.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_printw.3x	2006-12-24 16:05:17.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_printw.3x,v 1.16 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_printw.3x,v 1.17 2006/12/24 16:05:17 tom Exp $
+ .TH curs_printw 3X ""
+ .na
+ .hy 0
+@@ -55,12 +55,12 @@
+ .br
+ .SH DESCRIPTION
+ The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
+-routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)].  In
++routines are analogous to \fBprintf\fR [see \fBprintf\fR(3)].  In
+ effect, the string that would be output by \fBprintf\fR is output
+ instead as though \fBwaddstr\fR were used on the given window.
+ .PP
+ The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
+-to \fBvprintf\fR [see \fBprintf\fR(3S)]
++to \fBvprintf\fR [see \fBprintf\fR(3)]
+ and perform a \fBwprintw\fR using a variable argument list.
+ The third argument is a \fBva_list\fR, a pointer to a
+ list of arguments, as defined in \fB<stdarg.h>\fR.
+@@ -85,7 +85,7 @@
+ This implementation uses \fB<stdarg.h>\fR for both, because that header
+ is included in \fB<curses.h\fR>.
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
++\fBcurses\fR(3X), \fBprintf\fR(3), \fBvprintf(3)\fR
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_scanw.3x
+Prereq:  1.13 
+--- ncurses-5.6/man/curs_scanw.3x	2006-02-25 21:42:22.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_scanw.3x	2006-12-24 16:05:49.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_scanw.3x,v 1.13 2006/02/25 21:42:22 tom Exp $
++.\" $Id: curs_scanw.3x,v 1.14 2006/12/24 16:05:49 tom Exp $
+ .TH curs_scanw 3X ""
+ .SH NAME
+ \fBscanw\fR,
+@@ -50,7 +50,7 @@
+ \fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR
+ .SH DESCRIPTION
+ The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
+-\fBscanf\fR [see \fBscanf\fR(3S)].  The effect of these routines is as though
++\fBscanf\fR [see \fBscanf\fR(3)].  The effect of these routines is as though
+ \fBwgetstr\fR were called on the window, and the resulting line used as input
+ for \fBsscanf\fR(3).  Fields which do not map to a variable in the \fIfmt\fR
+ field are lost.
+@@ -88,7 +88,7 @@
+ One possible way to get useful results would be to use a "%n" conversion
+ at the end of the format string to ensure that something was processed.
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
++\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3)
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_scr_dump.3x
+Prereq:  1.6 
+--- ncurses-5.6/man/curs_scr_dump.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_scr_dump.3x	2006-12-24 16:05:49.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_scr_dump.3x,v 1.6 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_scr_dump.3x,v 1.7 2006/12/24 16:05:49 tom Exp $
+ .TH curs_scr_dump 3X ""
+ .na
+ .hy 0
+@@ -93,7 +93,7 @@
+ "old".
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
+-\fBcurs_util\fR(3X), \fBsystem\fR(3S)
++\fBcurs_util\fR(3X), \fBsystem\fR(3)
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_slk.3x
+Prereq:  1.15 
+--- ncurses-5.6/man/curs_slk.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_slk.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_slk.3x,v 1.15 2006/02/25 21:49:19 tom Exp $
++.\" $Id: curs_slk.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
+ .TH curs_slk 3X ""
+ .na
+ .hy 0
+@@ -95,7 +95,7 @@
+ implementation supports a mode where it simulates 12 labels of up to five
+ characters each. This is most common for todays PC like enduser devices.
+ Please note that ncurses simulates this mode by taking over up to two lines at
+-the bottom of the screen, it doesn't try to use any hardware support for this
++the bottom of the screen, it does not try to use any hardware support for this
+ mode.
+ .PP
+ The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR
+Index: man/curs_termattrs.3x
+Prereq:  1.9 
+--- ncurses-5.6/man/curs_termattrs.3x	2003-12-27 18:37:47.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_termattrs.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_termattrs.3x,v 1.9 2003/12/27 18:37:47 tom Exp $
++.\" $Id: curs_termattrs.3x,v 1.10 2007/06/02 20:40:07 tom Exp $
+ .TH curs_termattrs 3X ""
+ .SH NAME
+ \fBbaudrate\fR,
+@@ -101,7 +101,7 @@
+ \fBnewterm\fR if \fBlongname\fR is going to be used with multiple
+ terminals.
+ .PP
+-If a given terminal doesn't support a video attribute that an
++If a given terminal does not support a video attribute that an
+ application program is trying to use, \fBcurses\fR may substitute a
+ different video attribute for it.
+ The \fBtermattrs\fR and \fBterm_attrs\fR functions
+Index: man/curs_termcap.3x
+Prereq:  1.20 
+--- ncurses-5.6/man/curs_termcap.3x	2006-02-25 21:50:01.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_termcap.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_termcap.3x,v 1.20 2006/02/25 21:50:01 tom Exp $
++.\" $Id: curs_termcap.3x,v 1.22 2007/06/02 20:40:07 tom Exp $
+ .TH curs_termcap 3X ""
+ .ds n 5
+ .SH NAME
+@@ -122,7 +122,7 @@
+ .SH BUGS
+ If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
+ be aware that it will be returned in terminfo notation, not the older and
+-not-quite-compatible termcap notation.  This won't cause problems if all
++not-quite-compatible termcap notation.  This will not cause problems if all
+ you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
+ terminfo-style strings as terminfo.
+ (The \fBtgoto\fR function, if configured to support termcap, will check
+@@ -158,7 +158,7 @@
+ In particular, some applications are reported to declare and/or
+ modify \fBospeed\fR.
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
++\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3).
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_terminfo.3x
+Prereq:  1.24 
+--- ncurses-5.6/man/curs_terminfo.3x	2006-11-04 21:50:03.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_terminfo.3x	2007-05-26 20:09:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_terminfo.3x,v 1.24 2006/11/04 21:50:03 tom Exp $
++.\" $Id: curs_terminfo.3x,v 1.28 2007/05/26 20:09:06 tom Exp $
+ .TH curs_terminfo 3X ""
+ .ds n 5
+ .na
+@@ -64,7 +64,7 @@
+ .br
+ \fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
+ .br
+-\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
++\fBint restartterm(char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
+ .br
+ \fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR
+ .br
+@@ -99,16 +99,22 @@
+ Initially, \fBsetupterm\fR should be called.  Note that
+ \fBsetupterm\fR is automatically called by \fBinitscr\fR and
+ \fBnewterm\fR.  This defines the set of terminal-dependent variables
+-[listed in \fBterminfo\fR(\*n)].  The \fBterminfo\fR variables
++[listed in \fBterminfo\fR(\*n)].
++The \fBterminfo\fR variables
+ \fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
+-follows: If \fBuse_env(FALSE)\fR has been called, values for
++follows:
++.RS
++.PP
++If \fBuse_env(FALSE)\fR has been called, values for
+ \fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
++.PP
+ Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
+ exist, their values are used.  If these environment variables do not
+ exist and the program is running in a window, the current window size
+ is used.  Otherwise, if the environment variables do not exist, the
+ values for \fBlines\fR and \fBcolumns\fR specified in the
+ \fBterminfo\fR database are used.
++.RE
+ .PP
+ The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
+ order) to get the definitions for these strings, numbers, and flags.
+@@ -183,7 +189,8 @@
+ example, when reloading a game saved as a core image dump).  It assumes that
+ the windows and the input and output options are the same as when memory was
+ saved, but the terminal type and baud rate may be different.  Accordingly,
+-it saves various tty state bits, does a setupterm, and then restores the bits.
++it saves various tty state bits, calls \fBsetupterm\fP,
++and then restores the bits.
+ .PP
+ The \fBtparm\fR routine instantiates the string \fIstr\fR with
+ parameters \fIpi\fR.  A pointer is returned to the result of \fIstr\fR
+@@ -288,6 +295,9 @@
+ be considered non-portable.  All other functions are as described in the XSI
+ curses standard.
+ .PP
++\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
++This is not part of X/Open Curses, but is assumed by some applications.
++.PP
+ In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
+ returns \fBOK\fR or \fBERR\fR.  We have chosen to implement the XSI Curses
+ semantics.
+@@ -309,7 +319,7 @@
+ So though it is documented as a terminfo function,
+ \fBmvcur\fR is really a curses function which is not well specified.
+ .PP
+-XSI states that the old location must be given.
++XSI states that the old location must be given for \fBmvcur\fP.
+ This implementation allows the caller to use -1's for the old ordinates.
+ In that case, the old location is unknown.
+ .PP
+@@ -317,7 +327,7 @@
+ are not stored in the arrays described in this section.
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
+-\fBputc\fR(3S), \fBterminfo\fR(\*n)
++\fBputc\fR(3), \fBterminfo\fR(\*n)
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/curs_trace.3x
+Prereq:  1.7 
+--- ncurses-5.6/man/curs_trace.3x	2005-05-15 17:02:54.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_trace.3x	2007-02-24 17:33:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2000-2002,2005 Free Software Foundation, Inc.              *
++.\" Copyright (c) 2000-2005,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp $
++.\" $Id: curs_trace.3x,v 1.8 2007/02/24 17:33:49 tom Exp $
+ .TH curs_trace 3X ""
+ .na
+ .hy 0
+@@ -56,7 +56,7 @@
+ .br
+ \fBchar *_nc_tracebits(void);\fR
+ .br
+-\fBchar *_tracechar(const unsigned char ch);\fR
++\fBchar *_tracechar(int);\fR
+ .br
+ \fBchar *_tracechtype(chtype ch);\fR
+ .br
+Index: man/curs_util.3x
+Prereq:  1.21 
+--- ncurses-5.6/man/curs_util.3x	2006-08-26 14:17:48.000000000 +0000
++++ ncurses-5.6-20071201/man/curs_util.3x	2007-05-26 21:44:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_util.3x,v 1.21 2006/08/26 14:17:48 tom Exp $
++.\" $Id: curs_util.3x,v 1.25 2007/05/26 21:44:42 tom Exp $
+ .TH curs_util 3X ""
+ .na
+ .hy 0
+@@ -49,7 +49,7 @@
+ .sp
+ \fBchar *unctrl(chtype c);\fR
+ .br
+-\fBchar *wunctrl(cchar_t *c);\fR
++\fBwchar_t *wunctrl(cchar_t *c);\fR
+ .br
+ \fBchar *keyname(int c);\fR
+ .br
+@@ -146,6 +146,29 @@
+ The XSI Curses standard, Issue 4 describes these functions.
+ It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
+ unsuccessful, but does not define any error conditions.
++This implementation checks for three cases:
++.RS
++.TP 5
++-
++the parameter is a 7-bit US-ASCII code.
++This is the case that X/Open Curses documented.
++.TP 5
++-
++the parameter is in the range 128-159, i.e., a C1 control code.
++If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter,
++\fBunctrl\fP returns the parameter, i.e., a one-character string with
++the parameter as the first character.
++Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls.
++.IP
++X/Open Curses does not document whether \fBunctrl\fP can be called before
++initializing curses.
++This implementation permits that,
++and returns the ``~@'', etc., values in that case.
++.TP 5
++-
++parameter values outside the 0 to 255 range.
++\fBunctrl\fP returns a null pointer.
++.RE
+ .PP
+ The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
+ terms.  The description here is adapted from the XSI Curses standard (which
+@@ -157,13 +180,24 @@
+ Other implementations have different conventions.
+ For example, they may show both sets of control characters with `^',
+ and strip the parameter to 7 bits.
+-Or they may ignore C1 controls and treat all of the upper-1280 codes as
++Or they may ignore C1 controls and treat all of the upper-128 codes as
+ printable.
+ This implementation uses 8 bits but does not modify the string to reflect
+ locale.
+ The \fBuse_legacy_coding\fP function allows the caller to
+ change the output of \fBunctrl\fP.
+ .PP
++Likewise, the \fBmeta\fP function allows the caller to change the
++output of \fBkeyname\fP, i.e.,
++it determines whether to use the `M-' prefix
++for ``meta'' keys (codes in the range 128 to 255).
++Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
++curses is initialized. 
++X/Open Curses does not document the treatment of codes 128 to 159.
++When treating them as ``meta'' keys
++(or if \fBkeyname\fP is called before initializing curses),
++this implementation returns strings ``M-^@'', ``M-^A'', etc.
++.PP
+ The \fBkeyname\fP function may return the names of user-defined
+ string capabilities which are defined in the terminfo entry via the \fB-x\fP
+ option of \fBtic\fP.
+@@ -178,11 +212,12 @@
+ It is recommended that any code depending on ncurses extensions
+ be conditioned using NCURSES_VERSION.
+ .SH SEE ALSO
+-\fBuse_legacy_coding\fR(3),
++\fBlegacy_coding\fR(3X),
+ \fBcurses\fR(3X),
+ \fBcurs_initscr\fR(3X),
+ \fBcurs_kernel\fR(3X),
+-\fBcurs_scr_dump\fR(3X).
++\fBcurs_scr_dump\fR(3X),
++\fBlegacy_coding\fR(3X).
+ .\"#
+ .\"# The following sets edit modes for GNU EMACS
+ .\"# Local Variables:
+Index: man/default_colors.3x
+Prereq:  1.19 
+--- ncurses-5.6/man/default_colors.3x	2006-02-25 21:49:19.000000000 +0000
++++ ncurses-5.6-20071201/man/default_colors.3x	2006-12-24 15:02:53.000000000 +0000
+@@ -28,7 +28,7 @@
+ .\"
+ .\" Author: Thomas E. Dickey 1997,1999,2000,2005
+ .\"
+-.\" $Id: default_colors.3x,v 1.19 2006/02/25 21:49:19 tom Exp $
++.\" $Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp $
+ .TH default_colors 3X ""
+ .SH NAME
+ \fBuse_default_colors\fR,
+@@ -104,9 +104,8 @@
+ If the \fIinitialize_pair\fP capability is found, this causes an
+ error as well.
+ .SH NOTES
+-Associated with this extension, the \fBinit_pair\fR(3X) function accepts
+-negative arguments to specify default foreground or background
+-colors.
++Associated with this extension, the \fBinit_pair\fR function accepts
++negative arguments to specify default foreground or background colors.
+ .PP
+ The \fIuse_default_colors()\fP function was added to support \fIded\fP.
+ This is a full-screen application which uses curses to manage only part
+Index: man/form_driver.3x
+Prereq:  1.12 
+--- ncurses-5.6/man/form_driver.3x	2006-11-04 18:51:00.000000000 +0000
++++ ncurses-5.6-20071201/man/form_driver.3x	2007-06-02 22:56:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_driver.3x,v 1.12 2006/11/04 18:51:00 tom Exp $
++.\" $Id: form_driver.3x,v 1.15 2007/06/02 22:56:49 tom Exp $
+ .TH form_driver 3X ""
+ .SH NAME
+ \fBform_driver\fR - command-processing loop of the form system
+@@ -38,7 +38,7 @@
+ .SH DESCRIPTION
+ Once a form has been posted (displayed), you should funnel input events to it
+ through \fBform_driver\fR.  This routine has two major input cases; either
+-the input is a form navigation request or it's a printable ASCII character.
++the input is a form navigation request or it is a printable ASCII character.
+ The form driver requests are as follows:
+ .TP 5
+ REQ_NEXT_PAGE
+@@ -221,6 +221,57 @@
+ If the second argument is a printable ASCII character, the driver places it
+ in the current position in the current field.  If it is one of the forms
+ requests listed above, that request is executed.
++.SS MOUSE HANDLING
++.PP
++If the second argument is the KEY_MOUSE special key, the associated
++mouse event is translated into one of the above pre-defined requests.
++Currently only clicks in the user window (e.g. inside the form display
++area or the decoration window) are handled.
++.PP
++If you click above the display region of the form:
++.RS
++.TP
++a REQ_PREV_FIELD is generated for a single click,
++.TP
++a REQ_PREV_PAGE is generated for a double-click and
++.TP
++a REQ_FIRST_FIELD is generated for a triple-click.
++.RE
++.PP
++If you click below the display region of the form:
++.RS
++.TP
++a REQ_NEXT_FIELD is generated for a single click,
++.TP
++a REQ_NEXT_PAGE is generated for a double-click and
++.TP
++a REQ_LAST_FIELD is generated for a triple-click.
++.RE
++.PP
++If you click at an field inside the display area of the form:
++.RS
++.TP 3
++-
++the form cursor is positioned to that field.
++.TP 3
++-
++If you double-click a field,
++the form cursor is positioned to that field
++and \fBE_UNKNOWN_COMMAND\fR is returned.
++This return value makes sense,
++because a double click usually means that an field-specific action should
++be returned.
++It is exactly the purpose of this return value to signal that an
++application specific command should be executed.
++.TP 3
++-
++If a translation
++into a request was done, \fBform_driver\fR returns the result of this request.
++.RE
++.PP
++If you clicked outside the user window or the mouse event couldn't be translated
++into a form request an \fBE_REQUEST_DENIED\fR is returned.
++.SS APPLICATION-DEFINED COMMANDS
+ .PP
+ If the second argument is neither printable ASCII nor one of the above
+ pre-defined form requests, the driver assumes it is an application-specific
+Index: man/form_field_new.3x
+Prereq:  1.14 
+--- ncurses-5.6/man/form_field_new.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/form_field_new.3x	2007-06-02 20:40:07.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field_new.3x,v 1.14 2006/11/04 17:12:00 tom Exp $
++.\" $Id: form_field_new.3x,v 1.16 2007/06/02 20:40:07 tom Exp $
+ .TH form_field_new 3X ""
+ .SH NAME
+ \fBform_field_new\fR - create and destroy form fields
+@@ -93,8 +93,8 @@
+ Version 7 or BSD versions.
+ .PP
+ It may be unwise to count on the set of attributes copied by
+-\fBdup_field\fR(3X) being portable; the System V forms library documents are
+-not very explicit about what gets copied and what doesn't.
++\fBdup_field\fR being portable; the System V forms library documents are
++not very explicit about what gets copied and what does not.
+ .SH AUTHORS
+ Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric
+ S. Raymond.
+Index: man/form_field_opts.3x
+Prereq:  1.12 
+--- ncurses-5.6/man/form_field_opts.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/form_field_opts.3x	2007-02-24 17:34:27.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,20 +27,20 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field_opts.3x,v 1.12 2006/11/04 17:12:00 tom Exp $
++.\" $Id: form_field_opts.3x,v 1.13 2007/02/24 17:34:27 tom Exp $
+ .TH form_field_opts 3X ""
+ .SH NAME
+ \fBform_field_opts\fR - set and get field options
+ .SH SYNOPSIS
+ \fB#include <form.h>\fR
+ .br
+-int set_field_opts(FIELD *field, OPTIONS opts);
++int set_field_opts(FIELD *field, Field_Options opts);
+ .br
+-int field_opts_on(FIELD *field, OPTIONS opts);
++int field_opts_on(FIELD *field, Field_Options opts);
+ .br
+-int field_opts_off(FIELD *field, OPTIONS opts);
++int field_opts_off(FIELD *field, Field_Options opts);
+ .br
+-OPTIONS field_opts(const FIELD *field);
++Field_Options field_opts(const FIELD *field);
+ .br
+ .SH DESCRIPTION
+ The function \fBset_field_opts\fR sets all the given field's option bits (field
+Index: man/form_field_validation.3x
+Prereq:  1.15 
+--- ncurses-5.6/man/form_field_validation.3x	2006-11-04 17:14:19.000000000 +0000
++++ ncurses-5.6-20071201/man/form_field_validation.3x	2006-12-24 16:08:08.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field_validation.3x,v 1.15 2006/11/04 17:14:19 tom Exp $
++.\" $Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp $
+ .TH form_field_validation 3X ""
+ .SH NAME
+ \fBform_field_validation\fR - data type validation for fields
+@@ -99,7 +99,7 @@
+ TYPE_REGEXP
+ Regular expression data.  Requires a regular expression \fB(char *)\fR third argument;
+ the data is valid if the regular expression matches it.  Regular expressions
+-are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
++are in the format of \fBregcomp\fR and \fBregexec\fR. Please notice
+ that the regular expression must match the whole field. If you have for
+ example an eight character wide field, a regular expression "^[0-9]*$" always
+ means that you have to fill all eight positions with digits. If you want to
+Index: man/form_hook.3x
+Prereq:  1.8 
+--- ncurses-5.6/man/form_hook.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/form_hook.3x	2007-02-24 17:34:18.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,28 +27,28 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
++.\" $Id: form_hook.3x,v 1.9 2007/02/24 17:34:18 tom Exp $
+ .TH form_hook 3X ""
+ .SH NAME
+ \fBform_hook\fR - set hooks for automatic invocation by applications
+ .SH SYNOPSIS
+ \fB#include <form.h>\fR
+ .br
+-int set_field_init(FORM *form, void (*func)(FORM *));
++int set_field_init(FORM *form, Form_Hook func);
+ .br
+-void (*)(FORM *) field_init(const FORM *form);
++Form_Hook field_init(const FORM *form);
+ .br
+-int set_field_term(FORM *form, void (*func)(FORM *));
++int set_field_term(FORM *form, Form_Hook func);
+ .br
+-void (*)(FORM *) field_term(const FORM *form);
++Form_Hook field_term(const FORM *form);
+ .br
+-int set_form_init(FORM *form, void (*func)(FORM *));
++int set_form_init(FORM *form, Form_Hook func);
+ .br
+-void (*)(FORM *) form_init(const FORM *form);
++Form_Hook form_init(const FORM *form);
+ .br
+-int set_form_term(FORM *form, void (*func)(FORM *));
++int set_form_term(FORM *form, Form_Hook func);
+ .br
+-void (*)(FORM *) form_term(const FORM *form);
++Form_Hook form_term(const FORM *form);
+ .br
+ .SH DESCRIPTION
+ These functions make it possible to set hook functions to be called at various
+Index: man/form_opts.3x
+Prereq:  1.8 
+--- ncurses-5.6/man/form_opts.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/form_opts.3x	2007-02-24 17:34:36.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,20 +27,20 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
++.\" $Id: form_opts.3x,v 1.9 2007/02/24 17:34:36 tom Exp $
+ .TH form_opts 3X ""
+ .SH NAME
+ \fBform_opts\fR - set and get form options
+ .SH SYNOPSIS
+ \fB#include <form.h>\fR
+ .br
+-int set_form_opts(FORM *form, OPTIONS opts);
++int set_form_opts(FORM *form, Field_Options opts);
+ .br
+-int form_opts_on(FORM *form, OPTIONS opts);
++int form_opts_on(FORM *form, Field_Options opts);
+ .br
+-int form_opts_off(FORM *form, OPTIONS opts);
++int form_opts_off(FORM *form, Field_Options opts);
+ .br
+-OPTIONS form_opts(const FORM *form);
++Field_Options form_opts(const FORM *form);
+ .br
+ .SH DESCRIPTION
+ The function \fBset_form_opts\fR sets all the given form's option bits (form
+Index: man/infocmp.1m
+Prereq:  1.43 
+--- ncurses-5.6/man/infocmp.1m	2006-05-13 15:14:01.000000000 +0000
++++ ncurses-5.6-20071201/man/infocmp.1m	2006-12-24 18:16:31.000000000 +0000
+@@ -27,14 +27,14 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: infocmp.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
+-.TH infocmp 1M ""
++.\" $Id: infocmp.1m,v 1.44 2006/12/24 18:16:31 tom Exp $
++.TH @INFOCMP@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+-\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
++\fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
+ .SH SYNOPSIS
+-\fBinfocmp\fR [\fB-\
++\fB@INFOCMP@\fR [\fB-\
+ 1\
+ C\
+ E\
+@@ -66,7 +66,7 @@
+ .br
+       [\fItermname\fR...]
+ .SH DESCRIPTION
+-\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other
++\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
+ terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
+ \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
+ binary file (\fBterm\fR) in a variety of formats.  In all cases, the boolean
+@@ -77,7 +77,7 @@
+ \fB-I\fR option will be assumed.  If more than one \fItermname\fR is specified,
+ the \fB-d\fR option will be assumed.
+ .SS Comparison Options [-d] [-c] [-n]
+-\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
++\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
+ \fItermname\fR with each of the descriptions given by the entries for the other
+ terminal's \fItermnames\fR.  If a capability is defined for only one of the
+ terminals, the value returned will depend on the type of the capability:
+@@ -114,7 +114,7 @@
+ .PP
+ The source produced by the \fB-C\fR option may be used directly as a
+ \fBtermcap\fR entry, but not all parameterized strings can be changed to
+-the \fBtermcap\fR format.  \fBinfocmp\fR will attempt to convert most of the
++the \fBtermcap\fR format.  \fB@INFOCMP@\fR will attempt to convert most of the
+ parameterized information, and anything not converted will be plainly marked in
+ the output and commented out.  These should be edited by hand.
+ .PP
+@@ -162,7 +162,7 @@
+ other terminals.  In this manner, it is possible to retrofit generic terminfo
+ entries into a terminal's description.  Or, if two similar terminals exist, but
+ were coded at different times or by different people so that each description
+-is a full description, using \fBinfocmp\fR will show what can be done to change
++is a full description, using \fB@INFOCMP@\fR will show what can be done to change
+ one description to be relative to the other.
+ .PP
+ A capability will get printed with an at-sign (@) if it no longer exists in the
+@@ -176,18 +176,18 @@
+ terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
+ specifying two \fBuse=\fR entries that contain differing entries for the same
+ capabilities will produce different results depending on the order that the
+-entries are given in.  \fBinfocmp\fR will flag any such inconsistencies between
++entries are given in.  \fB@INFOCMP@\fR will flag any such inconsistencies between
+ the other \fItermname\fR entries as they are found.
+ .PP
+ Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
+ contains that capability will cause the second specification to be ignored.
+-Using \fBinfocmp\fR to recreate a description can be a useful check to make
++Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
+ sure that everything was specified correctly in the original source
+ description.
+ .PP
+ Another error that does not cause incorrect compiled files, but will slow down
+ the compilation time, is specifying extra \fBuse=\fR fields that are
+-superfluous.  \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
++superfluous.  \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
+ were not needed.
+ .SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
+ The location of the compiled \fBterminfo\fR database is taken from the
+@@ -208,7 +208,7 @@
+ of 60 characters.
+ .TP
+ \fB-a\fR
+-tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
++tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
+ them.  Capabilities are commented by prefixing them with a period.
+ .TP 5
+ \fB-E\fR
+@@ -367,9 +367,9 @@
+ untranslatable capabilities are commented-out.
+ .TP 5
+ \fB-U\fR
+-tells \fBinfocmp\fP to not post-process the data after parsing the source file.
++tells \fB@INFOCMP@\fP to not post-process the data after parsing the source file.
+ This feature helps when comparing the actual contents of two source files,
+-since it excludes the inferences that \fBinfocmp\fP makes to fill in missing
++since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
+ data.
+ .TP 5
+ \fB-V\fR
+@@ -413,7 +413,7 @@
+ Actual BSD curses versions will have a more restricted set.  To see only the
+ 4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
+ .SH BUGS
+-The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
++The \fB-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
+ .SH SEE ALSO
+ \fB@CAPTOINFO@\fR(1M),
+ \fB@INFOTOCAP@\fR(1M),
+Index: man/infotocap.1m
+Prereq:  1.6 
+--- ncurses-5.6/man/infotocap.1m	2006-05-13 15:35:45.000000000 +0000
++++ ncurses-5.6-20071201/man/infotocap.1m	2006-12-24 20:13:56.000000000 +0000
+@@ -27,16 +27,16 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: infotocap.1m,v 1.6 2006/05/13 15:35:45 tom Exp $
+-.TH infotocap 1M ""
++.\" $Id: infotocap.1m,v 1.8 2006/12/24 20:13:56 tom Exp $
++.TH @INFOTOCAP@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+-\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
++\fB@INFOTOCAP@\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
+ .SH SYNOPSIS
+-\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
++\fB@INFOTOCAP@\fR [\fB-v\fR\fIn\fR \fIwidth\fR]  [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
+ .SH DESCRIPTION
+-\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions.  For each
++\fB@INFOTOCAP@\fR looks in \fIfile\fR for \fBterminfo\fR descriptions.  For each
+ one found, an equivalent \fBtermcap\fR description is written to standard
+ output.  Terminfo \fBuse\fR capabilities are translated directly to termcap
+ \fBtc\fR capabilities.
+@@ -59,12 +59,12 @@
+ \*d
+ Compiled terminal description database.
+ .SH NOTES
+-This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
+-You can use other \fItic\fR options such as \fB-f\fR and  \fB-x\fR.
++This utility is actually a link to \fI@TIC@\fR, running in \fI-C\fR mode.
++You can use other \fI@TIC@\fR options such as \fB-f\fR and  \fB-x\fR.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+-\fBtic\fR(1M),
+-\fBinfocmp\fR(1M),
++\fB@TIC@\fR(1M),
++\fB@INFOCMP@\fR(1M),
+ \fBterminfo\fR(\*n)
+ .PP
+ This describes \fBncurses\fR
+Index: man/legacy_coding.3x
+Prereq:  1.2 
+--- ncurses-5.6/man/legacy_coding.3x	2006-02-25 21:50:01.000000000 +0000
++++ ncurses-5.6-20071201/man/legacy_coding.3x	2006-12-24 15:12:55.000000000 +0000
+@@ -28,7 +28,7 @@
+ .\"
+ .\" Author: Thomas E. Dickey
+ .\"
+-.\" $Id: legacy_coding.3x,v 1.2 2006/02/25 21:50:01 tom Exp $
++.\" $Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp $
+ .TH legacy_coding 3X ""
+ .SH NAME
+ \fBuse_legacy_coding\fR \- use terminal's default colors
+@@ -50,7 +50,7 @@
+ .TP 5
+ 0
+ the library functions normally,
+-rendering nonprinting characters as described in \fBunctrl\fP(3X).
++rendering nonprinting characters as described in \fBunctrl\fP.
+ .TP
+ 1
+ the library ignores \fBisprintf\fP for codes in the range 160-255.
+Index: man/man_db.renames
+Prereq:  0.36 
+--- ncurses-5.6/man/man_db.renames	2006-05-13 23:47:25.000000000 +0000
++++ ncurses-5.6-20071201/man/man_db.renames	2007-04-07 23:06:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+ #                                                                            #
+ # Permission is hereby granted, free of charge, to any person obtaining a    #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -25,7 +25,7 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: man_db.renames,v 0.36 2006/05/13 23:47:25 tom Exp $
++# $Id: man_db.renames,v 0.39 2007/04/07 23:06:31 tom Exp $
+ # Manual-page renamings for the man_db program
+ #
+ # Files:
+@@ -67,8 +67,10 @@
+ curs_instr.3x			instr.3ncurses
+ curs_inwstr.3x			inwstr.3ncurses
+ curs_kernel.3x			kernel.3ncurses
++curs_legacy.3x			legacy.3ncurses
+ curs_mouse.3x			mouse.3ncurses
+ curs_move.3x			move.3ncurses
++curs_opaque.3x			opaque.3ncurses
+ curs_outopts.3x			outopts.3ncurses
+ curs_overlay.3x			overlay.3ncurses
+ curs_pad.3x			pad.3ncurses
+@@ -159,12 +161,15 @@
+ vprintf.3s			vprintf.3
+ wresize.3x			wresize.3ncurses
+ #
+-# Other cross-references:
+-addch.3x			addch.3ncurses
+-can_change_color.3x		can_change_color.3ncurses
+-curs_attr_get.3x		attr_get.3ncurses
+-dup_field.3x			dup_field.3ncurses
+-init_pair.3x			init_pair.3ncurses
+-#
+ # Other:
+ tack.1m				tack.1
++#
++getty.1				getty.8
++scanf.3				scanf.3
++ttys.5				ttys.4
++termio.7			termios.3
++system.3			system.3
++regcomp.3x			regcomp.3
++regexec.3x			regexec.3
++#
++# vile:cfgmode
+Index: man/menu_driver.3x
+Prereq:  1.12 
+--- ncurses-5.6/man/menu_driver.3x	2006-11-04 17:13:50.000000000 +0000
++++ ncurses-5.6-20071201/man/menu_driver.3x	2007-06-02 22:50:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: menu_driver.3x,v 1.12 2006/11/04 17:13:50 tom Exp $
++.\" $Id: menu_driver.3x,v 1.14 2007/06/02 22:50:09 tom Exp $
+ .TH menu_driver 3X ""
+ .SH NAME
+ \fBmenu_driver\fR - command-processing loop of the menu system
+@@ -38,7 +38,7 @@
+ .SH DESCRIPTION
+ Once a menu has been posted (displayed), you should funnel input events to it
+ through \fBmenu_driver\fR.  This routine has three major input cases; either
+-the input is a menu navigation request, it's a printable ASCII character or it
++the input is a menu navigation request, it is a printable ASCII character or it
+ is the KEY_MOUSE special key associated with an mouse event.
+ The menu driver requests are as follows:
+ .TP 5
+@@ -100,25 +100,56 @@
+ .PP
+ If the second argument is one of the above pre-defined requests, the
+ corresponding action is performed.
++.SS MOUSE HANDLING
+ .PP
+ If the second argument is the KEY_MOUSE special key, the associated
+ mouse event is translated into one of the above pre-defined requests.
+ Currently only clicks in the user window (e.g. inside the menu display
+-area or the decoration window) are handled. If you click above the
+-display region of the menu, a REQ_SCR_ULINE is generated, if you
+-doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a
+-REQ_FIRST_ITEM is generated. If you click below the display region of
+-the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE
+-is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you
+-click at an item inside the display area of the menu, the menu cursor
+-is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM
+-is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
+-sense, because a double click usually means that an item-specific action should
+-be returned. It's exactly the purpose of this return value to signal that an
+-application specific command should be executed. If a translation
++area or the decoration window) are handled.
++.PP
++If you click above the display region of the menu:
++.RS
++.TP
++a REQ_SCR_ULINE is generated for a single click,
++.TP
++a REQ_SCR_UPAGE is generated for a double-click and
++.TP
++a REQ_FIRST_ITEM is generated for a triple-click.
++.RE
++.PP
++If you click below the display region of the menu:
++.RS
++.TP
++a REQ_SCR_DLINE is generated for a single click,
++.TP
++a REQ_SCR_DPAGE is generated for a double-click and
++.TP
++a REQ_LAST_ITEM is generated for a triple-click.
++.RE
++.PP
++If you click at an item inside the display area of the menu:
++.RS
++.TP 3
++-
++the menu cursor is positioned to that item.
++.TP 3
++-
++If you double-click an item a REQ_TOGGLE_ITEM
++is generated and \fBE_UNKNOWN_COMMAND\fR is returned.
++This return value makes sense,
++because a double click usually means that an item-specific action should
++be returned.
++It is exactly the purpose of this return value to signal that an
++application specific command should be executed.
++.TP 3
++-
++If a translation
+ into a request was done, \fBmenu_driver\fR returns the result of this request.
++.RE
++.PP
+ If you clicked outside the user window or the mouse event couldn't be translated
+ into a menu request an \fBE_REQUEST_DENIED\fR is returned.
++.SS APPLICATION-DEFINED COMMANDS
+ .PP
+ If the second argument is neither printable ASCII nor one of the above
+ pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
+Index: man/menu_hook.3x
+Prereq:  1.8 
+--- ncurses-5.6/man/menu_hook.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/menu_hook.3x	2007-02-24 17:34:08.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,28 +27,28 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: menu_hook.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
++.\" $Id: menu_hook.3x,v 1.9 2007/02/24 17:34:08 tom Exp $
+ .TH menu_hook 3X ""
+ .SH NAME
+ \fBmenu_hook\fR - set hooks for automatic invocation by applications
+ .SH SYNOPSIS
+ \fB#include <menu.h>\fR
+ .br
+-int set_item_init(MENU *menu, void (*func)(MENU *));
++int set_item_init(MENU *menu, Menu_Hook func);
+ .br
+-void (*)(MENU *) item_init(const MENU *menu);
++Menu_Hook item_init(const MENU *menu);
+ .br
+-int set_item_term(MENU *menu, void (*func)(MENU *));
++int set_item_term(MENU *menu, Menu_Hook func);
+ .br
+-void (*)(MENU *) item_term(const MENU *menu);
++Menu_Hook item_term(const MENU *menu);
+ .br
+-int set_menu_init(MENU *menu, void (*func)(MENU *));
++int set_menu_init(MENU *menu, Menu_Hook func);
+ .br
+-void (*)(MENU *) menu_init(const MENU *menu);
++Menu_Hook menu_init(const MENU *menu);
+ .br
+-int set_menu_term(MENU *menu, void (*func)(MENU *));
++int set_menu_term(MENU *menu, Menu_Hook func);
+ .br
+-void (*)(MENU *) menu_term(const MENU *menu);
++Menu_Hook menu_term(const MENU *menu);
+ .br
+ .SH DESCRIPTION
+ These functions make it possible to set hook functions to be called at various
+Index: man/menu_opts.3x
+Prereq:  1.9 
+--- ncurses-5.6/man/menu_opts.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/menu_opts.3x	2007-02-24 17:33:59.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,20 +27,20 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: menu_opts.3x,v 1.9 2006/11/04 17:12:00 tom Exp $
++.\" $Id: menu_opts.3x,v 1.10 2007/02/24 17:33:59 tom Exp $
+ .TH menu_opts 3X ""
+ .SH NAME
+ \fBmenu_opts\fR - set and get menu options
+ .SH SYNOPSIS
+ \fB#include <menu.h>\fR
+ .br
+-int set_menu_opts(MENU *menu, OPTIONS opts);
++int set_menu_opts(MENU *menu, Menu_Options opts);
+ .br
+-int menu_opts_on(MENU *menu, OPTIONS opts);
++int menu_opts_on(MENU *menu, Menu_Options opts);
+ .br
+-int menu_opts_off(MENU *menu, OPTIONS opts);
++int menu_opts_off(MENU *menu, Menu_Options opts);
+ .br
+-OPTIONS menu_opts(const MENU *menu);
++Menu_Options menu_opts(const MENU *menu);
+ .br
+ .SH DESCRIPTION
+ The function \fBset_menu_opts\fR sets all the given menu's option bits (menu
+Index: man/mitem_opts.3x
+Prereq:  1.8 
+--- ncurses-5.6/man/mitem_opts.3x	2006-11-04 17:12:00.000000000 +0000
++++ ncurses-5.6-20071201/man/mitem_opts.3x	2007-02-24 17:33:32.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc.                   *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,20 +27,20 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: mitem_opts.3x,v 1.8 2006/11/04 17:12:00 tom Exp $
++.\" $Id: mitem_opts.3x,v 1.9 2007/02/24 17:33:32 tom Exp $
+ .TH mitem_opts 3X ""
+ .SH NAME
+ \fBmitem_opts\fR - set and get menu item options
+ .SH SYNOPSIS
+ \fB#include <menu.h>\fR
+ .br
+-int set_item_opts(ITEM *item, OPTIONS opts);
++int set_item_opts(ITEM *item, Item_Options opts);
+ .br
+-int item_opts_on(ITEM *item, OPTIONS opts);
++int item_opts_on(ITEM *item, Item_Options opts);
+ .br
+-int item_opts_off(ITEM *item, OPTIONS opts);
++int item_opts_off(ITEM *item, Item_Options opts);
+ .br
+-OPTIONS item_opts(const ITEM *item);
++Item_Options item_opts(const ITEM *item);
+ .br
+ .SH DESCRIPTION
+ The function \fBset_item_opts\fR sets all the given item's option bits (menu
+Index: man/ncurses.3x
+Prereq:  1.81 
+--- ncurses-5.6/man/ncurses.3x	2006-12-02 19:23:11.000000000 +0000
++++ ncurses-5.6-20071201/man/ncurses.3x	2007-09-01 18:57:29.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: ncurses.3x,v 1.81 2006/12/02 19:23:11 tom Exp $
++.\" $Id: ncurses.3x,v 1.89 2007/09/01 18:57:29 tom Exp $
+ .hy 0
+ .TH ncurses 3X ""
+ .ds n 5
+@@ -39,19 +39,27 @@
+ .br
+ .SH DESCRIPTION
+ The \fBncurses\fR library routines give the user a terminal-independent method
+-of updating character screens with reasonable optimization.  This
+-implementation is ``new curses'' (ncurses) and is the approved replacement for
++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 \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+ .PP
+-The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
+-Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
+-library is freely redistributable in source form.  Differences from the SVr4
++The \fBncurses\fR library emulates the \fBcurses\fR(3X) library of
++System V Release 4 UNIX,
++and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
++XSI stands for X/Open System Interfaces Extension.
++The \fBncurses\fR library is freely redistributable in source form.
++Differences from the SVr4
+ curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
+ described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
+ of individual man pages.
+ .PP
++The \fBncurses\fR library also provides many useful extensions,
++i.e., features which cannot be implemented by a simple add-on library
++but which require access to the internals of the library.
++.PP
+ A program using these routines must be linked with the \fB-lncurses\fR option,
+ or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
+ (Your system integrator may also have installed these libraries under
+@@ -68,8 +76,9 @@
+ .PP
+ To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR
+ must be called before any of the other routines that deal with windows
+-and screens are used.  The routine \fBendwin\fR must be called before
+-exiting.  To get character-at-a-time input without echoing (most
++and screens are used.
++The routine \fBendwin\fR must be called before exiting.
++To get character-at-a-time input without echoing (most
+ interactive, screen oriented programs want this), the following
+ sequence should be used:
+ .sp
+@@ -82,60 +91,72 @@
+       \fBkeypad(stdscr, TRUE);\fR
+ .sp
+ Before a \fBcurses\fR program is run, the tab stops of the terminal
+-should be set and its initialization strings, if defined, must be
+-output.  This can be done by executing the \fBtput init\fR command
++should be set and its initialization strings, if defined, must be output.
++This can be done by executing the \fBtput init\fR command
+ after the shell environment variable \fBTERM\fR has been exported.
+ \fBtset(1)\fR is usually responsible for doing this.
+ [See \fBterminfo\fR(\*n) for further details.]
+ .PP
+ The \fBncurses\fR library permits manipulation of data structures,
+ called \fIwindows\fR, which can be thought of as two-dimensional
+-arrays of characters representing all or part of a CRT screen.  A
+-default window called \fBstdscr\fR, which is the size of the terminal
+-screen, is supplied.  Others may be created with \fBnewwin\fR.
++arrays of characters representing all or part of a CRT screen.
++A default window called \fBstdscr\fR, which is the size of the terminal
++screen, is supplied.
++Others may be created with \fBnewwin\fR.
+ .PP
+ Note that \fBcurses\fR does not handle overlapping windows, that's done by
+-the \fBpanel\fR(3X) library. This means that you can either use
++the \fBpanel\fR(3X) library.
++This means that you can either use
+ \fBstdscr\fR or divide the screen into tiled windows and not using
+-\fBstdscr\fR at all. Mixing the two will result in unpredictable, and
+-undesired, effects.
++\fBstdscr\fR at all.
++Mixing the two will result in unpredictable, and undesired, effects.
+ .PP
+ Windows are referred to by variables declared as \fBWINDOW *\fR.
+ These data structures are manipulated with routines described here and
+-elsewhere in the \fBncurses\fR manual pages.  Among those, the most basic
+-routines are \fBmove\fR and \fBaddch\fR.  More general versions of
++elsewhere in the \fBncurses\fR manual pages.
++Among those, the most basic
++routines are \fBmove\fR and \fBaddch\fR.
++More general versions of
+ these routines are included with names beginning with \fBw\fR,
+-allowing the user to specify a window.  The routines not beginning
++allowing the user to specify a window.
++The routines not beginning
+ with \fBw\fR affect \fBstdscr\fR.
+ .PP
+ After using routines to manipulate a window, \fBrefresh\fR is called,
+ telling \fBcurses\fR to make the user's CRT screen look like
+-\fBstdscr\fR.  The characters in a window are actually of type
++\fBstdscr\fR.
++The characters in a window are actually of type
+ \fBchtype\fR, (character and attribute data) so that other information
+ about the character may also be stored with each character.
+ .PP
+-Special windows called \fIpads\fR may also be manipulated.  These are windows
++Special windows called \fIpads\fR may also be manipulated.
++These are windows
+ which are not constrained to the size of the screen and whose contents need not
+-be completely displayed.  See \fBcurs_pad\fR(3X) for more information.
++be completely displayed.
++See \fBcurs_pad\fR(3X) for more information.
+ .PP
+ In addition to drawing characters on the screen, video attributes and colors
+ may be supported, causing the characters to show up in such modes as
+ underlined, in reverse video, or in color on terminals that support such
+-display enhancements.  Line drawing characters may be specified to be output.
++display enhancements.
++Line drawing characters may be specified to be output.
+ On input, \fBcurses\fR is also able to translate arrow and function keys that
+-transmit escape sequences into single values.  The video attributes, line
++transmit escape sequences into single values.
++The video attributes, line
+ drawing characters, and input values use names, defined in \fB<curses.h>\fR,
+ such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
+ .PP
+ If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
+ program is executing in a window environment, line and column information in
+-the environment will override information read by \fIterminfo\fR.  This would
+-effect a program running in an AT&T 630 layer, for example, where the size of a
++the environment will override information read by \fIterminfo\fR.
++This would affect a program running in an AT&T 630 layer,
++for example, where the size of a
+ screen is changeable (see \fBENVIRONMENT\fR).
+ .PP
+ If the environment variable \fBTERMINFO\fR is defined, any program using
+ \fBcurses\fR checks for a local terminal definition before checking in the
+-standard place.  For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
++standard place.
++For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
+ compiled terminal definition is found in
+ .sp
+       \fB\*d/a/att4424\fR.
+@@ -155,43 +176,100 @@
+ .PP
+ The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
+ \fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
+-screen.  The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
++screen.
++The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
+ \fB0\fR, respectively.
+ .PP
+ The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
+ which is used for certain low-level operations like clearing and redrawing a
+-screen containing garbage.  The \fBcurscr\fR can be used in only a few
+-routines.
+-.
++screen containing garbage.
++The \fBcurscr\fR can be used in only a few routines.
++.\"
+ .SS Routine and Argument Names
+-Many \fBcurses\fR routines have two or more versions.  The routines prefixed
+-with \fBw\fR require a window argument.  The routines prefixed with \fBp\fR
+-require a pad argument.  Those without a prefix generally use \fBstdscr\fR.
++Many \fBcurses\fR routines have two or more versions.
++The routines prefixed with \fBw\fR require a window argument.
++The routines prefixed with \fBp\fR require a pad argument.
++Those without a prefix generally use \fBstdscr\fR.
+ .PP
+ The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
+-coordinate to move to before performing the appropriate action.  The
+-\fBmv\fR routines imply a call to \fBmove\fR before the call to the
+-other routine.  The coordinate \fIy\fR always refers to the row (of
+-the window), and \fIx\fR always refers to the column.  The upper
+-left-hand corner is always (0,0), not (1,1).
++coordinate to move to before performing the appropriate action.
++The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
++other routine.
++The coordinate \fIy\fR always refers to the row (of
++the window), and \fIx\fR always refers to the column.
++The upper left-hand corner is always (0,0), not (1,1).
+ .PP
+ The routines prefixed with \fBmvw\fR take both a window argument and
+-\fIx\fR and \fIy\fR coordinates.  The window argument is always
+-specified before the coordinates.
++\fIx\fR and \fIy\fR coordinates.
++The window argument is always specified before the coordinates.
+ .PP
+ In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
+ pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
+ \fBWINDOW\fR.
+ .PP
+ Option setting routines require a Boolean flag \fIbf\fR with the value
+-\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.  The
+-variables \fIch\fR and \fIattrs\fR below are always of type
+-\fBchtype\fR.  The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
+-\fBchtype\fR are defined in \fB<curses.h>\fR.  The type \fBTERMINAL\fR
+-is defined in \fB<term.h>\fR.  All other arguments are integers.
++\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
++Most of the data types used in the library routines,
++such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
++are defined in \fB<curses.h>\fR.
++Types used for the terminfo routines such as
++\fBTERMINAL\fR are defined in \fB<term.h>\fR.
++.PP
++This manual page describes functions which may appear in any configuration
++of the library.
++There are two common configurations of the library:
++.RS
++.TP 5
++ncurses
++the "normal" library, which handles 8-bit characters.
++The normal (8-bit) library stores characters combined with attributes
++in \fBchtype\fP data.
++.IP
++Attributes alone (no corresponding character) may be stored in \fBchtype\fP
++or the equivalent \fBattr_t\fP data.
++In either case, the data is stored in something like an integer.
++.IP
++Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
++.TP 5
++ncursesw
++the so-called "wide" library, which handles multibyte characters
++(See the section on \fBALTERNATE CONFIGURATIONS\fP).
++The "wide" library includes all of the calls from the "normal" library.
++It adds about one third more calls using data types which store
++multibyte characters:
++.RS
++.TP 5
++.B cchar_t
++corresponds to \fBchtype\fP.
++However it is a structure, because more data is stored than can fit into
++an integer.
++The characters are large enough to require a full integer value - and there
++may be more than one character per cell.
++The video attributes and color are stored in separate fields of the structure.
++.IP
++Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
++.TP 5
++.B wchar_t
++stores a "wide" character.
++Like \fBchtype\fP, this may be an integer.
++.TP 5
++.B wint_t
++stores a \fBwchar_t\fP or \fBWEOF\fP - not the same, though both may have
++the same size.
++.RE
++.IP
++The "wide" library provides new functions which are analogous to
++functions in the "normal" library.
++There is a naming convention which relates many of the normal/wide variants:
++a "_w" is inserted into the name.
++For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
++.RE
++.PP
++.\"
+ .SS Routine Name Index
+ The following table lists each \fBcurses\fR routine and the name of
+-the manual page on which it is described.  Routines flagged with `*'
++the manual page on which it is described.
++Routines flagged with `*'
+ are ncurses-specific, not described by XPG4 or present in SVr4.
+ .PP
+ .TS
+@@ -275,15 +353,24 @@
+ flushinp/\fBcurs_util\fR(3X)
+ get_wch/\fBcurs_get_wch\fR(3X)
+ get_wstr/\fBcurs_get_wstr\fR(3X)
++getattrs/\fBcurs_attr\fR(3X)
++getbegx/\fBcurs_legacy\fR(3X)*
++getbegy/\fBcurs_legacy\fR(3X)*
+ getbegyx/\fBcurs_getyx\fR(3X)
+ getbkgd/\fBcurs_bkgd\fR(3X)
+ getbkgrnd/\fBcurs_bkgrnd\fR(3X)
+ getcchar/\fBcurs_getcchar\fR(3X)
+ getch/\fBcurs_getch\fR(3X)
++getcurx/\fBcurs_legacy\fR(3X)*
++getcury/\fBcurs_legacy\fR(3X)*
++getmaxx/\fBcurs_legacy\fR(3X)*
++getmaxy/\fBcurs_legacy\fR(3X)*
+ getmaxyx/\fBcurs_getyx\fR(3X)
+ getmouse/\fBcurs_mouse\fR(3X)*
+ getn_wstr/\fBcurs_get_wstr\fR(3X)
+ getnstr/\fBcurs_getstr\fR(3X)
++getparx/\fBcurs_legacy\fR(3X)*
++getpary/\fBcurs_legacy\fR(3X)*
+ getparyx/\fBcurs_getyx\fR(3X)
+ getstr/\fBcurs_getstr\fR(3X)
+ getsyx/\fBcurs_kernel\fR(3X)
+@@ -321,7 +408,18 @@
+ instr/\fBcurs_instr\fR(3X)
+ intrflush/\fBcurs_inopts\fR(3X)
+ inwstr/\fBcurs_inwstr\fR(3X)
++is_cleared/\fBcurs_opaque\fR(3X)*
++is_idcok/\fBcurs_opaque\fR(3X)*
++is_idlok/\fBcurs_opaque\fR(3X)*
++is_immedok/\fBcurs_opaque\fR(3X)*
++is_keypad/\fBcurs_opaque\fR(3X)*
++is_leaveok/\fBcurs_opaque\fR(3X)*
+ is_linetouched/\fBcurs_touch\fR(3X)
++is_nodelay/\fBcurs_opaque\fR(3X)*
++is_notimeout/\fBcurs_opaque\fR(3X)*
++is_scrollok/\fBcurs_opaque\fR(3X)*
++is_syncok/\fBcurs_opaque\fR(3X)*
++is_term_resized/\fBresizeterm\fR(3X)*
+ is_wintouched/\fBcurs_touch\fR(3X)
+ isendwin/\fBcurs_initscr\fR(3X)
+ key_defined/\fBkey_defined\fR(3X)*
+@@ -431,6 +529,7 @@
+ nocbreak/\fBcurs_inopts\fR(3X)
+ nodelay/\fBcurs_inopts\fR(3X)
+ noecho/\fBcurs_inopts\fR(3X)
++nofilter/\fBcurs_util\fR(3X)*
+ nonl/\fBcurs_outopts\fR(3X)
+ noqiflush/\fBcurs_inopts\fR(3X)
+ noraw/\fBcurs_inopts\fR(3X)
+@@ -519,6 +618,7 @@
+ use_default_colors/\fBdefault_colors\fR(3X)*
+ use_env/\fBcurs_util\fR(3X)
+ use_extended_names/\fBcurs_extend\fR(3X)*
++use_legacy_coding/\fBlegacy_coding\fR(3X)*
+ vid_attr/\fBcurs_terminfo\fR(3X)
+ vid_puts/\fBcurs_terminfo\fR(3X)
+ vidattr/\fBcurs_terminfo\fR(3X)
+@@ -617,16 +717,16 @@
+ otherwise noted in the routine descriptions.
+ .PP
+ All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
+-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.  The return
+-values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
++\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
++The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
+ \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
+ right-hand side of assignment statements).
+ .PP
+ Routines that return pointers return \fBNULL\fR on error.
+ .SH ENVIRONMENT
+ The following environment symbols are useful for customizing the
+-runtime behavior of the \fBncurses\fR library.  The most important
+-ones have been already discussed in detail.
++runtime behavior of the \fBncurses\fR library.
++The most important ones have been already discussed in detail.
+ .TP 5
+ BAUDRATE
+ The debugging library checks this environment symbol when the application
+@@ -722,7 +822,7 @@
+ NCURSES_ASSUMED_COLORS
+ Override the compiled-in assumption that the
+ terminal's default colors are white-on-black
+-(see \fBassume_default_colors\fR(3X)).
++(see \fBdefault_colors\fR(3X)).
+ You may set the foreground and background color values with this environment
+ variable by proving a 2-element list: foreground,background.
+ For example, to tell ncurses to not assume anything
+@@ -739,7 +839,7 @@
+ .TP 5
+ NCURSES_NO_MAGIC_COOKIES
+ Some terminals use a magic-cookie feature which requires special handling
+-to make highlighting and other video attributes display properly. 
++to make highlighting and other video attributes display properly.
+ You can suppress the highlighting entirely for these terminals by
+ setting this environment variable.
+ .TP 5
+@@ -761,18 +861,21 @@
+ operations that the terminal does slowly, such as clearing the display.
+ .IP
+ As a result, many terminal descriptions (including the vt100)
+-have delay times embedded.  You may wish to use these descriptions,
++have delay times embedded.
++You may wish to use these descriptions,
+ but not want to pay the performance penalty.
+ .IP
+ Set the NCURSES_NO_PADDING symbol to disable all but mandatory
+-padding.  Mandatory padding is used as a part of special control
++padding.
++Mandatory padding is used as a part of special control
+ sequences such as \fIflash\fR.
+ .TP 5
+ NCURSES_NO_SETBUF
+ Normally \fBncurses\fR enables buffered output during terminal initialization.
+ This is done (as in SVr4 curses) for performance reasons.
+ For testing purposes, both of \fBncurses\fR and certain applications,
+-this feature is made optional.  Setting the NCURSES_NO_SETBUF variable
++this feature is made optional.
++Setting the NCURSES_NO_SETBUF variable
+ disables output buffering, leaving the output in the original (usually
+ line buffered) mode.
+ .TP 5
+@@ -944,12 +1047,14 @@
+ .SH EXTENSIONS
+ The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
+ that falls back to the old-style /etc/termcap file if the terminal setup code
+-cannot find a terminfo entry corresponding to \fBTERM\fR.  Use of this feature
++cannot find a terminfo entry corresponding to \fBTERM\fR.
++Use of this feature
+ is not recommended, as it essentially includes an entire termcap compiler in
+ the \fBncurses\fR startup code, at significant cost in core and startup cycles.
+ .PP
+ The \fBncurses\fR library includes facilities for capturing mouse events on
+-certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
++certain terminals (including xterm).
++See the \fBcurs_mouse\fR(3X)
+ manual page for details.
+ .PP
+ The \fBncurses\fR library includes facilities for responding to window
+@@ -974,38 +1079,48 @@
+ See the \fBdefault_colors\fR(3X) manual page for details.
+ .PP
+ The \fBncurses\fR library includes a function for directing application output
+-to a printer attached to the terminal device.  See the \fBcurs_print\fR(3X)
+-manual page for details.
++to a printer attached to the terminal device.
++See the \fBcurs_print\fR(3X) manual page for details.
+ .SH PORTABILITY
+-The \fBncurses\fR library is intended to be BASE-level conformant with the XSI
+-Curses standard.  The EXTENDED XSI Curses functionality
++The \fBncurses\fR library is intended to be BASE-level conformant with XSI
++Curses.
++The EXTENDED XSI Curses functionality
+ (including color support) is supported.
+ .PP
+ A small number of local differences (that is, individual differences between
+ the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
+ sections of the library man pages.
+ .PP
+-The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.  See
+-the \fBcurs_getch\fR(3X) manual page for details.
++This implementation also contains several extensions:
++.RS 5
++.PP
++The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
++See the \fBcurs_getch\fR(3X) manual page for details.
+ .PP
+-The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.  See
+-the \fBcurs_slk\fR(3X) manual page for details.
++The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
++See the \fBcurs_slk\fR(3X) manual page for details.
+ .PP
+ The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
+ \fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
+-part of XPG4, nor are they present in SVr4.  See the \fBcurs_mouse\fR(3X)
+-manual page for details.
++part of XPG4, nor are they present in SVr4.
++See the \fBcurs_mouse\fR(3X) manual page for details.
+ .PP
+-The routine \fBmcprint\fR was not present in any previous curses
+-implementation.  See the \fBcurs_print\fR(3X) manual page for details.
++The routine \fBmcprint\fR was not present in any previous curses implementation.
++See the \fBcurs_print\fR(3X) manual page for details.
+ .PP
+-The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.  See
+-the \fBwresize\fR(3X) manual page for details.
++The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
++See the \fBwresize\fR(3X) manual page for details.
++.PP
++The WINDOW structure's internal details can be hidden from application
++programs.
++See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
++.RE
+ .PP
+ In historic curses versions, delays embedded in the capabilities \fBcr\fR,
+ \fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
+-bits in the UNIX tty driver.  In this implementation, all padding is done by
+-NUL sends.  This method is slightly more expensive, but narrows the interface
++bits in the UNIX tty driver.
++In this implementation, all padding is done by sending NUL bytes.
++This method is slightly more expensive, but narrows the interface
+ to the UNIX kernel significantly and increases the package's portability
+ correspondingly.
+ .SH NOTES
+@@ -1013,8 +1128,8 @@
+ \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
+ .PP
+ If standard output from a \fBncurses\fR program is re-directed to something
+-which is not a tty, screen updates will be directed to standard error.  This
+-was an undocumented feature of AT&T System V Release 3 curses.
++which is not a tty, screen updates will be directed to standard error.
++This was an undocumented feature of AT&T System V Release 3 curses.
+ .SH AUTHORS
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+ Based on pcurses by Pavel Curtis.
+Index: man/panel.3x
+Prereq:  1.12 
+--- ncurses-5.6/man/panel.3x	2006-05-13 15:35:45.000000000 +0000
++++ ncurses-5.6-20071201/man/panel.3x	2007-05-12 20:45:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: panel.3x,v 1.12 2006/05/13 15:35:45 tom Exp $
++.\" $Id: panel.3x,v 1.14 2007/05/12 20:45:20 tom Exp $
+ .TH panel 3X ""
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -84,13 +84,13 @@
+ high-level curses calls, and work anywhere terminfo curses does.
+ .SH FUNCTIONS
+ .TP
+-\fBnew_panel(win)\fR
++.B new_panel(win)
+ allocates  a  \fBPANEL\fR structure, associates it with
+ \fBwin\fR, places the panel on the top of the stack  (causes  it
+ to  be  displayed above any other panel) and returns a
+ pointer to the new panel.
+ .TP
+-\fBvoid update_panels()\fR
++.B update_panels()
+ refreshes the virtual screen to reflect the relations between the
+ panels in the stack, but does not call doupdate() to refresh the
+ physical screen.  Use this function and not wrefresh or wnoutrefresh.
+@@ -98,52 +98,57 @@
+ doupdate(), but doupdate() is the function responsible for updating
+ the physical screen.
+ .TP
+-\fBdel_panel(pan)\fR
++.B del_panel(pan)
+ removes the given panel from the  stack and deallocates the
+ \fBPANEL\fR structure (but not its associated window).
+ .TP
+-\fBhide_panel(pan)\fR
++.B hide_panel(pan)
+ removes the given panel from the panel stack and thus hides it from
+ view. The \fBPANEL\fR structure is not lost, merely removed from the stack.
+ .TP
+-\fBshow_panel(pan)\fR
++.B panel_hidden(pan)
++returns TRUE if the panel is in the panel stack,
++FALSE if it is not.
++If the panel is a null pointer, return ERR.
++.TP
++.B show_panel(pan)
+ makes a hidden panel visible by placing it on top of the panels in the
+ panel stack. See COMPATIBILITY below.
+ .TP
+-\fBtop_panel(pan)\fR
++.B top_panel(pan)
+ puts the given visible panel on top of all panels in the stack.  See
+ COMPATIBILITY below.
+ .TP
+-\fBbottom_panel(pan)\fR
++.B bottom_panel(pan)
+ puts panel at the bottom of all panels.
+ .TP
+-\fBmove_panel(pan,starty,startx)\fR
++.B move_panel(pan,starty,startx)
+ moves the given panel window so that its upper-left corner is at
+ \fBstarty\fR, \fBstartx\fR.  It does not change the position of the
+ panel in the stack.  Be sure to use this function, not \fBmvwin()\fR,
+ to move a panel window.
+ .TP
+-\fBreplace_panel(pan,window)\fR
++.B replace_panel(pan,window)
+ replaces the current window of panel with \fBwindow\fR (useful, for
+ example if you want to resize a panel; if you're using \fBncurses\fR,
+ you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
+ It does not change the position of the panel in the stack.
+ .TP
+-\fBpanel_above(pan)\fR
++.B panel_above(pan)
+ returns a pointer to the panel above pan.  If the panel argument is
+ \fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
+ .TP
+-\fBpanel_below(pan)\fR
++.B panel_below(pan)
+ returns a pointer to the panel just below pan.  If the panel argument
+ is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
+ .TP
+-\fBset_panel_userptr(pan,ptr)\fR
++.B set_panel_userptr(pan,ptr)
+ sets the panel's user pointer.
+ .TP
+-\fBpanel_userptr(pan)\fR
++.B panel_userptr(pan)
+ returns the user pointer for a given panel.
+ .TP
+-\fBpanel_window(pan)\fR
++.B panel_window(pan)
+ returns a pointer to the window of the given panel.
+ .SH DIAGNOSTICS
+ Each routine that returns a pointer returns \fBNULL\fR if an error
+Index: man/term.5
+Prereq:  1.17 
+--- ncurses-5.6/man/term.5	2006-12-03 01:08:16.000000000 +0000
++++ ncurses-5.6-20071201/man/term.5	2006-12-24 18:12:38.000000000 +0000
+@@ -26,8 +26,8 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: term.5,v 1.17 2006/12/03 01:08:16 tom Exp $
+-.TH TERM 5
++.\" $Id: term.5,v 1.19 2006/12/24 18:12:38 tom Exp $
++.TH term 5
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+@@ -74,7 +74,7 @@
+ or sign extension are made.
+ .PP
+ The compiled file is created with the
+-.I tic
++.B @TIC@
+ program, and read by the routine
+ .IR setupterm .
+ The file is divided into six parts:
+Index: man/term.7
+Prereq:  1.15 
+--- ncurses-5.6/man/term.7	2006-02-25 21:47:06.000000000 +0000
++++ ncurses-5.6-20071201/man/term.7	2007-06-02 20:40:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ .\"                                                                          *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a  *
+ .\" copy of this software and associated documentation files (the            *
+@@ -26,8 +26,8 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: term.7,v 1.15 2006/02/25 21:47:06 tom Exp $
+-.TH TERM 7
++.\" $Id: term.7,v 1.18 2007/06/02 20:40:07 tom Exp $
++.TH term 7
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+@@ -66,14 +66,14 @@
+ Terminal type descriptions are stored as files of capability data underneath
+ \*d.  To browse a list of all terminal names recognized by the system, do
+ .sp
+-	toe | more
++	@TOE@ | more
+ .sp
+ from your shell.  These capability files are in a binary format optimized for
+ retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
+-to examine an entry, you must use the \fBinfocmp\fR(1) command.  Invoke it as
+-follows:
++to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
++Invoke it as follows:
+ .sp
+-	infocmp \fIentry-name\fR
++	@INFOCMP@ \fIentry-name\fR
+ .sp
+ where \fIentry-name\fR is the name of the type you wish to examine (and the
+ name of its capability file the subdirectory of \*d named for its first
+@@ -119,7 +119,7 @@
+ multi-platform environment!  If a model number follows, it should indicate
+ either the OS release level or the console driver release level.
+ .PP
+-The root name for a terminal emulator (assuming it doesn't fit one of the
++The root name for a terminal emulator (assuming it does not fit one of the
+ standard ANSI or vt100 types) should be the program name or a readily
+ recognizable abbreviation of it (i.e. \fBversaterm\fR, \fBctrm\fR).
+ .PP
+Index: man/terminfo.head
+Prereq:  1.13 
+--- ncurses-5.6/man/terminfo.head	2006-05-13 15:35:45.000000000 +0000
++++ ncurses-5.6-20071201/man/terminfo.head	2007-03-04 00:09:46.000000000 +0000
+@@ -26,8 +26,8 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: terminfo.head,v 1.13 2006/05/13 15:35:45 tom Exp $
+-.TH TERMINFO 5 "" "" "File Formats"
++.\" $Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp $
++.TH terminfo 5 "" "" "File Formats"
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+@@ -51,7 +51,7 @@
+ Entries in
+ .I terminfo
+ consist of a sequence of `,' separated fields (embedded commas may be
+-escaped with a backslash or notated as \e054).
++escaped with a backslash or notated as \\054).
+ White space after the `,' separator is ignored.
+ The first entry for each terminal gives the names which are known for the
+ terminal, separated by `|' characters.
+@@ -62,14 +62,14 @@
+ the last name may well contain upper case and blanks for readability.
+ .PP
+ Lines beginning with a `#' in the first column are treated as comments.
+-While comment lines are legal at any point, the output of \fIcaptoinfo\fP
+-and \fIinfotocap\fP (aliases for \fItic\fP)
++While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
++and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
+ will move comments so they occur only between entries.
+ .PP
+ Newlines and leading tabs may be used for formatting entries for readability.
+ These are removed from parsed entries.
+-The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions:
+-the result can be read by \fItic\fP.
++The \fB@INFOCMP@\ -f\fP option relies on this to format if-then-else expressions:
++the result can be read by \fB@TIC@\fP.
+ .PP
+ Terminal names (except for the last, verbose entry) should
+ be chosen using the following conventions.
+Index: man/terminfo.tail
+Prereq:  1.44 
+--- ncurses-5.6/man/terminfo.tail	2006-04-01 22:47:01.000000000 +0000
++++ ncurses-5.6-20071201/man/terminfo.tail	2007-06-02 20:30:40.000000000 +0000
+@@ -1,11 +1,11 @@
+-.\" $Id: terminfo.tail,v 1.44 2006/04/01 22:47:01 tom Exp $
++.\" $Id: terminfo.tail,v 1.48 2007/06/02 20:30:40 tom Exp $
+ .\" Beginning of terminfo.tail file
+ .\" This file is part of ncurses.
+ .\" See "terminfo.head" for copyright.
+ .ps +1
+-..
++.
+ .SS A Sample Entry
+-..
++.
+ The following entry, describing an ANSI-standard terminal, is representative
+ of what a \fBterminfo\fR entry for a modern terminal typically looks like.
+ .PP
+@@ -297,7 +297,7 @@
+ Cursor addressing and other strings requiring parameters
+ in the terminal are described by a
+ parameterized string capability, with
+-.IR printf (3S)
++.IR printf (3)
+ like escapes \fB%x\fR in it.
+ For example, to address the cursor, the
+ .B cup
+@@ -395,7 +395,7 @@
+ .IP
+ where c\di\u are conditions, b\di\u are bodies.
+ .IP
+-Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see
++Use the \fB-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
+ the structure of if-the-else's.
+ Some strings, e.g., \fBsgr\fP can be very complicated when written
+ on one line.
+@@ -993,7 +993,7 @@
+ They are normally sent to the terminal, by the
+ .I init
+ option of the
+-.IR tput
++.IR @TPUT@
+ program, each time the user logs in.
+ They will be printed in the following order:
+ .RS
+@@ -1578,7 +1578,7 @@
+ *
+ and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
+ the whole entry into the buffer, no matter what its length, to see
+-if it's the entry it wants,
++if it is the entry it wants,
+ .TP 5
+ *
+ and \fBtgetent()\fP is searching for a terminal type that either is the
+@@ -1599,19 +1599,19 @@
+ .PP
+ The "after tc expansion" length will have a similar effect to the
+ above, but only for people who actually set TERM to that terminal
+-type, since \fBtgetent()\fP only does "tc" expansion once it's found the
++type, since \fBtgetent()\fP only does "tc" expansion once it is found the
+ terminal type it was looking for, not while searching.
+ .PP
+ In summary, a termcap entry that is longer than 1023 bytes can cause,
+ on various combinations of termcap libraries and applications, a core
+ dump, warnings, or incorrect operation.
+-If it's too long even before
++If it is too long even before
+ "tc" expansion, it will have this effect even for users of some other
+ terminal types and users whose TERM variable does not have a termcap
+ entry.
+ .PP
+ When in -C (translate to termcap) mode, the \fBncurses\fR implementation of
+-\fBtic\fR(1) issues warning messages when the pre-tc length of a termcap
++\fB@TIC@\fR(1M) issues warning messages when the pre-tc length of a termcap
+ translation is too long.
+ The -c (check) option also checks resolved (after tc
+ expansion) lengths.
+@@ -1688,7 +1688,7 @@
+ \fB@TIC@\fR(1M),
+ \fB@INFOCMP@\fR(1M),
+ \fBcurses\fR(3X),
+-\fBprintf\fR(3S),
++\fBprintf\fR(3),
+ \fBterm\fR(\*n).
+ .SH AUTHORS
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+Index: man/tic.1m
+Prereq:  1.43 
+--- ncurses-5.6/man/tic.1m	2006-05-13 15:14:01.000000000 +0000
++++ ncurses-5.6-20071201/man/tic.1m	2006-12-24 17:59:11.000000000 +0000
+@@ -26,8 +26,8 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tic.1m,v 1.43 2006/05/13 15:14:01 tom Exp $
+-.TH tic 1M ""
++.\" $Id: tic.1m,v 1.44 2006/12/24 17:59:11 tom Exp $
++.TH @TIC@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+@@ -92,7 +92,7 @@
+ .TP
+ \fB-C\fR
+ Force source translation to termcap format.  Note: this differs from the \fB-C\fR
+-option of \fIinfocmp\fR(1M) in that it does not merely translate capability
++option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability
+ names, but also translates terminfo strings to termcap format.  Capabilities
+ that are not translatable are left in the entry under their terminfo names
+ but commented out with two preceding dots.
+Index: man/toe.1m
+Prereq:  1.18 
+--- ncurses-5.6/man/toe.1m	2006-05-13 15:14:01.000000000 +0000
++++ ncurses-5.6-20071201/man/toe.1m	2006-12-24 17:20:37.000000000 +0000
+@@ -26,8 +26,8 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: toe.1m,v 1.18 2006/05/13 15:14:01 tom Exp $
+-.TH toe 1M ""
++.\" $Id: toe.1m,v 1.20 2006/12/24 17:20:37 tom Exp $
++.TH @TOE@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+@@ -67,7 +67,7 @@
+ specifies that (verbose) output be written to standard error,
+ showing \fBtoe\fR's progress.
+ The optional parameter \fIn\fR is a number from 1 to 10,
+-interpreted as for \fBtic\fR(1).
++interpreted as for \fB@TIC@\fR(1M).
+ .TP
+ \fB-V\fR
+ reports the version of ncurses which was used in this program, and exits.
+Index: man/tput.1
+Prereq:  1.25 
+--- ncurses-5.6/man/tput.1	2006-05-13 15:14:01.000000000 +0000
++++ ncurses-5.6-20071201/man/tput.1	2006-12-24 18:11:31.000000000 +0000
+@@ -27,27 +27,27 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tput.1,v 1.25 2006/05/13 15:14:01 tom Exp $
+-.TH tput 1 ""
++.\" $Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp $
++.TH @TPUT@ 1 ""
+ .ds d @TERMINFO@
+ .ds n 1
+ .SH NAME
+-\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
++\fB@TPUT@\fR, \fBreset\fR - initialize a terminal or query terminfo database
+ .SH SYNOPSIS
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
++\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
++\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBinit\fR
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
++\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBreset\fR
+ .br
+-\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
++\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
+ .br
+-\fBtput -S\fR  \fB<<\fR
++\fB@TPUT@ -S\fR  \fB<<\fR
+ .br
+-\fBtput -V\fR
++\fB@TPUT@ -V\fR
+ .br
+ .SH DESCRIPTION
+-The \fBtput\fR utility uses the \fBterminfo\fR database to make the
++The \fB@TPUT@\fR utility uses the \fBterminfo\fR database to make the
+ values of terminal-dependent capabilities and information available to
+ the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
+ return the long name of the requested terminal type.
+@@ -55,15 +55,15 @@
+ .RS
+ .TP 5
+ string
+-\fBtput\fR writes the string to the standard output.
++\fB@TPUT@\fR writes the string to the standard output.
+ No trailing newline is supplied.
+ .TP
+ integer
+-\fBtput\fR writes the decimal value to the standard output,
++\fB@TPUT@\fR writes the decimal value to the standard output,
+ with a trailing newline.
+ .TP
+ boolean
+-\fBtput\fR simply sets the exit code
++\fB@TPUT@\fR simply sets the exit code
+ (\fB0\fR for TRUE if the terminal has the capability,
+ \fB1\fR for FALSE if it does not),
+ and writes nothing to the standard output.
+@@ -74,7 +74,7 @@
+ (e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
+ (See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
+ For a complete list of capabilities
+-and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
++and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
+ .TP
+ \fB-T\fR\fItype\fR
+ indicates the \fItype\fR of terminal.  Normally this option is
+@@ -94,21 +94,21 @@
+ .IP
+ Most parameters are numbers.
+ Only a few terminfo capabilities require string parameters;
+-\fBtput\fR uses a table to decide which to pass as strings.
+-Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
++\fB@TPUT@\fR uses a table to decide which to pass as strings.
++Normally \fB@TPUT@\fR uses \fBtparm\fR (3X) to perform the substitution.
+ If no parameters are given for the capability,
+-\fBtput\fR writes the string without performing the substitution.
++\fB@TPUT@\fR writes the string without performing the substitution.
+ .TP
+ \fB-S\fR
+-allows more than one capability per invocation of \fBtput\fR.  The
+-capabilities must be passed to \fBtput\fR from the standard input
++allows more than one capability per invocation of \fB@TPUT@\fR.  The
++capabilities must be passed to \fB@TPUT@\fR from the standard input
+ instead of from the command line (see example).
+ Only one \fIcapname\fR is allowed per line.
+ The \fB-S\fR option changes the
+ meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
+ EXIT CODES section).
+ .IP
+-Again, \fBtput\fR uses a table and the presence of parameters in its input
++Again, \fB@TPUT@\fR uses a table and the presence of parameters in its input
+ to decide whether to use \fBtparm\fR (3X),
+ and how to interpret the parameters.
+ .TP
+@@ -157,58 +157,58 @@
+ name in the first line of the terminal's description in the
+ \fBterminfo\fR database [see \fBterm\fR(5)].
+ .PP
+-If \fBtput\fR is invoked by a link named \fBreset\fR, this has the
+-same effect as \fBtput reset\fR.
++If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
++same effect as \fB@TPUT@ reset\fR.
+ See \fBtset\fR for comparison, which has similar behavior.
+ .SH EXAMPLES
+ .TP 5
+-\fBtput init\fR
++\fB@TPUT@ init\fR
+ Initialize the terminal according to the type of
+ terminal in the environmental variable \fBTERM\fR.  This
+ command should be included in everyone's .profile after
+ the environmental variable \fBTERM\fR has been exported, as
+ illustrated on the \fBprofile\fR(5) manual page.
+ .TP 5
+-\fBtput -T5620 reset\fR
++\fB@TPUT@ -T5620 reset\fR
+ Reset an AT&T 5620 terminal, overriding the type of
+ terminal in the environmental variable \fBTERM\fR.
+ .TP 5
+-\fBtput cup 0 0\fR
++\fB@TPUT@ cup 0 0\fR
+ Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
+ (the upper left corner of the screen, usually known as the "home"
+ cursor position).
+ .TP 5
+-\fBtput clear\fR
++\fB@TPUT@ clear\fR
+ Echo the clear-screen sequence for the current terminal.
+ .TP 5
+-\fBtput cols\fR
++\fB@TPUT@ cols\fR
+ Print the number of columns for the current terminal.
+ .TP 5
+-\fBtput -T450 cols\fR
++\fB@TPUT@ -T450 cols\fR
+ Print the number of columns for the 450 terminal.
+ .TP 5
+-\fBbold=`tput smso` offbold=`tput rmso`\fR
++\fBbold=`@TPUT@ smso` offbold=`@TPUT@ rmso`\fR
+ Set the shell variables \fBbold\fR, to begin stand-out mode
+ sequence, and \fBoffbold\fR, to end standout mode sequence,
+ for the current terminal.  This might be followed by a
+ prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
+ .TP 5
+-\fBtput hc\fR
++\fB@TPUT@ hc\fR
+ Set exit code to indicate if the current terminal is a hard copy terminal.
+ .TP 5
+-\fBtput cup 23 4\fR
++\fB@TPUT@ cup 23 4\fR
+ Send the sequence to move the cursor to row 23, column 4.
+ .TP 5
+-\fBtput cup\fR
++\fB@TPUT@ cup\fR
+ Send the terminfo string for cursor-movement, with no parameters substituted.
+ .TP 5
+-\fBtput longname\fR
++\fB@TPUT@ longname\fR
+ Print the long name from the \fBterminfo\fR database for the
+ type of terminal specified in the environmental
+ variable \fBTERM\fR.
+ .PP
+ .RS 5
+-\fBtput -S <<!\fR
++\fB@TPUT@ -S <<!\fR
+ .br
+ \fB> clear\fR
+ .br
+@@ -220,7 +220,7 @@
+ .RE
+ .TP 5
+ \&
+-This example shows \fBtput\fR processing several capabilities in one invocation.
++This example shows \fB@TPUT@\fR processing several capabilities in one invocation.
+ It clears the screen,
+ moves the cursor to position 10, 10
+ and turns on bold (extra bright) mode.
+@@ -238,7 +238,7 @@
+ section of \fBterminfo\fR(5)
+ .SH EXIT CODES
+ If the \fB-S\fR option is used,
+-\fBtput\fR checks for errors from each line,
++\fB@TPUT@\fR checks for errors from each line,
+ and if any errors are found, will set the exit code to 4 plus the
+ number of lines with errors.
+ If no errors are found, the exit code is \fB0\fR.
+@@ -285,8 +285,8 @@
+ =
+ \fB0\fR	T{
+ (\fIcapname\fR is a numeric variable that is not specified in the
+-\fBterminfo\fR(\*n) database for this terminal type, e.g.
+-\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
++\fBterminfo\fR(5) database for this terminal type, e.g.
++\fB@TPUT@ -T450 lines\fR and \fB@TPUT@ -T2621 xmc\fR)
+ T}
+ \fB1\fR	no error message is printed, see the \fBEXIT CODES\fR section.
+ \fB2\fR	usage error
+Index: man/tset.1
+Prereq:  1.18 
+--- ncurses-5.6/man/tset.1	2006-07-29 11:34:07.000000000 +0000
++++ ncurses-5.6-20071201/man/tset.1	2006-12-24 15:00:30.000000000 +0000
+@@ -26,7 +26,7 @@
+ .\" authorization.                                                           *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tset.1,v 1.18 2006/07/29 11:34:07 tom Exp $
++.\" $Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp $
+ .TH tset 1 ""
+ .SH NAME
+ \fBtset\fR, \fBreset\fR - terminal initialization
+@@ -272,7 +272,7 @@
+ csh(1),
+ sh(1),
+ stty(1),
+-setupterm(3X),
++curs_terminfo(3X),
+ tty(4),
+ terminfo(5),
+ ttys(5),
+Index: menu/Makefile.in
+Prereq:  1.43 
+--- ncurses-5.6/menu/Makefile.in	2006-10-14 20:40:36.000000000 +0000
++++ ncurses-5.6-20071201/menu/Makefile.in	2007-04-28 14:56:11.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.43 2006/10/14 20:40:36 tom Exp $
++# $Id: Makefile.in,v 1.48 2007/04/28 14:56:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -27,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
++# Author: Thomas E. Dickey 1996-on
+ #
+ # Makefile for menu source code.
+ #
+@@ -91,7 +91,7 @@
+ 
+ CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
+ 
+-LINK		= $(LIBTOOL_LINK) $(CC)
++LINK		= $(LIBTOOL_LINK)
+ LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
+ 
+ SHLIB_DIRS	= -L../lib
+@@ -106,8 +106,6 @@
+ 
+ RANLIB		= @LIB_PREP@
+ 
+-IMPORT_LIB	= @IMPORT_LIB@
+-SHARED_LIB	= @SHARED_LIB@
+ LIBRARIES	= @LIBS_TO_MAKE@
+ 
+ LINT		= @LINT@
+@@ -128,7 +126,7 @@
+ 
+ $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(libdir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ # make copies to simplify include-paths while still keeping menu's include
+ # file in this directory.
+Index: menu/headers
+--- ncurses-5.6/menu/headers	1998-02-11 12:13:49.000000000 +0000
++++ ncurses-5.6-20071201/menu/headers	2006-12-24 16:25:45.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -30,3 +30,4 @@
+ #
+ $(srcdir)/eti.h
+ $(srcdir)/menu.h
++# vile:makemode
+Index: menu/menu.h
+Prereq:  1.18 
+--- ncurses-5.6/menu/menu.h	2003-11-08 20:48:24.000000000 +0000
++++ ncurses-5.6-20071201/menu/menu.h	2007-02-24 17:32:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -30,7 +30,7 @@
+  *   Author:  Juergen Pfeifer, 1995,1997                                    *
+  ****************************************************************************/
+ 
+-/* $Id: menu.h,v 1.18 2003/11/08 20:48:24 tom Exp $ */
++/* $Id: menu.h,v 1.19 2007/02/24 17:32:13 tom Exp $ */
+ 
+ #ifndef ETI_MENU
+ #define ETI_MENU
+@@ -217,23 +217,23 @@
+ extern NCURSES_EXPORT(int)	post_menu (MENU *);
+ extern NCURSES_EXPORT(int)	scale_menu (const MENU *,int *,int *);
+ extern NCURSES_EXPORT(int)	set_current_item (MENU *menu,ITEM *item);
+-extern NCURSES_EXPORT(int)	set_item_init (MENU *,void(*)(MENU *));
++extern NCURSES_EXPORT(int)	set_item_init (MENU *, Menu_Hook);
+ extern NCURSES_EXPORT(int)	set_item_opts (ITEM *,Item_Options);
+-extern NCURSES_EXPORT(int)	set_item_term (MENU *,void(*)(MENU *));
++extern NCURSES_EXPORT(int)	set_item_term (MENU *, Menu_Hook);
+ extern NCURSES_EXPORT(int)	set_item_userptr (ITEM *, void *);
+ extern NCURSES_EXPORT(int)	set_item_value (ITEM *,bool);
+ extern NCURSES_EXPORT(int)	set_menu_back (MENU *,chtype);
+ extern NCURSES_EXPORT(int)	set_menu_fore (MENU *,chtype);
+ extern NCURSES_EXPORT(int)	set_menu_format (MENU *,int,int);
+ extern NCURSES_EXPORT(int)	set_menu_grey (MENU *,chtype);
+-extern NCURSES_EXPORT(int)	set_menu_init (MENU *,void(*)(MENU *));
++extern NCURSES_EXPORT(int)	set_menu_init (MENU *, Menu_Hook);
+ extern NCURSES_EXPORT(int)	set_menu_items (MENU *,ITEM **);
+ extern NCURSES_EXPORT(int)	set_menu_mark (MENU *, const char *);
+ extern NCURSES_EXPORT(int)	set_menu_opts (MENU *,Menu_Options);
+ extern NCURSES_EXPORT(int)	set_menu_pad (MENU *,int);
+ extern NCURSES_EXPORT(int)	set_menu_pattern (MENU *,const char *);
+ extern NCURSES_EXPORT(int)	set_menu_sub (MENU *,WINDOW *);
+-extern NCURSES_EXPORT(int)	set_menu_term (MENU *,void(*)(MENU *));
++extern NCURSES_EXPORT(int)	set_menu_term (MENU *, Menu_Hook);
+ extern NCURSES_EXPORT(int)	set_menu_userptr (MENU *,void *);
+ extern NCURSES_EXPORT(int)	set_menu_win (MENU *,WINDOW *);
+ extern NCURSES_EXPORT(int)	set_top_row (MENU *,int);
+Index: menu/modules
+Prereq:  1.16 
+--- ncurses-5.6/menu/modules	2004-12-25 22:06:33.000000000 +0000
++++ ncurses-5.6-20071201/menu/modules	2006-12-24 00:52:39.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: modules,v 1.16 2004/12/25 22:06:33 tom Exp $
++# $Id: modules,v 1.17 2006/12/24 00:52:39 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,2004 Free Software Foundation, Inc.                     #
++# Copyright (c) 1998-2004,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"), #
+@@ -27,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
++# Author: Thomas E. Dickey	1996-on
+ #
+ 
+ @ base
+@@ -59,3 +59,5 @@
+ m_trace		lib		$(srcdir)	$(MENU_PRIV_H)
+ m_userptr	lib		$(srcdir)	$(MENU_PRIV_H)
+ m_win		lib		$(srcdir)	$(MENU_PRIV_H)
++
++# vile:makemode
+Index: misc/Makefile.in
+Prereq:  1.40 
+--- ncurses-5.6/misc/Makefile.in	2006-10-21 13:28:03.000000000 +0000
++++ ncurses-5.6-20071201/misc/Makefile.in	2007-03-31 15:54:17.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.40 2006/10/21 13:28:03 tom Exp $
++# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -76,7 +76,7 @@
+ 
+ sources :
+ 
+-install : install.data install.scripts
++install : install.data install.libs
+ 
+ install.data :	terminfo.tmp \
+ 		$(DESTDIR)$(libdir) \
+@@ -103,7 +103,7 @@
+ 
+ NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
+ 
+-install.scripts :	ncurses-config
++install.libs : $(DESTDIR)$(bindir) ncurses-config
+ 	$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+ 
+ terminfo.tmp : run_tic.sed $(source)
+@@ -115,19 +115,20 @@
+ 	ticdir=${ticdir} \
+ 	$(SHELL) $(srcdir)/gen_edit.sh >$@
+ 
++$(DESTDIR)$(bindir) \
+ $(DESTDIR)$(libdir) \
+ $(DESTDIR)$(datadir) \
+ $(DESTDIR)$(tabsetdir) :
+-	$(SHELL) $(top_srcdir)/mkinstalldirs $@
++	$(SHELL) $(top_srcdir)/mkdirs.sh $@
+ 
+-uninstall : uninstall.data uninstall.scripts
++uninstall : uninstall.data uninstall.libs
+ 
+ uninstall.data :
+ 	-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
+ 	-test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
+ 	-test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
+ 
+-uninstall.scripts :
++uninstall.libs :
+ 	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+ 
+ tags :
+Index: misc/ncurses-config.in
+Prereq:  1.11 
+--- ncurses-5.6/misc/ncurses-config.in	2006-10-28 20:22:52.000000000 +0000
++++ ncurses-5.6-20071201/misc/ncurses-config.in	2007-03-17 20:02:19.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!@SHELL@
+-# $Id: ncurses-config.in,v 1.11 2006/10/28 20:22:52 tom Exp $
++# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
++# Copyright (c) 2006,2007 Free 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"), #
+@@ -40,6 +40,11 @@
+ 
+ THIS="ncurses@DFT_ARG_SUFFIX@"
+ 
++LANG=C;		export LANG
++LANGUAGE=C;	export LANGUAGE
++LC_ALL=C;	export LC_ALL
++LC_CTYPE=C;	export LC_CTYPE
++
+ test $# = 0 && exec @SHELL@ $0 --error
+ 
+ while test $# -gt 0; do
+Index: misc/shlib
+Prereq:  1.10 
+--- ncurses-5.6/misc/shlib	2005-06-25 22:41:17.000000000 +0000
++++ ncurses-5.6-20071201/misc/shlib	2007-01-13 17:09:52.000000000 +0000
+@@ -29,7 +29,7 @@
+ #
+ # Author: Thomas E. Dickey <dickey@clark.net> 1996
+ #
+-# $Id: shlib,v 1.10 2005/06/25 22:41:17 tom Exp $
++# $Id: shlib,v 1.11 2007/01/13 17:09:52 tom Exp $
+ # Use this script as a wrapper when running executables linked to shared
+ # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
+ # the soname's path within the linked executable (such as IRIX), e.g,
+@@ -81,6 +81,7 @@
+ do
+ 	if test -d $p; then
+ 		q=`cd $p; pwd`
++		break
+ 	elif test -f configure && test ! -d ../$p ; then
+ 		break
+ 	fi
+Index: misc/terminfo.src
+--- ncurses-5.6/misc/terminfo.src	2006-10-07 17:52:03.000000000 +0000
++++ ncurses-5.6-20071201/misc/terminfo.src	2007-11-03 19:02:01.000000000 +0000
+@@ -6,8 +6,8 @@
+ # Report bugs and new terminal descriptions to
+ #	bug-ncurses@gnu.org
+ #
+-#	$Revision: 1.303 $
+-#	$Date: 2006/10/07 17:52:03 $
++#	$Revision: 1.318 $
++#	$Date: 2007/11/03 19:02:01 $
+ #
+ # The original header is preserved below for reference.  It is noted that there
+ # is a "newer" version which differs in some cosmetic details (but actually
+@@ -317,6 +317,16 @@
+ 	OTbs,
+ 	bel=^G, cr=^M, cud1=^J, ind=^J,
+ 
++# This is almost the same as "dumb", but with no prespecified width.
++# DEL and ^C are hardcoded to act as kill characters.
++# ^D acts as a line break (just like newline).
++# It also interprets
++#      \033];xxx\007 
++# for compatibility with xterm -TD
++9term|Plan9 terminal emulator for X,
++	am,
++	OTnl=^J, bel=^G, cud1=^J,
++
+ #### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
+ #
+ # See the end-of-file comment for more on these.
+@@ -2691,8 +2701,9 @@
+ vt100-putty|Reset PuTTY to pure vt100,
+ 	rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
+ 	use=vt100,
++# palette is hardcoded...
+ putty-256color|PuTTY 0.58 with xterm 256-colors,
+-	use=xterm+256color, use=putty,
++	initc@, use=xterm+256color, use=putty,
+ 
+ # One of the keyboard selections is "VT100+".
+ # pterm (the X11 port) uses shifted F1-F10 as F11-F20
+@@ -3015,11 +3026,10 @@
+ xterm-new|modern xterm terminal emulator,
+ 	npc,
+ 	indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
+-	kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
+-	kRIT=\E[1;2C, kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
+-	kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, kent=\EOM, khome=\EOH,
+-	kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
+-	kpp=\E[5~, kri=\E[1;2A, rin=\E[%p1%dT, use=xterm+pcfkeys,
++	kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
++	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++	kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
++	knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
+ 	use=xterm-basic,
+ #
+ # This fragment describes as much of XFree86 xterm's "pc-style" function
+@@ -3060,25 +3070,30 @@
+ # modifyCursorKeys resource.  These fragments list the modified cursor-keys
+ # that might apply to xterm+pcfkeys with different values of that resource.
+ xterm+pcc3|fragment with modifyCursorKeys:3,
+-	kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
++	kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
++	kri=\E[>1;2A, kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
+ 	kLFT5=\E[>1;5D, kLFT6=\E[>1;6D, kRIT5=\E[>1;5C,
+ 	kRIT6=\E[>1;6C, kUP=\E[>1;2A, kUP5=\E[>1;5A,
+ 	kUP6=\E[>1;6A,
+ 
+ xterm+pcc2|fragment with modifyCursorKeys:2,
++	kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
+ 	kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D,
+ 	kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A,
+ 	kUP5=\E[1;5A, kUP6=\E[1;6A,
+ 
+ xterm+pcc1|fragment with modifyCursorKeys:1,
+-	kDN=\E[2B, kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D,
+-	kLFT6=\E[6D, kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A,
+-	kUP5=\E[5A, kUP6=\E[6A,
++	kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
++	kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D, kLFT6=\E[6D,
++	kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A, kUP5=\E[5A,
++	kUP6=\E[6A,
+ 
+ xterm+pcc0|fragment with modifyCursorKeys:0,
+-	kDN=\EO2B, kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D,
+-	kLFT6=\EO6D, kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A,
+-	kUP5=\EO5A, kUP6=\EO6A,
++	kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
++	kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D, kLFT6=\EO6D,
++	kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A, kUP5=\EO5A,
++	kUP6=\EO6A,
++
+ #
+ # Here are corresponding fragments from xterm patch #216:
+ #
+@@ -3101,24 +3116,37 @@
+ 	kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
+ 	kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ #
+-xterm+pcf2|fragment with modifyFunctionKeys:0,
++xterm+pcf2|fragment with modifyFunctionKeys:2,
+ 	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+-	kf13=\E[2P, kf14=\E[2Q, kf15=\E[2R, kf16=\E[2S,
++	kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
+ 	kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+ 	kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+-	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[5P, kf26=\E[5Q,
+-	kf27=\E[5R, kf28=\E[5S, kf29=\E[15;5~, kf3=\EOR,
++	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
++	kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
+ 	kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+ 	kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+-	kf36=\E[24;5~, kf37=\E[6P, kf38=\E[6Q, kf39=\E[6R,
+-	kf4=\EOS, kf40=\E[6S, kf41=\E[15;6~, kf42=\E[17;6~,
++	kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
++	kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
+ 	kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
+-	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\E[3P,
+-	kf5=\E[15~, kf50=\E[3Q, kf51=\E[3R, kf52=\E[3S,
+-	kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
+-	kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
+-	kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\E[4P,
+-	kf62=\E[4Q, kf63=\E[4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
++	kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
++	kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
++	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
++	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
++	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
++	kf8=\E[19~, kf9=\E[20~,
++#
++# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
++# Alternatively, the same scheme with old-style function keys as in xterm-r6
++# is shown here (because that is used in mrxvt and mlterm):
++xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
++	kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
++	kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
++	kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
++	kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
++	kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
++	kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
++	kf63=\E[13;4~, use=xterm+pcf2,
+ #
+ # This chunk is used for building the VT220/Sun/PC keyboard variants.
+ xterm-basic|modern xterm terminal emulator - common,
+@@ -3157,6 +3185,8 @@
+ xterm-16color|xterm with 16 colors like aixterm,
+ 	use=ibm+16color, use=xterm-new,
+ 
++# This is a compile-time feature of XFree86 xterm beginning with
++# patch #111 (1999/7/10) -TD
+ xterm+256color|xterm 256-color feature,
+ 	ccc,
+ 	colors#256, pairs#32767,
+@@ -3165,6 +3195,18 @@
+ 	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
+ 	setb@, setf@,
+ 
++# This is a compile-time feature of XFree86 xterm beginning with
++# patch #115 (1999/9/18) -TD
++#
++# Note that the escape sequences used are the same as for 256-colors - xterm
++# has a different table of default color resource values.  If built for
++# 256-colors, it can still handle an 88-color palette by using the initc
++# capability.
++#
++# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
++# which support the xterm+256color feature support the associated initc
++# capability.  So it is cancelled in the entries which use this and/or the
++# xterm+256color block.
+ xterm+88color|xterm 88-color feature,
+ 	colors#88, pairs#7744, use=xterm+256color,
+ 
+@@ -3444,11 +3486,23 @@
+ 	rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+ 	use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
+ 
++# GNOME Terminal 2.18.1 (2007 snapshot)
++#
++# For any "recent" version of gnome-terminal, it is futile to attempt to
++# support modifiers on cursor- and keypad keys because the program usually
++# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
++# of the keys (which more/less correspond to the termcap values), and will
++# interpret those according to the $TERM value, but others not in the
++# terminfo according to some constantly changing set of hacker guidelines -TD
++gnome-2007|GNOME Terminal snapshot 2.18.1,
++	use=xterm+pcc2, use=gnome-fc5,
++
+ gnome|GNOME Terminal,
+-	use=gnome-fc5,
++	use=gnome-2007,
+ 
++# palette is hardcoded...
+ gnome-256color|GNOME Terminal with xterm 256-colors,
+-	use=xterm+256color, use=gnome,
++	initc@, use=xterm+256color, use=gnome,
+ 
+ # XFCE Terminal 0.2.5.4beta2
+ #
+@@ -3551,14 +3605,29 @@
+ konsole|KDE console window,
+ 	use=konsole-xf4x,
+ 
+-# Based on mlterm 2.9.2's mlterm.ti, with corrections/additions from reading
+-# the source code and running tack -TD
++# palette is hardcoded...
++konsole-256color|KDE console window with xterm 256-colors,
++	initc@, use=xterm+256color, use=konsole,
++
++# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
+ #
+-# This is nominally a vt102 emulator, with features borrowed from rxvt and
++# It is nominally a vt102 emulator, with features borrowed from rxvt and
+ # xterm.
+ #
+-# There are some problems with vttest:
+-#	test of character sets leaves it in line-drawing mode.
++# The function keys are numbered based on shift/control/alt modifiers, except
++# that the control-modifier itself is used to spawn a new copy of mlterm (the
++# "-P" option).  So control/F1 to control/F12 may not be usable, depending on
++# how it is configured.
++#
++#				kf1 to kf12	\E[11~   to \E[24~
++#	shift			kf1 to kf12	\E[11;2~ to \E[24;2~
++#	alt			kf1 to kf12	\E[11;3~ to \E[24;3~
++#	shift/alt		kf1 to kf12	\E[11;4~ to \E[24;4~
++#	control			kf1 to kf12	\E[11;5~ to \E[24;5~ (maybe)
++#	control/shift		kf1 to kf12	\E[11;6~ to \E[24;6~
++#	control/alt		kf1 to kf12	\E[11;7~ to \E[24;7~
++#	control/shit/alt	kf1 to kf12	\E[11;8~ to \E[24;8~
++#
+ mlterm|multi lingual terminal emulator,
+ 	am, eslok, km, mc5i, mir, msgr, npc, xenl,
+ 	colors#8, cols#80, it#8, lines#24, pairs#64,
+@@ -3574,21 +3643,29 @@
+ 	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+ 	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+ 	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+-	kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
+-	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+-	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+-	kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
+-	kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, mc0=\E[i,
+-	nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+-	rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l,
+-	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
+-	rmso=\E[27m, rmul=\E[24m,
++	kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, khome=\EOH,
++	kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~,
++	mc0=\E[i, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
++	rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
++	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+ 	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
+ 	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7\E[?47h,
++	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+ 	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+-	tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
++	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
++	vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
++
++# The insert/delete/home/end keys do not respond to modifiers because mlterm
++# looks in its termcap to decide which string to send.  If it used terminfo
++# (when available), it could use the extended names introduced for xterm.
++mlterm+pcfkeys|fragment for PC-style fkeys,
++	kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
++	kDN=\EO1;2B, kDN5=\EO1;5B, kDN6=\EO1;6B, kIC5=\E[2;5~,
++	kIC6=\E[2;6~, kLFT5=\EO1;5D, kLFT6=\EO1;6D,
++	kNXT5=\E[6;5~, kNXT6=\E[6;6~, kPRV5=\E[5;5~,
++	kPRV6=\E[5;6~, kRIT5=\EO1;5C, kRIT6=\EO1;6C, kUP=\EO1;2A,
++	kUP5=\EO1;5A, kUP6=\EO1;6A,
+ 
+ # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
+ # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
+@@ -3607,7 +3684,7 @@
+ #
+ # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
+ # Since rxvt is not really compatible with xterm, it should be configured as
+-# "rxvt" (monochrome) and "rxvt-color".
++# "rxvt" or "rxvt-color".
+ #
+ # removed dch/dch1 because they are inconsistent with bce/ech -TD
+ # remove km as per tack test -TD
+@@ -3677,6 +3754,7 @@
+ #  F18              ESC [ 32 ~   ESC [ 32 $   ESC [ 32 ^   ESC [ 32 @
+ #  F19              ESC [ 33 ~   ESC [ 33 $   ESC [ 33 ^   ESC [ 33 @
+ #  F20              ESC [ 34 ~   ESC [ 34 $   ESC [ 34 ^   ESC [ 34 @
++#
+ #                                                          Application
+ #  Up               ESC [ A      ESC [ a      ESC O a      ESC O A
+ #  Down             ESC [ B      ESC [ b      ESC O b      ESC O B
+@@ -3704,10 +3782,18 @@
+ #  XK_KP_8          8                                      ESC O x
+ #  XK_KP_9          9                                      ESC O y
+ #
++# The source-code for rxvt actually defines mappings for F21-F35, using
++# "ESC [ 35 ~" to "ESC [  49 ~".  Keyboards with more than 12 function keys
++# are rare, so this entry uses the shift- and control-modifiers as in
++# xterm+pcfkeys to define keys past F12.
++#
++# kIC is normally not used, since rxvt performs a paste for that (shifted
++# insert), unless private mode 35 is set.
++#
+ # kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
+ # Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
+ rxvt+pcfkeys|fragment for PC-style fkeys,
+-	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E2$, kLFT=\E[d,
++	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
+ 	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
+ 	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
+ 	kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+@@ -3722,7 +3808,10 @@
+ 	kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
+ 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ 	kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+-	kslt=\E[4~, kDN=\E[b, kDN5=\EOb, kLFT5=\EOd, kRIT5=\EOc,
++	kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
++	kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
++	kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
++	kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
+ 	kUP=\E[a, kUP5=\EOa,
+ 
+ rxvt|rxvt terminal emulator (X Window System),
+@@ -3747,6 +3836,13 @@
+ rxvt-16color|xterm with 16 colors like aixterm,
+ 	ncv#32, use=ibm+16color, use=rxvt,
+ 
++# mrxvt 0.5.3
++#
++# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
++# makes its function-keys different from other flavors of rxvt -TD
++mrxvt|multitabbed rxvt,
++	use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
++
+ # From: Michael Jennings <mej@valinux.com>
+ #
+ # Eterm 0.9.3
+@@ -15183,6 +15279,82 @@
+ 	sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
+ 	vpa=\013%p1%{64}%+%c,
+ 
++# Newbury Data Recording Limited (Newbury Data)
++#
++# Have been manufacturing and reselling  various peripherals for a long time
++# They don't make terminals anymore, but are still in business (in 2007).
++# Their e-mail address is at ndsales@newburydata.co.uk
++# and their post address is:
++#
++# Newbury Data Recording Ltd,
++# Premier Park, Road One,
++# Winsford, Cheshire, CW7 3PT
++#
++# Their technical support is still good, they sent me for free a printed copy
++# of the 9500 user manual and I got it just 1 week after I first contacted them
++# (in 2005)!
++
++# NDR 9500
++# Manufactured in the early/mid eighties, behaves almost the same as a
++# Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
++# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
++# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
++# 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
++# recognized:  if you type in "ESC !", the next (third) character is not
++# echoed, showing that the terminal was actually waiting for a parameter!
++ndr9500|nd9500|Newbury Data 9500,
++	am, bw, hs, mc5i, mir, msgr, ul, xon,
++	cols#80, lines#24, wsl#79,
++	acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
++	clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
++	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++	dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
++	flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
++	ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
++	kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
++	kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
++	ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++	kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
++	kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
++	kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++	kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
++	pfloc=\E|%{48}%p1%+%c2%p2\031,
++	pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
++	rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
++	sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
++	sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
++	tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
++
++ndr9500-nl|NDR 9500 with no status line,
++	hs@,
++	wsl@,
++	dsl@, fsl@, tsl@, use=ndr9500,
++
++ndr9500-25|NDR 9500 with 25th line enabled,
++	lines#25, use=ndr9500,
++
++ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
++	lines#25, use=ndr9500-nl,
++
++ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
++	msgr@,
++	xmc#1,
++	blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
++	sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
++	sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
++
++ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
++	lines#25, use=ndr9500-mc,
++
++ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
++	hs@,
++	wsl@,
++	dsl@, fsl@, tsl@, use=ndr9500-mc,
++
++ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
++	lines#25, use=ndr9500-mc-nl,
++
+ #### Perkin-Elmer (Owl)
+ #
+ # These are official terminfo entries from within Perkin-Elmer.
+@@ -18147,19 +18319,19 @@
+ h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
+ 	OTbs, am, eslok, hs, mir, msgr,
+ 	cols#80, it#8, lines#24,
+-	acsc=, bel=^G, clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB,
+-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+-	cvvis=\Ex4, dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH,
+-	ht=^I, ind=^J, ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB,
+-	kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
+-	kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
+-	lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
+-	smacs=\EF, smir=\E@, smso=\Ep,
+-	tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
++	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
++	clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
++	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
++	dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
++	ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++	kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
++	kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
++	lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
++	smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
+ h19-u|heathkit with underscore cursor,
+ 	cnorm@, cvvis@, use=h19-b,
+ h19-g|h19g|heathkit w/block cursor,
+-	cnorm=\Ex4, use=h19-b,
++	cnorm=\Ex4, cvvis@, use=h19-b,
+ alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
+ 	lines#60,
+ 	dl1=\EM, il1=\EL, use=h19,
+@@ -18285,14 +18457,15 @@
+ z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
+ 	OTbs, OTpt, mir, msgr,
+ 	OTkn#10, cols#80, it#8, lines#24,
+-	acsc=, clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB,
+-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>,
+-	cuu1=\EA, cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>,
+-	ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H,
+-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES,
+-	kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+-	kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
+-	smacs=\EF, smir=\E@, smso=\Ep,
++	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
++	clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
++	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
++	cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
++	home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
++	kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
++	kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
++	khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
++	smir=\E@, smso=\Ep,
+ p19|h19-b with il1/dl1,
+ 	dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
+ # From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
+@@ -20696,6 +20869,99 @@
+ #	* Back off the xterm entry to use r6 as a base.
+ # 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
+ #	* Added dec-vt220 at Adrian Garside's request.
++#
++#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
++#
++# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
++#	* Minor corrections to xterm entries.
++#	* Replaced EWAN telnet entry.
++#	* Dropped the reorder script generator.  It was a fossil.
++# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
++#	* Replaced minitel-2 entry.
++#	* Added MGR, ansi-nt.
++# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
++#	* Thorsten Lockert added termcap `bs' to a lot of types, working from
++#	  the 4.4BSD Lite2 file.
++#
++# 10.1.1 (Sat May  3 21:41:27 EDT 1997):
++#	* Use setaf/setab consistently with SVr4.
++#	* Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
++# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
++#	* update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
++#	* add xterm-16color, for XFree86 3.3
++# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
++#	* correct typo in emu
++#	* correct typo in vt102-w (Robert Wuest)
++#	* make new entry xterm-xf86-v33, restored xterm-xf86-v32.
++# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
++#	* remove ech capability from rxvt (it does the wrong thing)
++# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
++#	* remove spurious newlines from several entries (hp+color, wy50,
++#	  wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
++#	  gs6300)
++# 10.1.6 (Sat Jul  5 15:08:16 EDT 1997)
++#	* correct rmso capability of wy50-mc
++# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
++#	* add cbt to xterm-xf86-v32
++#	* disentangle some entries from 'xterm', preferring xterm-r6 in case
++#	  'xterm' is derived from xterm-xf86-v32, which implements ech and
++#	  other capabilities not in xterm-r6.
++#	* remove alternate character set from kterm entry.
++# 10.1.8 (Sat Aug  2 18:43:18 EDT 1997)
++#	* correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
++# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
++#	* add xterm-8bit entry.
++# 10.1.10 (Sat Oct  4 18:17:13 EDT 1997)
++#	* repair several places where early version of tic replaced \, with \\\,
++#	* make acsc entries canonical form (sorted, uniq).
++#	* modify acsc entries for linux, linux-koi8
++#	* new rxvt entry, from corrected copy of distribution in rxvt 2.21b
++#	* add color, mouse support to kterm.
++# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
++#	* correct wy120 smxon/tbc capabilities which were stuck together.
++# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
++#	* add entry for xterm-xf86-v39t
++# 10.1.13 (Sat Nov  8 13:43:33 EST 1997)
++#	* add u8,u9 to sun-il description
++# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
++#	* add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
++#	  version.
++#	* add hds200 description (Walter Skorski)
++#	* add EMX 0.9b descriptions
++#	* correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
++#	* rename xhpterm back to hpterm.
++# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
++#	* change initc in linux-c-nc to use 0..1000 range.
++# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
++#	* remove hpa/vpa from rxvt, which implements them incorrectly.
++#	* add sgr0 for rxvt.
++#	* remove bogus smacs/rmacs from EMX descriptions.
++# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
++#	* revised entry for att7300
++# 10.1.18 (Sat Jan  3 17:58:49 EST 1998)
++#	* use \0 rather than \200.
++#	* rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
++# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
++#	* change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
++#	* rename xterm-xf86-v39t to xterm-xf86-v40
++#	* remove bold/underline from sun console entries since they're not
++#	  implemented.
++# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
++#	* add beterm entry (Fred Fish)
++#	* add irix-color/xwsh entry.
++#	* turn ncv off for linux.
++# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
++#	* set ncv for FreeBSD console (treat colors with reverse specially).
++#	* remove sgr string from qnx based on report by Xiaodan Tang
++# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
++#	* remove spurious commas from descriptions
++#	* correct xterm-8bit to match XFree86 3.9Ad F1-F4.
++# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
++#	* add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
++#	  apparently based on cp-866).
++#
++#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
++#
+ # 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
+ #	* Replaced minitel-2 entry.
+ #	* Added MGR, ansi-nt.
+@@ -20748,6 +21014,8 @@
+ #	* Incorporated att700 from the Boundless Technology FTP site.
+ #	* Miscellaneous contact-address and Web-page updates.
+ #
++#-(changelog-beginning-ncurses-4.2)---------------------------------------------
++#
+ # 1998/5/9
+ #	* add nxterm and xterm-color terminfo description (request by Cristian
+ #	  Gafton <gafton@redhat.com>).
+@@ -21309,6 +21577,36 @@
+ #	* add several GNU Screen variations with 16- and 256-colors, and
+ #	  status line (Alain Bench).
+ #
++# 2007-03-03
++#	* add Newbury Data entries (Jean-Charles Billaud).
++#
++# 2007-06-10
++#	* corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
++#
++# 2007-07-14
++#	* restore section of pre-ncurses-4.2 changelog to fix attribution -TD
++#	* add konsole-256color entry -TD
++#
++# 2007-08-18
++#	* add 9term entry (request by Juhapekka Tolvanen) -TD
++#
++# 2007-10-13
++#	* correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
++#	* add shift-control- and control-modified keys for rxvt editing
++#	  keypad -TD
++#	* update mlterm entry to 2.9.3 -TD
++#	* add mlterm+pcfkeys -TD
++#
++# 2007-10-20
++#	* move kLFT, kRIT, kind and kri capabilities from xterm-new to
++#	  xterm+pcc0, etc., to make the corresponding building blocks reflect
++#	  xterm's capabilities -TD
++#	* add mrxvt entry -TD
++#	* add xterm+r6f2, use in mlterm and mrxvt entries -TD
++#
++# 2007-11-03
++#	* correct acsc strings for h19 and z100 (Benjamin Sittler)
++#
+ # The following sets edit modes for GNU EMACS.
+ # Local Variables:
+ # fill-prefix:"\t"
+Index: mk-1st.awk
+Prereq:  1.68 
+--- ncurses-5.6/mk-1st.awk	2006-10-08 00:14:08.000000000 +0000
++++ ncurses-5.6-20071201/mk-1st.awk	2007-03-24 22:10:55.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: mk-1st.awk,v 1.68 2006/10/08 00:14:08 tom Exp $
++# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -37,9 +37,12 @@
+ #	model		  (directory into which we compile, e.g., "obj")
+ #	prefix		  (e.g., "lib", for Unix-style libraries)
+ #	suffix		  (e.g., "_g.a", for debug libraries)
+-#	subset		  ("none", "base", "base+ext_funcs" or "termlib")
++#	subset		  ("none", "base", "base+ext_funcs" or "termlib", etc.)
+ #	ShlibVer	  ("rel", "abi" or "auto", to augment DoLinks variable)
+ #	ShlibVerInfix ("yes" or "no", determines location of version #)
++#   TermlibRoot   ("tinfo" or other root for libterm.so)
++#   TermlibSuffix (".so" or other suffix for libterm.so)
++#	ReLink		  ("yes", or "no", flag to rebuild shared libs on install)
+ #	DoLinks		  ("yes", "reverse" or "no", flag to add symbolic links)
+ #	rmSoLocs	  ("yes" or "no", flag to add extra clean target)
+ #	ldconfig	  (path for this tool, if used)
+@@ -52,6 +55,64 @@
+ #	Mixed-case variable names are ok.
+ #	HP/UX requires shared libraries to have executable permissions.
+ #
++function is_ticlib() {
++		return ( subset ~ /^ticlib$/ );
++	}
++function is_termlib() {
++		return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
++	}
++# see lib_name
++function lib_name_of(a_name) {
++		return sprintf("%s%s%s", prefix, a_name, suffix)
++	}
++# see imp_name
++function imp_name_of(a_name) {
++		if (ShlibVerInfix == "cygdll") {
++			result = sprintf("%s%s%s.a", prefix, a_name, suffix);
++		} else {
++			result = "";
++		}
++		return result;
++	}
++# see abi_name
++function abi_name_of(a_name) {
++		if (ShlibVerInfix == "cygdll") {
++			result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
++		} else if (ShlibVerInfix == "yes") {
++			result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
++		} else {
++			result = sprintf("%s.$(ABI_VERSION)", lib_name_of(a_name));
++		}
++		return result;
++	}
++# see rel_name
++function rel_name_of(a_name) {
++		if (ShlibVerInfix == "cygdll") {
++			result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
++		} else if (ShlibVerInfix == "yes") {
++			result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
++		} else {
++			result = sprintf("%s.$(REL_VERSION)", lib_name_of(a_name));
++		}
++		return result;
++	}
++# see end_name
++function end_name_of(a_name) {
++		if ( MODEL != "SHARED" ) {
++			result = lib_name_of(a_name);
++		} else if ( DoLinks == "reverse") {
++			result = lib_name_of(a_name);
++		} else {
++			if ( ShlibVer == "rel" ) {
++				result = rel_name_of(a_name);
++			} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
++				result = abi_name_of(a_name);
++			} else {
++				result = lib_name_of(a_name);
++			}
++		}
++		return result
++	}
+ function symlink(src,dst) {
+ 		if ( src != dst ) {
+ 			printf "rm -f %s; ", dst
+@@ -64,19 +125,19 @@
+ function removelinks(directory) {
+ 		rmlink(directory, end_name);
+ 		if ( DoLinks == "reverse" ) {
+-				if ( ShlibVer == "rel" ) {
+-					rmlink(directory, abi_name);
+-					rmlink(directory, rel_name);
+-				} else if ( ShlibVer == "abi" ) {
+-					rmlink(directory, abi_name);
+-				}
++			if ( ShlibVer == "rel" ) {
++				rmlink(directory, abi_name);
++				rmlink(directory, rel_name);
++			} else if ( ShlibVer == "abi" ) {
++				rmlink(directory, abi_name);
++			}
+ 		} else {
+-				if ( ShlibVer == "rel" ) {
+-					rmlink(directory, abi_name);
+-					rmlink(directory, lib_name);
+-				} else if ( ShlibVer == "abi" ) {
+-					rmlink(directory, lib_name);
+-				}
++			if ( ShlibVer == "rel" ) {
++				rmlink(directory, abi_name);
++				rmlink(directory, lib_name);
++			} else if ( ShlibVer == "abi" ) {
++				rmlink(directory, lib_name);
++			}
+ 		}
+ 	}
+ function make_shlib(objs, shlib_list) {
+@@ -103,27 +164,53 @@
+ 			printf ")\n"
+ 		}
+ 	}
+-function shlib_rule(directory) {
+-		if ( ShlibVer == "cygdll" ) {
+-				dst_libs = sprintf("%s/$(SHARED_LIB) %s/$(IMPORT_LIB)", directory, directory);
+-		} else {
+-				dst_libs = sprintf("%s/%s", directory, end_name);
++# termlib may be named explicitly via "--with-termlib=XXX", which overrides
++# any suffix.  Temporarily override "suffix" to account for this.
++function termlib_end_of() {
++	termlib_save_suffix = suffix;
++	suffix = TermlibSuffix;
++	termlib_temp_result = end_name_of(TermlibRoot);
++	suffix = termlib_save_suffix;
++	return termlib_temp_result;
++}
++function shlib_build(directory) {
++		dst_libs = sprintf("%s/%s", directory, end_name);
++		printf "%s : \\\n", dst_libs
++		printf "\t\t%s \\\n", directory
++		if (subset ~ /^base/ || subset == "ticlib" ) {
++			save_suffix = suffix
++			sub(/^[^.]\./,".",suffix)
++			if (directory != "../lib") {
++				printf "\t\t%s/%s \\\n", "../lib", termlib_end_of();
++			}
++			printf "\t\t%s/%s \\\n", directory, termlib_end_of();
++			suffix = save_suffix
+ 		}
+-		printf "%s : %s $(%s_OBJS)\n", dst_libs, directory, OBJS
++		printf "\t\t$(%s_OBJS)\n", OBJS
+ 		printf "\t@echo linking $@\n"
+-		print "\t-@rm -f %s", dst_libs;
+-		if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
+-				make_shlib(OBJS, "TINFO_LIST")
++		if ( is_ticlib() ) {
++			make_shlib(OBJS, "TICS_LIST")
++		} else if ( is_termlib() ) {
++			make_shlib(OBJS, "TINFO_LIST")
+ 		} else {
+-				make_shlib(OBJS, "SHLIB_LIST")
++			make_shlib(OBJS, "SHLIB_LIST")
+ 		}
+ 		sharedlinks(directory)
+ 	}
++function shlib_install(directory) {
++		src_lib1 = sprintf("../lib/%s", end_name);
++		dst_lib1 = sprintf("%s/%s", directory, end_name);
++		printf "%s : \\\n", dst_lib1
++		printf "\t\t%s \\\n", directory
++		printf "\t\t%s\n", src_lib1
++		printf "\t@echo installing $@\n"
++		printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1;
++		sharedlinks(directory)
++	}
+ function install_dll(directory,filename) {
+ 		src_name = sprintf("../lib/%s", filename);
+ 		dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename);
+ 		printf "\t@echo installing %s as %s\n", src_name, dst_name
+-		printf "\t-@rm -f %s\n", dst_name
+ 		if ( directory == "$(bindir)" ) {
+ 			program = "$(INSTALL) -m 755";
+ 		} else {
+@@ -153,6 +240,9 @@
+ 					printf "#  subset:        %s\n", subset 
+ 					printf "#  ShlibVer:      %s\n", ShlibVer 
+ 					printf "#  ShlibVerInfix: %s\n", ShlibVerInfix 
++					printf "#  TermlibRoot:   %s\n", TermlibRoot 
++					printf "#  TermlibSuffix: %s\n", TermlibSuffix 
++					printf "#  ReLink:        %s\n", ReLink 
+ 					printf "#  DoLinks:       %s\n", DoLinks 
+ 					printf "#  rmSoLocs:      %s\n", rmSoLocs 
+ 					printf "#  ldconfig:      %s\n", ldconfig 
+@@ -163,7 +253,9 @@
+ 				}
+ 				using = 1
+ 			}
+-			if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
++			if ( is_ticlib() ) {
++				OBJS  = MODEL "_P"
++			} else if ( is_termlib() ) {
+ 				OBJS  = MODEL "_T"
+ 			} else {
+ 				OBJS  = MODEL
+@@ -205,33 +297,15 @@
+ 		if ( found == 1 )
+ 		{
+ 			print  ""
+-			lib_name = sprintf("%s%s%s", prefix, name, suffix)
++			lib_name = lib_name_of(name);
+ 			if ( MODEL == "SHARED" )
+ 			{
+-				if (ShlibVerInfix == "cygdll") {
+-					abi_name = sprintf("%s%s$(ABI_VERSION)%s", "cyg", name, suffix);
+-					rel_name = sprintf("%s%s$(REL_VERSION)%s", "cyg", name, suffix);
+-					imp_name = sprintf("%s%s%s.a", prefix, name, suffix);
+-				} else if (ShlibVerInfix == "yes") {
+-					abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix);
+-					rel_name = sprintf("%s%s.$(REL_VERSION)%s", prefix, name, suffix);
+-				} else {
+-					abi_name = sprintf("%s.$(ABI_VERSION)", lib_name);
+-					rel_name = sprintf("%s.$(REL_VERSION)", lib_name);
+-				}
+-				if ( DoLinks == "reverse") {
+-					end_name = lib_name;
+-				} else {
+-					if ( ShlibVer == "rel" ) {
+-						end_name = rel_name;
+-					} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
+-						end_name = abi_name;
+-					} else {
+-						end_name = lib_name;
+-					}
+-				}
++				abi_name = abi_name_of(name);
++				rel_name = rel_name_of(name);
++				imp_name = imp_name_of(name);
++				end_name = end_name_of(name);
+ 
+-				shlib_rule("../lib")
++				shlib_build("../lib")
+ 
+ 				print  ""
+ 				print  "install \\"
+@@ -249,7 +323,11 @@
+ 					lib_dir = "$(DESTDIR)$(libdir)";
+ 					printf "install.%s :: %s/%s\n", name, lib_dir, end_name
+ 					print ""
+-					shlib_rule(lib_dir)
++					if ( ReLink == "yes" ) {
++						shlib_build(lib_dir)
++					} else {
++						shlib_install(lib_dir)
++					}
+ 				}
+ 
+ 				if ( overwrite == "yes" && name == "ncurses" )
+@@ -393,3 +471,4 @@
+ 			}
+ 		}
+ 	}
++# vile:ts=4 sw=4
+Index: mk-hdr.awk
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/mk-hdr.awk	2007-03-31 15:48:45.000000000 +0000
+@@ -0,0 +1,107 @@
++# $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
++##############################################################################
++# Copyright (c) 2007 Free Software Foundation, Inc.                          #
++#                                                                            #
++# Permission is hereby granted, free of charge, to any person obtaining a    #
++# copy of this software and associated documentation files (the "Software"), #
++# to deal in the Software without restriction, including without limitation  #
++# the rights to use, copy, modify, merge, publish, distribute, distribute    #
++# with modifications, sublicense, and/or sell copies of the Software, and to #
++# permit persons to whom the Software is furnished to do so, subject to the  #
++# following conditions:                                                      #
++#                                                                            #
++# The above copyright notice and this permission notice shall be included in #
++# all copies or substantial portions of the Software.                        #
++#                                                                            #
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
++# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
++# DEALINGS IN THE SOFTWARE.                                                  #
++#                                                                            #
++# Except as contained in this notice, the name(s) of the above copyright     #
++# holders shall not be used in advertising or otherwise to promote the sale, #
++# use or other dealings in this Software without prior written               #
++# authorization.                                                             #
++##############################################################################
++#
++# Author: Thomas E. Dickey	2007
++#
++# Generate install/uninstall rules for header files
++# Variables:
++#	subset	  ("none", "base", "base+ext_funcs" or "termlib", etc.)
++#	compat	  ("yes" or "no", flag to add link to curses.h
++#
++function basename(path) {
++	sub(/^.*\//,"",path)
++	return path;
++}
++BEGIN	{
++		found = 0
++		using = 1
++		count = 0
++	}
++	/^@/ {
++		using = 0
++		if (subset == "none") {
++			using = 1
++		} else if (index(subset,$2) > 0) {
++			using = 1
++		} else {
++			using = 0
++		}
++	}
++	/^[@#]/ {
++		next
++	}
++	{
++		if (using && NF != 0) {
++			if (found == 0) {
++				print  ""
++				print  "# generated by mk-hdr.awk"
++				printf "#  subset:     %s\n", subset 
++				printf "#  compat:     %s\n", compat 
++				print  ""
++				found = 1
++			}
++			data[count] = $1
++			count = count + 1
++		}
++	}
++END	{
++		if ( count > 0 )
++		{
++			print "${DESTDIR}${includedir} :"
++			print "	sh ${srcdir}/../mkdirs.sh $@"
++			print ""
++			print "install \\"
++			print "install.libs \\"
++			print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
++
++			for (i = 0; i < count - 1; ++i) {
++				printf "		%s \\\n", data[i]
++			}
++			printf "		%s\n", data[count - 1]
++
++			for (i = 0; i < count; ++i) {
++				printf "	@ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
++				if (data[i] == "curses.h" && compat == "yes") {
++					printf "	@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
++				}
++			}
++			print ""
++			print "uninstall \\"
++			print "uninstall.libs \\"
++			print "uninstall.includes ::"
++
++			for (i = 0; i < count; ++i) {
++				printf "	-@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
++				if (data[i] == "curses.h" && compat == "yes") {
++					printf "	-@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
++				}
++			}
++		}
++	}
++# vile:ts=4 sw=4
+Index: mkdirs.sh
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/mkdirs.sh	2007-03-25 22:29:46.000000000 +0000
+@@ -0,0 +1,51 @@
++#! /bin/sh
++# $Id: mkdirs.sh,v 1.5 2007/03/25 22:29:46 tom Exp $
++# -----------------------------------------------------------------------------
++# mkinstalldirs --- make directory hierarchy
++# Author: Noah Friedman <friedman@prep.ai.mit.edu>
++# Created: 1993-05-16
++# Last modified: 1994-03-25
++# Public domain
++# -----------------------------------------------------------------------------
++
++errstatus=0
++umask 022
++
++for file in ${1+"$@"} ; do
++   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
++   shift
++
++   pathcomp=
++   for d in ${1+"$@"} ; do
++     pathcomp="$pathcomp$d"
++     case "$pathcomp" in
++       -* ) pathcomp=./$pathcomp ;;
++     esac
++
++     if test ! -d "$pathcomp"; then
++        echo "mkdir $pathcomp" 1>&2
++        case "$pathcomp" in
++          [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
++            ;;               # DOSISH systems
++          * )
++            mkdir "$pathcomp"
++            errstatus=$?
++            if test $errstatus != 0
++            then
++               # may have failed if invoked in a parallel "make -j# install"
++               if test -d "$pathcomp"
++               then
++                  errstatus=0
++               fi
++            fi
++            ;;
++        esac
++     fi
++
++     pathcomp="$pathcomp/"
++   done
++done
++
++exit $errstatus
++
++# mkinstalldirs ends here
+Index: ncurses/Makefile.in
+Prereq:  1.101 
+--- ncurses-5.6/ncurses/Makefile.in	2006-10-14 19:08:11.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/Makefile.in	2007-09-01 20:45:53.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.101 2006/10/14 19:08:11 tom Exp $
++# $Id: Makefile.in,v 1.112 2007/09/01 20:45:53 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -112,12 +112,13 @@
+ 
+ CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
+ 
+-LINK		= $(LIBTOOL) $(CC)
++LINK		= $(LIBTOOL)
+ LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
+ 
+ SHLIB_DIRS	= -L../lib
+ SHLIB_LIST	= $(SHLIB_DIRS) @SHLIB_LIST@
+ TINFO_LIST	= $(SHLIB_DIRS) @TINFO_LIST@
++TICS_LIST	= $(SHLIB_DIRS) @TICS_LIST@
+ 
+ MK_SHARED_LIB	= @MK_SHARED_LIB@
+ 
+@@ -128,8 +129,6 @@
+ 
+ RANLIB		= @LIB_PREP@
+ 
+-IMPORT_LIB	= @IMPORT_LIB@
+-SHARED_LIB	= @SHARED_LIB@
+ LIBRARIES	= @LIBS_TO_MAKE@
+ 
+ LINT		= @LINT@
+@@ -138,6 +137,7 @@
+ 
+ FALLBACK_LIST	= @FALLBACK_LIST@
+ 
++USE_BIG_STRINGS	= @USE_BIG_STRINGS@
+ TERMINFO_CAPS	= $(top_srcdir)/include/@TERMINFO_CAPS@
+ 
+ AUTO_SRC = \
+@@ -151,11 +151,10 @@
+ 	./names.c \
+ 	./unctrl.c \
+ 	init_keytry.h \
+-	keys.list \
+-	names-stamp
++	keys.list
+ 
+ TEST_DEPS	= ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
+-TEST_ARGS	= -L../lib -lncurses@DFT_ARG_SUFFIX@
++TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
+ TEST_LDFLAGS	= @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+ 
+ TEST_PROGS = \
+@@ -179,7 +178,7 @@
+ 
+ $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(libdir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ ../lib : ; mkdir $@
+ 
+@@ -197,7 +196,7 @@
+ 
+ make_keys$(BUILD_EXEEXT) : \
+ 		$(tinfo)/make_keys.c \
+-		names-stamp
++		names.c
+ 	$(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+ 
+ make_hash$(BUILD_EXEEXT) : \
+@@ -211,27 +210,21 @@
+ ./comp_captab.c: \
+ 		make_hash$(BUILD_EXEEXT) \
+ 		../include/hashsize.h \
++		$(tinfo)/MKcaptab.sh \
+ 		$(tinfo)/MKcaptab.awk
+-	sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ > $@
++	sh $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/@TERMINFO_CAPS@ > $@
+ 
+ ./lib_keyname.c: keys.list $(base)/MKkeyname.awk
+-	$(AWK) -f $(base)/MKkeyname.awk keys.list > $@
++	$(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
+ 
+-names-stamp: $(tinfo)/MKnames.awk
+-	$(AWK) -f $(tinfo)/MKnames.awk $(srcdir)/../include/@TERMINFO_CAPS@
+-	cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >names.c
+-	cat namehdr boolcodes numcodes strcodes codeftr >codes.c
+-	-rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
+-	@echo >$@
++./codes.c: $(tinfo)/MKcodes.awk
++	$(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
+ 
+-./names.c: names-stamp
+-	@echo made $@
+-
+-./codes.c: names-stamp
+-	@echo made $@
++./names.c: $(tinfo)/MKnames.awk
++	$(AWK) -f $(tinfo)/MKnames.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
+ 
+ ./unctrl.c: $(base)/MKunctrl.awk
+-	echo | $(AWK) -f $(base)/MKunctrl.awk >$@
++	echo | $(AWK) -f $(base)/MKunctrl.awk bigstrings=$(USE_BIG_STRINGS) >$@
+ 
+ tags:
+ 	ctags *.[ch] */*.[ch]
+@@ -267,17 +260,17 @@
+ 	sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
+ 
+ captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
+-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
++	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
+ 
+ hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
+-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
++	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
+ 
+-hashmap$x : $(serial)/hashmap.c $(TEST_DEPS)
+-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(TEST_LDFLAGS)
++hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
++	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
+ 
+ lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
+ 		../@DFT_OBJ_SUBDIR@/dump_entry$o
+-	@ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
++	@ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
+ 
+ link_test$x : ./link_test.c $(TEST_DEPS) \
+ 		../@DFT_OBJ_SUBDIR@/link_test$o
+Index: ncurses/base/MKkeyname.awk
+Prereq:  1.30 
+--- ncurses-5.6/ncurses/base/MKkeyname.awk	2006-05-20 17:35:30.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/MKkeyname.awk	2007-08-18 18:41:18.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: MKkeyname.awk,v 1.30 2006/05/20 17:35:30 tom Exp $
++# $Id: MKkeyname.awk,v 1.38 2007/08/18 18:41:18 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1999-2006,2007 Free 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"), #
+@@ -33,18 +33,39 @@
+ 	print "#include <tic.h>"
+ 	print "#include <term_entry.h>"
+ 	print ""
+-	print "const struct kn _nc_key_names[] = {"
++	first = 1;
+ }
+ 
+ /^[^#]/ {
+-	printf "\t{ \"%s\", %s },\n", $1, $1;
++		if (bigstrings) {
++			if (first)  {
++				print "struct kn { short offset; int code; };"
++				print "static const struct kn _nc_key_names[] = {"
++			}
++			printf "\t{ %d, %s },\n", offset, $1
++			offset += length($1) + 1
++			names = names"\n\t\""$1"\\0\""
++		} else {
++			if (first) {
++				print "struct kn { const char *name; int code; };"
++				print "static const struct kn _nc_key_names[] = {"
++			}
++			printf "\t{ \"%s\", %s },\n", $1, $1;
++		}
++		first = 0;
+ 	}
+ 
+ END {
+-	printf "\t{ 0, 0 }};\n"
++	if (bigstrings) {
++		printf "\t{ -1, 0 }};\n"
++		print ""
++		print "static const char key_names[] = "names";"
++	} else {
++		printf "\t{ 0, 0 }};\n"
++	}
+ 	print ""
+ 	print "#define SIZEOF_TABLE 256"
+-	print "static char **keyname_table;"
++	print "#define MyTable _nc_globals.keyname_table"
+ 	print ""
+ 	print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
+ 	print "{"
+@@ -56,21 +77,30 @@
+ 	print "	if (c == -1) {"
+ 	print "		result = \"-1\";"
+ 	print "	} else {"
+-	print "		for (i = 0; _nc_key_names[i].name != 0; i++) {"
+-	print "			if (_nc_key_names[i].code == c) {"
+-	print "				result = (NCURSES_CONST char *)_nc_key_names[i].name;"
+-	print "				break;"
+-	print "			}"
+-	print "		}"
++	if (bigstrings) {
++		print "		for (i = 0; _nc_key_names[i].offset != -1; i++) {"
++		print "			if (_nc_key_names[i].code == c) {"
++		print "				result = (NCURSES_CONST char *)key_names + _nc_key_names[i].offset;"
++		print "				break;"
++		print "			}"
++		print "		}"
++	} else {
++		print "		for (i = 0; _nc_key_names[i].name != 0; i++) {"
++		print "			if (_nc_key_names[i].code == c) {"
++		print "				result = (NCURSES_CONST char *)_nc_key_names[i].name;"
++		print "				break;"
++		print "			}"
++		print "		}"
++	}
+ 	print ""
+ 	print "		if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {"
+-	print "			if (keyname_table == 0)"
+-	print "				keyname_table = typeCalloc(char *, SIZEOF_TABLE);"
+-	print "			if (keyname_table != 0) {"
+-	print "				if (keyname_table[c] == 0) {"
++	print "			if (MyTable == 0)"
++	print "				MyTable = typeCalloc(char *, SIZEOF_TABLE);"
++	print "			if (MyTable != 0) {"
++	print "				if (MyTable[c] == 0) {"
+ 	print "					int cc = c;"
+ 	print "					p = name;"
+-	print "					if (cc >= 128) {"
++	print "					if (cc >= 128 && (SP == 0 || SP->_use_meta)) {"
+ 	print "						strcpy(p, \"M-\");"
+ 	print "						p += 2;"
+ 	print "						cc -= 128;"
+@@ -81,9 +111,9 @@
+ 	print "						strcpy(p, \"^?\");"
+ 	print "					else"
+ 	print "						sprintf(p, \"%c\", cc);"
+-	print "					keyname_table[c] = strdup(name);"
++	print "					MyTable[c] = strdup(name);"
+ 	print "				}"
+-	print "				result = keyname_table[c];"
++	print "				result = MyTable[c];"
+ 	print "			}"
+ 	print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
+ 	print "		} else if (result == 0 && cur_term != 0) {"
+@@ -111,24 +141,15 @@
+ 	print "	return result;"
+ 	print "}"
+ 	print ""
+-	print "#if USE_WIDEC_SUPPORT"
+-	print "NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)"
+-	print "{"
+-	print "	NCURSES_CONST char *result = keyname((int)c);"
+-	print "	if (!strncmp(result, \"M-\", 2)) result = 0;"
+-	print "	return result;"
+-	print "}"
+-	print "#endif"
+-	print ""
+ 	print "#if NO_LEAKS"
+ 	print "void _nc_keyname_leaks(void)"
+ 	print "{"
+ 	print "	int j;"
+-	print "	if (keyname_table != 0) {"
++	print "	if (MyTable != 0) {"
+ 	print "		for (j = 0; j < SIZEOF_TABLE; ++j) {"
+-	print "			FreeIfNeeded(keyname_table[j]);"
++	print "			FreeIfNeeded(MyTable[j]);"
+ 	print "		}"
+-	print "		FreeAndNull(keyname_table);"
++	print "		FreeAndNull(MyTable);"
+ 	print "	}"
+ 	print "}"
+ 	print "#endif /* NO_LEAKS */"
+Index: ncurses/base/MKlib_gen.sh
+Prereq:  1.27 
+--- ncurses-5.6/ncurses/base/MKlib_gen.sh	2006-07-01 21:25:39.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/MKlib_gen.sh	2007-08-18 13:17:14.000000000 +0000
+@@ -2,10 +2,10 @@
+ #
+ # MKlib_gen.sh -- generate sources from curses.h macro definitions
+ #
+-# ($Id: MKlib_gen.sh,v 1.27 2006/07/01 21:25:39 tom Exp $)
++# ($Id: MKlib_gen.sh,v 1.29 2007/08/18 13:17:14 tom Exp $)
+ #
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -62,7 +62,7 @@
+ if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+ if test "${LC_COLLATE+set}"  = set; then LC_COLLATE=C;  export LC_COLLATE;  fi
+ 
+-preprocessor="$1 -I../include"
++preprocessor="$1 -DNCURSES_INTERNALS -I../include"
+ AWK="$2"
+ USE="$3"
+ 
+@@ -406,7 +406,11 @@
+ | sed -e 's/NCURSES_EXPORT(\(.*\)) \(.*\) (\(.*\))/\1 \2(\3)/' \
+ | sed -f $ED2 \
+ | $AWK -f $AW1 using=$USE \
+-| sed -e 's/^\([a-z_][a-z_]*[ *]*\)/\1 gen_/' -e 's/  / /g' >>$TMP
++| sed \
++	-e 's/ [ ]*$//g' \
++	-e 's/^\([a-zA-Z_][a-zA-Z_]*[ *]*\)/\1 gen_/' \
++	-e 's/gen_$//' \
++	-e 's/  / /g' >>$TMP
+ 
+ $preprocessor $TMP 2>/dev/null \
+ | sed \
+Index: ncurses/base/MKunctrl.awk
+Prereq:  1.11 
+--- ncurses-5.6/ncurses/base/MKunctrl.awk	2005-12-17 22:48:37.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/MKunctrl.awk	2007-07-28 21:13:21.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: MKunctrl.awk,v 1.11 2005/12/17 22:48:37 tom Exp $
++# $Id: MKunctrl.awk,v 1.14 2007/07/28 21:13:21 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -42,63 +42,111 @@
+ 		print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
+ 		print "{"
+ 
+-		printf "static const char* const table[] = {"
++		blob=""
++		offset=0
++		if (bigstrings) {
++			printf "static const short unctrl_table[] = {"
++		} else {
++			printf "static const char* const unctrl_table[] = {"
++		}
+ 		for ( ch = 0; ch < 256; ch++ ) {
+ 			gap = ","
+-			if ((ch % 8) == 0)
++			part=""
++			if ((ch % 8) == 0) {
+ 				printf "\n    "
++				if (ch != 0)
++					blob = blob "\""
++				blob = blob "\n    \""
++			}
++			if (bigstrings)
++				printf "%4d%s", offset, gap;
+ 			if (ch < 32) {
+-				printf "\"^\\%03o\"", ch + 64
++				part = sprintf ("^\\%03o", ch + 64);
++				offset = offset + 3;
+ 			} else if (ch == 127) {
+-				printf "\"^?\""
++				part = "^?";
++				offset = offset + 3;
+ 			} else if (ch >= 128 && ch < 160) {
+-				printf "\"~\\%03o\"", ch - 64
++				part = sprintf("~\\%03o", ch - 64);
++				offset = offset + 3;
+ 			} else {
+-				printf "\"\\%03o\"", ch
+ 				gap = gap " "
++				part = sprintf("\\%03o", ch);
++				offset = offset + 2;
+ 			}
+ 			if (ch == 255)
+ 				gap = "\n"
+ 			else if (((ch + 1) % 8) != 0)
+ 				gap = gap " "
+-			printf "%s", gap
++			if (bigstrings) {
++				blob = blob part "\\0";
++			} else {
++				printf "\"%s\"%s", part, gap
++			}
+ 		}
+ 		print "};"
++		blob = blob "\"";
+ 
+ 		print ""
+ 		print "#if NCURSES_EXT_FUNCS"
+-		printf "static const char* const table2[] = {"
++		if (bigstrings) {
++			blob = blob "\n#if NCURSES_EXT_FUNCS"
++			printf "static const short unctrl_c1[] = {"
++		} else {
++			printf "static const char* const unctrl_c1[] = {"
++		}
+ 		for ( ch = 128; ch < 160; ch++ ) {
+ 			gap = ","
+-			if ((ch % 8) == 0)
++			if ((ch % 8) == 0) {
++				if (ch != 128)
++					blob = blob "\""
+ 				printf "\n    "
+-			if (ch >= 128 && ch < 160) {
+-				printf "\"\\%03o\"", ch
+-				gap = gap " "
++				blob = blob "\n    \""
++			}
++			if (bigstrings) {
++				printf "%4d%s", offset, gap;
++				part = sprintf("\\%03o\\0", ch);
++				blob = blob part
++				offset = offset + 2;
++				if (((ch + 1) % 8) != 0)
++					gap = gap " "
++			} else {
++				if (ch >= 128 && ch < 160) {
++					printf "\"\\%03o\"", ch
++					gap = gap " "
++				}
++				if (ch == 255)
++					gap = "\n"
++				else if (((ch + 1) % 8) != 0)
++					gap = gap " "
++				printf "%s", gap
+ 			}
+-			if (ch == 255)
+-				gap = "\n"
+-			else if (((ch + 1) % 8) != 0)
+-				gap = gap " "
+-			printf "%s", gap
+ 		}
+ 		print "};"
+ 		print "#endif /* NCURSES_EXT_FUNCS */"
++		blob = blob "\"\n#endif /* NCURSES_EXT_FUNCS */\n"
+ 
+ 		print ""
++		if (bigstrings) {
++			print "static const char unctrl_blob[] = "blob";"
++			print ""
++			stringname = "unctrl_blob + unctrl"
++		} else {
++			stringname = "unctrl"
++		}
+ 		print "\tint check = ChCharOf(ch);"
+ 		print "\tconst char *result;"
+ 		print ""
+-		print "\tif (check >= 0 && check < (int)SIZEOF(table)) {"
++		print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
+ 		print "#if NCURSES_EXT_FUNCS"
+ 		print "\t\tif ((SP != 0)"
+ 		print "\t\t && (SP->_legacy_coding > 1)"
+ 		print "\t\t && (check >= 128)"
+ 		print "\t\t && (check < 160))"
+-		print "\t\t\tresult = table2[check - 128];"
++		printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
+ 		print "\t\telse"
+ 		print "#endif /* NCURSES_EXT_FUNCS */"
+-		print "\t\t\tresult = table[check];"
++		printf "\t\t\tresult = %s_table[check];\n", stringname;
+ 		print "\t} else {"
+ 		print "\t\tresult = 0;"
+ 		print "\t}"
+Index: ncurses/base/define_key.c
+Prereq:  1.10 
+--- ncurses-5.6/ncurses/base/define_key.c	2006-06-17 18:19:48.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/define_key.c	2006-12-30 23:23:31.000000000 +0000
+@@ -32,7 +32,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: define_key.c,v 1.10 2006/06/17 18:19:48 tom Exp $")
++MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ define_key(const char *str, int keycode)
+@@ -43,16 +43,21 @@
+     if (SP == 0) {
+ 	code = ERR;
+     } else if (keycode > 0) {
++	unsigned ukey = (unsigned) keycode;
++
+ 	if (str != 0) {
+ 	    define_key(str, 0);
+ 	} else if (has_key(keycode)) {
+-	    while (_nc_remove_key(&(SP->_keytry), (unsigned) keycode))
++	    while (_nc_remove_key(&(SP->_keytry), ukey))
+ 		code = OK;
+ 	}
+ 	if (str != 0) {
+ 	    if (key_defined(str) == 0) {
+-		(void) _nc_add_to_try(&(SP->_keytry), str, (unsigned) keycode);
+-		code = OK;
++		if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) {
++		    code = OK;
++		} else {
++		    code = ERR;
++		}
+ 	    } else {
+ 		code = ERR;
+ 	    }
+Index: ncurses/base/key_defined.c
+Prereq:  1.3 
+--- ncurses-5.6/ncurses/base/key_defined.c	2003-05-17 23:12:27.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/key_defined.c	2006-12-30 23:22:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003 Free Software Foundation, Inc.                        *
++ * Copyright (c) 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            *
+@@ -32,26 +32,27 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: key_defined.c,v 1.3 2003/05/17 23:12:27 tom Exp $")
++MODULE_ID("$Id: key_defined.c,v 1.6 2006/12/30 23:22:55 tom Exp $")
+ 
+ static int
+-find_definition(struct tries *tree, const char *str)
++find_definition(TRIES * tree, const char *str)
+ {
+-    struct tries *ptr;
+-    int result = 0;
++    TRIES *ptr;
++    int result = OK;
+ 
+     if (str != 0 && *str != '\0') {
+ 	for (ptr = tree; ptr != 0; ptr = ptr->sibling) {
+ 	    if (UChar(*str) == UChar(ptr->ch)) {
+ 		if (str[1] == '\0' && ptr->child != 0) {
+-		    result = -1;
+-		} else if ((result = find_definition(ptr->child, str + 1)) == 0) {
++		    result = ERR;
++		} else if ((result = find_definition(ptr->child, str + 1))
++			   == OK) {
+ 		    result = ptr->value;
+ 		} else if (str[1] == '\0') {
+-		    result = -1;
++		    result = ERR;
+ 		}
+ 	    }
+-	    if (result != 0)
++	    if (result != OK)
+ 		break;
+ 	}
+     }
+@@ -60,7 +61,8 @@
+ 
+ /*
+  * Returns the keycode associated with the given string.  If none is found,
+- * return 0.  If the string is only a prefix to other strings, return -1.
++ * return OK.  If the string is only a prefix to other strings, return ERR.
++ * Otherwise, return the keycode's value (neither OK/ERR).
+  */
+ NCURSES_EXPORT(int)
+ key_defined(const char *str)
+Index: ncurses/base/keyok.c
+Prereq:  1.6 
+--- ncurses-5.6/ncurses/base/keyok.c	2006-06-17 18:18:43.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/keyok.c	2006-12-30 16:22:33.000000000 +0000
+@@ -27,12 +27,12 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey <dickey@clark.net> 1997                        *
++ *  Author: Thomas E. Dickey            1997-on                             *
+  ****************************************************************************/
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: keyok.c,v 1.6 2006/06/17 18:18:43 tom Exp $")
++MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $")
+ 
+ /*
+  * Enable (or disable) ncurses' interpretation of a keycode by adding (or
+@@ -57,18 +57,20 @@
+ 	if (flag) {
+ 	    while ((s = _nc_expand_try(SP->_key_ok, ch, &count, 0)) != 0
+ 		   && _nc_remove_key(&(SP->_key_ok), ch)) {
+-		_nc_add_to_try(&(SP->_keytry), s, ch);
++		code = _nc_add_to_try(&(SP->_keytry), s, ch);
+ 		free(s);
+-		code = OK;
+ 		count = 0;
++		if (code != OK)
++		    break;
+ 	    }
+ 	} else {
+ 	    while ((s = _nc_expand_try(SP->_keytry, ch, &count, 0)) != 0
+ 		   && _nc_remove_key(&(SP->_keytry), ch)) {
+-		_nc_add_to_try(&(SP->_key_ok), s, ch);
++		code = _nc_add_to_try(&(SP->_key_ok), s, ch);
+ 		free(s);
+-		code = OK;
+ 		count = 0;
++		if (code != OK)
++		    break;
+ 	    }
+ 	}
+     }
+Index: ncurses/base/lib_addstr.c
+Prereq:  1.46 
+--- ncurses-5.6/ncurses/base/lib_addstr.c	2006-05-27 19:22:19.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_addstr.c	2007-10-13 19:56:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -44,7 +44,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_addstr.c,v 1.46 2006/05/27 19:22:19 tom Exp $")
++MODULE_ID("$Id: lib_addstr.c,v 1.48 2007/10/13 19:56:57 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ waddnstr(WINDOW *win, const char *astr, int n)
+@@ -80,8 +80,7 @@
+ NCURSES_EXPORT(int)
+ waddchnstr(WINDOW *win, const chtype *astr, int n)
+ {
+-    NCURSES_SIZE_T y = win->_cury;
+-    NCURSES_SIZE_T x = win->_curx;
++    NCURSES_SIZE_T y, x;
+     int code = OK;
+     int i;
+     struct ldat *line;
+@@ -91,6 +90,8 @@
+     if (!win)
+ 	returnCode(ERR);
+ 
++    y = win->_cury;
++    x = win->_curx;
+     if (n < 0) {
+ 	const chtype *str;
+ 	n = 0;
+@@ -128,8 +129,8 @@
+ wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n)
+ {
+     static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
+-    NCURSES_SIZE_T y = win->_cury;
+-    NCURSES_SIZE_T x = win->_curx;
++    NCURSES_SIZE_T y;
++    NCURSES_SIZE_T x;
+     int code = OK;
+     struct ldat *line;
+     int i, j, start, len, end;
+@@ -139,6 +140,8 @@
+     if (!win)
+ 	returnCode(ERR);
+ 
++    y = win->_cury;
++    x = win->_curx;
+     if (n < 0) {
+ 	n = _nc_wchstrlen(astr);
+     }
+Index: ncurses/base/lib_color.c
+Prereq:  1.80 
+--- ncurses-5.6/ncurses/base/lib_color.c	2006-11-26 01:33:16.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_color.c	2007-04-07 17:07:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,21 +42,37 @@
+ #include <term.h>
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_color.c,v 1.80 2006/11/26 01:33:16 tom Exp $")
++MODULE_ID("$Id: lib_color.c,v 1.85 2007/04/07 17:07:28 tom Exp $")
+ 
+ /*
+  * These should be screen structure members.  They need to be globals for
+  * historical reasons.  So we assign them in start_color() and also in
+  * set_term()'s screen-switching logic.
+  */
++#if USE_REENTRANT
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void)
++{
++    return SP ? SP->_pair_count : -1;
++}
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(COLORS) (void)
++{
++    return SP ? SP->_color_count : -1;
++}
++#else
+ NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
+ NCURSES_EXPORT_VAR(int) COLORS = 0;
++#endif
+ 
+ #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
+ 
+ #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+ 
++#define MAX_PALETTE	8
++
+ #define OkColorHi(n)	(((n) < COLORS) && ((n) < max_colors))
++#define InPalette(n)	((n) >= 0 && (n) < MAX_PALETTE)
+ 
+ /*
+  * Given a RGB range of 0..1000, we'll normally set the individual values
+@@ -162,10 +178,10 @@
+ 
+     tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
+     for (n = 0; n < COLORS; n++) {
+-	if (n < 8) {
++	if (InPalette(n)) {
+ 	    SP->_color_table[n] = tp[n];
+ 	} else {
+-	    SP->_color_table[n] = tp[n % 8];
++	    SP->_color_table[n] = tp[n % MAX_PALETTE];
+ 	    if (hue_lightness_saturation) {
+ 		SP->_color_table[n].green = 100;
+ 	    } else {
+@@ -239,8 +255,12 @@
+ 	}
+ 
+ 	if (max_pairs > 0 && max_colors > 0) {
+-	    COLOR_PAIRS = SP->_pair_count = max_pairs;
+-	    COLORS = SP->_color_count = max_colors;
++	    SP->_pair_count = max_pairs;
++	    SP->_color_count = max_colors;
++#if !USE_REENTRANT
++	    COLOR_PAIRS = max_pairs;
++	    COLORS = max_colors;
++#endif
+ 
+ 	    if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
+ 						max_pairs)) != 0) {
+@@ -365,13 +385,14 @@
+     if (GET_SCREEN_PAIR(SP) == pair)
+ 	SET_SCREEN_PAIR(SP, (chtype) (~0));	/* force attribute update */
+ 
+-    if (initialize_pair) {
++    if (initialize_pair && InPalette(f) && InPalette(b)) {
+ 	const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
+ 
+-	T(("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
+-	   pair,
+-	   tp[f].red, tp[f].green, tp[f].blue,
+-	   tp[b].red, tp[b].green, tp[b].blue));
++	TR(TRACE_ATTRS,
++	   ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
++	    pair,
++	    tp[f].red, tp[f].green, tp[f].blue,
++	    tp[b].red, tp[b].green, tp[b].blue));
+ 
+ 	TPUTS_TRACE("initialize_pair");
+ 	putp(TPARM_7(initialize_pair,
+@@ -461,7 +482,8 @@
+ 	if (b)
+ 	    *b = c_b;
+ 
+-	T(("...color_content(%d,%d,%d,%d)", color, c_r, c_g, c_b));
++	TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)",
++			 color, c_r, c_g, c_b));
+ 	result = OK;
+     }
+     returnCode(result);
+@@ -492,7 +514,7 @@
+ 	if (b)
+ 	    *b = bg;
+ 
+-	T(("...pair_content(%d,%d,%d)", pair, fg, bg));
++	TR(TRACE_ATTRS, ("...pair_content(%d,%d,%d)", pair, fg, bg));
+ 	result = OK;
+     }
+     returnCode(result);
+Index: ncurses/base/lib_delwin.c
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/base/lib_delwin.c	2001-08-26 00:40:20.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_delwin.c	2007-11-03 20:24:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2001,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_delwin.c,v 1.13 2001/08/26 00:40:20 tom Exp $")
++MODULE_ID("$Id: lib_delwin.c,v 1.14 2007/11/03 20:24:15 tom Exp $")
+ 
+ static bool
+ cannot_delete(WINDOW *win)
+@@ -63,16 +63,23 @@
+ NCURSES_EXPORT(int)
+ delwin(WINDOW *win)
+ {
++    int result = ERR;
++
+     T((T_CALLED("delwin(%p)"), win));
+ 
++    _nc_lock_global(windowlist);
+     if (win == 0
+-	|| cannot_delete(win))
+-	returnCode(ERR);
+-
+-    if (win->_flags & _SUBWIN)
+-	touchwin(win->_parent);
+-    else if (curscr != 0)
+-	touchwin(curscr);
++	|| cannot_delete(win)) {
++	result = ERR;
++    } else {
++
++	if (win->_flags & _SUBWIN)
++	    touchwin(win->_parent);
++	else if (curscr != 0)
++	    touchwin(curscr);
+ 
+-    returnCode(_nc_freewin(win));
++	result = _nc_freewin(win);
++    }
++    _nc_unlock_global(windowlist);
++    returnCode(result);
+ }
+Index: ncurses/base/lib_freeall.c
+Prereq:  1.38 
+--- ncurses-5.6/ncurses/base/lib_freeall.c	2006-12-02 22:36:43.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_freeall.c	2007-06-02 19:40:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey                    1996,1997                   *
++ *  Author: Thomas E. Dickey                    1996-on                     *
+  ****************************************************************************/
+ 
+ #include <curses.priv.h>
+@@ -40,7 +40,7 @@
+ extern int malloc_errfd;	/* FIXME */
+ #endif
+ 
+-MODULE_ID("$Id: lib_freeall.c,v 1.38 2006/12/02 22:36:43 tom Exp $")
++MODULE_ID("$Id: lib_freeall.c,v 1.44 2007/06/02 19:40:25 tom Exp $")
+ 
+ /*
+  * Free all ncurses data.  This is used for testing only (there's no practical
+@@ -50,14 +50,14 @@
+ _nc_freeall(void)
+ {
+     WINDOWLIST *p, *q;
+-    char *s;
+     static va_list empty_va;
+ 
+     T((T_CALLED("_nc_freeall()")));
+ #if NO_LEAKS
+-    _nc_free_tparm();
+-    if (_nc_oldnums != 0) {
+-	FreeAndNull(_nc_oldnums);
++    if (SP != 0) {
++	if (SP->_oldnum_list != 0) {
++	    FreeAndNull(SP->_oldnum_list);
++	}
+     }
+ #endif
+     if (SP != 0) {
+@@ -83,32 +83,23 @@
+ 	}
+ 	delscreen(SP);
+     }
+-#if NO_LEAKS
+-    _nc_tgetent_leaks();
+-#endif
+-    del_curterm(cur_term);
+-    _nc_free_entries(_nc_head);
+-    _nc_get_type(0);
+-    _nc_first_name(0);
++    if (cur_term != 0)
++	del_curterm(cur_term);
++
+ #if USE_WIDEC_SUPPORT
+     FreeIfNeeded(_nc_wacs);
+ #endif
+-#if NO_LEAKS
+-    _nc_alloc_entry_leaks();
+-    _nc_captoinfo_leaks();
+-    _nc_comp_scan_leaks();
+-    _nc_keyname_leaks();
+-    _nc_tic_expand(0, FALSE, 0);
+-#endif
+-
+-    if ((s = _nc_home_terminfo()) != 0)
+-	free(s);
+-
+     (void) _nc_printf_string(0, empty_va);
+ #ifdef TRACE
+     (void) _nc_trace_buf(-1, 0);
+ #endif
+ 
++#if BROKEN_LINKER || USE_REENTRANT
++    FreeIfNeeded(_nc_prescreen.real_acs_map);
++#endif
++
++    _nc_leaks_tinfo();
++
+ #if HAVE_LIBDBMALLOC
+     malloc_dump(malloc_errfd);
+ #elif HAVE_LIBDMALLOC
+Index: ncurses/base/lib_getch.c
+Prereq:  1.75 
+--- ncurses-5.6/ncurses/base/lib_getch.c	2006-03-04 20:06:09.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_getch.c	2007-09-29 20:39:34.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,12 +41,20 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_getch.c,v 1.75 2006/03/04 20:06:09 tom Exp $")
++MODULE_ID("$Id: lib_getch.c,v 1.80 2007/09/29 20:39:34 tom Exp $")
+ 
+ #include <fifo_defs.h>
+ 
++#if USE_REENTRANT
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(ESCDELAY) (void)
++{
++    return SP ? SP->_ESCDELAY : 1000;
++}
++#else
+ NCURSES_EXPORT_VAR(int)
+ ESCDELAY = 1000;		/* max interval betw. chars in funkeys, in millisecs */
++#endif
+ 
+ #ifdef NCURSES_WGETCH_EVENTS
+ #define TWAIT_MASK 7
+@@ -104,8 +112,10 @@
+ 	h_inc();
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT)
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_nc_fifo_dump();
++	_nc_unlock_global(tracef);
++    }
+ #endif
+     return ch;
+ }
+@@ -200,8 +210,10 @@
+     t_inc();
+     TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail));
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT)
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_nc_fifo_dump();
++	_nc_unlock_global(tracef);
++    }
+ #endif
+     return ch;
+ }
+@@ -234,15 +246,16 @@
+     T((T_CALLED("_nc_wgetch(%p)"), win));
+ 
+     *result = 0;
+-    if (win == 0 || SP == 0)
++    if (win == 0 || SP == 0) {
+ 	returnCode(ERR);
++    }
+ 
+     if (cooked_key_in_fifo()) {
+ 	if (wgetch_should_refresh(win))
+ 	    wrefresh(win);
+ 
+ 	*result = fifo_pull();
+-	returnCode(OK);
++	returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
+     }
+ #ifdef NCURSES_WGETCH_EVENTS
+     if (evl && (evl->count == 0))
+@@ -281,12 +294,10 @@
+ 	/* Return it first */
+ 	if (rc == KEY_EVENT) {
+ 	    *result = rc;
+-	    returnCode(OK);
+-	}
++	} else
+ #endif
+-
+-	*result = fifo_pull();
+-	returnCode(OK);
++	    *result = fifo_pull();
++	returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
+     }
+ 
+     if (win->_use_keypad != SP->_keypad_on)
+@@ -318,7 +329,7 @@
+ #ifdef NCURSES_WGETCH_EVENTS
+ 	    if (rc & 4) {
+ 		*result = KEY_EVENT;
+-		returnCode(OK);
++		returnCode(KEY_CODE_YES);
+ 	    }
+ #endif
+ 	    if (!rc)
+@@ -384,7 +395,7 @@
+ 
+     if (ch == ERR) {
+ #if USE_SIZECHANGE
+-	if (SP->_sig_winch) {
++	if (_nc_handle_sigwinch(FALSE)) {
+ 	    _nc_update_screensize();
+ 	    /* resizeterm can push KEY_RESIZE */
+ 	    if (cooked_key_in_fifo()) {
+@@ -493,7 +504,7 @@
+ static int
+ kgetch(EVENTLIST_0th(_nc_eventlist * evl))
+ {
+-    struct tries *ptr;
++    TRIES *ptr;
+     int ch = 0;
+     int timeleft = ESCDELAY;
+ 
+Index: ncurses/base/lib_initscr.c
+Prereq:  1.34 
+--- ncurses-5.6/ncurses/base/lib_initscr.c	2005-10-22 20:30:38.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_initscr.c	2007-04-21 20:43:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -45,19 +45,18 @@
+ #include <sys/termio.h>		/* needed for ISC */
+ #endif
+ 
+-MODULE_ID("$Id: lib_initscr.c,v 1.34 2005/10/22 20:30:38 tom Exp $")
++MODULE_ID("$Id: lib_initscr.c,v 1.35 2007/04/21 20:43:02 tom Exp $")
+ 
+ NCURSES_EXPORT(WINDOW *)
+ initscr(void)
+ {
+-    static bool initialized = FALSE;
+     NCURSES_CONST char *name;
+ 
+     START_TRACE();
+     T((T_CALLED("initscr()")));
+     /* Portable applications must not call initscr() more than once */
+-    if (!initialized) {
+-	initialized = TRUE;
++    if (!_nc_globals.init_screen) {
++	_nc_globals.init_screen = TRUE;
+ 
+ 	if ((name = getenv("TERM")) == 0
+ 	    || *name == '\0')
+Index: ncurses/base/lib_instr.c
+Prereq:  1.15 
+--- ncurses-5.6/ncurses/base/lib_instr.c	2005-11-20 01:38:03.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_instr.c	2007-07-21 20:18:10.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,7 +41,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_instr.c,v 1.15 2005/11/20 01:38:03 tom Exp $")
++MODULE_ID("$Id: lib_instr.c,v 1.16 2007/07/21 20:18:10 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ winnstr(WINDOW *win, char *str, int n)
+@@ -81,7 +81,7 @@
+ 			n3 = wcstombs(0, wch, 0);
+ 			if (isEILSEQ(n3) || (n3 == 0)) {
+ 			    ;
+-			} else if ((int) (n3 + i) >= n) {
++			} else if ((int) (n3 + i) > n) {
+ 			    done = TRUE;
+ 			} else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
+ 			    done = TRUE;
+@@ -102,9 +102,7 @@
+ 	    str[i++] = (char) CharOf(win->_line[row].text[col]);
+ #endif
+ 	    if (++col > win->_maxx) {
+-		col = 0;
+-		if (++row > win->_maxy)
+-		    break;
++		break;
+ 	    }
+ 	}
+     }
+Index: ncurses/base/lib_mouse.c
+Prereq:  1.85 
+--- ncurses-5.6/ncurses/base/lib_mouse.c	2006-11-25 22:30:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_mouse.c	2007-09-29 21:50:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -79,7 +79,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_mouse.c,v 1.85 2006/11/25 22:30:28 tom Exp $")
++MODULE_ID("$Id: lib_mouse.c,v 1.88 2007/09/29 21:50:04 tom Exp $")
+ 
+ #include <term.h>
+ #include <tic.h>
+@@ -403,11 +403,11 @@
+ }
+ #endif /* USE_GPM_SUPPORT */
+ 
++#define xterm_kmous "\033[M"
++
+ static void
+ initialize_mousetype(void)
+ {
+-    static const char *xterm_kmous = "\033[M";
+-
+     T((T_CALLED("initialize_mousetype()")));
+ 
+     /* Try gpm first, because gpm may be configured to run in xterm */
+@@ -565,8 +565,8 @@
+ 	    init_xterm_mouse();
+ 	}
+     } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
+-	(void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
+-	init_xterm_mouse();
++	if (_nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE) == OK)
++	    init_xterm_mouse();
+     }
+     returnVoid;
+ }
+@@ -985,12 +985,13 @@
+     }
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT) {
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_trace_slot("before mouse press/release merge:");
+ 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+ 		(long) (runp - SP->_mouse_events),
+ 		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+ 		runcount);
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+@@ -1028,12 +1029,13 @@
+ 	(merge);
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT) {
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_trace_slot("before mouse click merge:");
+ 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+ 		(long) (runp - SP->_mouse_events),
+ 		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+ 		runcount);
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+@@ -1099,12 +1101,13 @@
+ 	(merge);
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT) {
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_trace_slot("before mouse event queue compaction:");
+ 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+ 		(long) (runp - SP->_mouse_events),
+ 		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+ 		runcount);
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+@@ -1117,12 +1120,13 @@
+ 	    SP->_mouse_eventp = eventp = prev;
+ 	}
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT) {
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_trace_slot("after mouse event queue compaction:");
+ 	_tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+ 		(long) (runp - SP->_mouse_events),
+ 		(long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
+ 		runcount);
++	_nc_unlock_global(tracef);
+     }
+     for (ep = runp; ep != eventp; ep = NEXT(ep))
+ 	if (ep->id != INVALID_EVENT)
+Index: ncurses/base/lib_newterm.c
+Prereq:  1.64 
+--- ncurses-5.6/ncurses/base/lib_newterm.c	2006-01-14 15:36:24.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_newterm.c	2007-04-21 20:47:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -48,7 +48,7 @@
+ #include <term.h>		/* clear_screen, cup & friends, cur_term */
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_newterm.c,v 1.64 2006/01/14 15:36:24 tom Exp $")
++MODULE_ID("$Id: lib_newterm.c,v 1.67 2007/04/21 20:47:32 tom Exp $")
+ 
+ #ifndef ONLCR			/* Allows compilation under the QNX 4.2 OS */
+ #define ONLCR 0
+@@ -94,14 +94,12 @@
+  * aside from possibly delaying a filter() call until some terminals have been
+  * initialized.
+  */
+-static bool filter_mode = FALSE;
+-
+ NCURSES_EXPORT(void)
+ filter(void)
+ {
+     START_TRACE();
+     T((T_CALLED("filter")));
+-    filter_mode = TRUE;
++    _nc_prescreen.filter_mode = TRUE;
+     returnVoid;
+ }
+ 
+@@ -115,7 +113,7 @@
+ {
+     START_TRACE();
+     T((T_CALLED("nofilter")));
+-    filter_mode = FALSE;
++    _nc_prescreen.filter_mode = FALSE;
+     returnVoid;
+ }
+ #endif
+@@ -132,13 +130,6 @@
+     START_TRACE();
+     T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
+ 
+-    _nc_handle_sigwinch(0);
+-
+-    /* allow user to set maximum escape delay from the environment */
+-    if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
+-	ESCDELAY = value;
+-    }
+-
+     /* this loads the capability entry, then sets LINES and COLS */
+     if (setupterm(name, fileno(ofp), &errret) == ERR) {
+ 	result = 0;
+@@ -149,7 +140,21 @@
+ 	 */
+ 	current = SP;
+ 	_nc_set_screen(0);
+-	if (_nc_setupscreen(LINES, COLS, ofp, filter_mode, slk_format) == ERR) {
++
++	/* allow user to set maximum escape delay from the environment */
++	if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
++#if USE_REENTRANT
++	    SP->_ESCDELAY = value;
++#else
++	    ESCDELAY = value;
++#endif
++	}
++
++	if (_nc_setupscreen(LINES,
++			    COLS,
++			    ofp,
++			    _nc_prescreen.filter_mode,
++			    slk_format) == ERR) {
+ 	    _nc_set_screen(current);
+ 	    result = 0;
+ 	} else {
+@@ -211,6 +216,5 @@
+ 	    result = SP;
+ 	}
+     }
+-    _nc_handle_sigwinch(1);
+     returnSP(result);
+ }
+Index: ncurses/base/lib_newwin.c
+Prereq:  1.38 
+--- ncurses-5.6/ncurses/base/lib_newwin.c	2006-10-14 20:31:19.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_newwin.c	2007-10-20 20:56:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,7 +41,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_newwin.c,v 1.38 2006/10/14 20:31:19 tom Exp $")
++MODULE_ID("$Id: lib_newwin.c,v 1.41 2007/10/20 20:56:07 tom Exp $")
+ 
+ static WINDOW *
+ remove_window_from_screen(WINDOW *win)
+@@ -52,16 +52,22 @@
+ 	SCREEN *sp = *scan;
+ 	if (sp->_curscr == win) {
+ 	    sp->_curscr = 0;
++#if !USE_REENTRANT
+ 	    if (win == curscr)
+ 		curscr = 0;
++#endif
+ 	} else if (sp->_stdscr == win) {
+ 	    sp->_stdscr = 0;
++#if !USE_REENTRANT
+ 	    if (win == stdscr)
+ 		stdscr = 0;
++#endif
+ 	} else if (sp->_newscr == win) {
+ 	    sp->_newscr = 0;
++#if !USE_REENTRANT
+ 	    if (win == newscr)
+ 		newscr = 0;
++#endif
+ 	} else {
+ 	    scan = &(*scan)->_next_screen;
+ 	    continue;
+@@ -208,22 +214,31 @@
+     WINDOW *win;
+     bool is_pad = (flags & _ISPAD);
+ 
+-    T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
++    T((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
+ 
+     if (SP == 0)
+-	return 0;
++	returnWin(0);
+ 
+     if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
+-	return 0;
++	returnWin(0);
+ 
+     if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
+-	return 0;
++	returnWin(0);
++
++#ifdef USE_PTHREADS
++    {
++	pthread_mutexattr_t recattr;
++	memset(&recattr, 0, sizeof(recattr));
++	pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
++	pthread_mutex_init(&(wp->mutex_use_window), &recattr);
++    }
++#endif
+ 
+     win = &(wp->win);
+ 
+     if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
+ 	free(win);
+-	return 0;
++	returnWin(0);
+     }
+ 
+     win->_curx = 0;
+@@ -303,5 +318,5 @@
+ 
+     T((T_CREATE("window %p"), win));
+ 
+-    return (win);
++    returnWin(win);
+ }
+Index: ncurses/base/lib_overlay.c
+Prereq:  1.22 
+--- ncurses-5.6/ncurses/base/lib_overlay.c	2006-10-14 20:43:31.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_overlay.c	2007-04-07 17:13:52.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_overlay.c,v 1.22 2006/10/14 20:43:31 tom Exp $")
++MODULE_ID("$Id: lib_overlay.c,v 1.23 2007/04/07 17:13:52 tom Exp $")
+ 
+ static int
+ overlap(const WINDOW *const s, WINDOW *const d, int const flag)
+@@ -139,8 +139,8 @@
+ {
+     int sx, sy, dx, dy;
+     bool touched;
+-    attr_t bk = AttrOf(dst->_nc_bkgd);
+-    attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
++    attr_t bk;
++    attr_t mask;
+ 
+     T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"),
+        src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
+@@ -148,6 +148,9 @@
+     if (!src || !dst)
+ 	returnCode(ERR);
+ 
++    bk = AttrOf(dst->_nc_bkgd);
++    mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
++
+     /* make sure rectangle exists in source */
+     if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) ||
+ 	(smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {
+Index: ncurses/base/lib_redrawln.c
+Prereq:  1.11 
+--- ncurses-5.6/ncurses/base/lib_redrawln.c	2006-11-04 23:08:47.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_redrawln.c	2007-10-13 20:08:56.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,17 +39,20 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_redrawln.c,v 1.11 2006/11/04 23:08:47 tom Exp $")
++MODULE_ID("$Id: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ wredrawln(WINDOW *win, int beg, int num)
+ {
+     int i;
+     int end;
+-    size_t len = (win->_maxx + 1);
++    size_t len;
+ 
+     T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
+ 
++    if (win == 0)
++	returnCode(ERR);
++
+     if (beg < 0)
+ 	beg = 0;
+ 
+@@ -65,6 +68,7 @@
+     if (end > win->_maxy + 1)
+ 	end = win->_maxy + 1;
+ 
++    len = (win->_maxx + 1);
+     if (len > (size_t) (curscr->_maxx + 1))
+ 	len = (size_t) (curscr->_maxx + 1);
+     len *= sizeof(curscr->_line[0].text[0]);
+Index: ncurses/base/lib_refresh.c
+Prereq:  1.34 
+--- ncurses-5.6/ncurses/base/lib_refresh.c	2006-05-27 19:21:19.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_refresh.c	2007-09-29 20:39:34.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,7 +41,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_refresh.c,v 1.34 2006/05/27 19:21:19 tom Exp $")
++MODULE_ID("$Id: lib_refresh.c,v 1.41 2007/09/29 20:39:34 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ wrefresh(WINDOW *win)
+@@ -74,18 +74,20 @@
+ wnoutrefresh(WINDOW *win)
+ {
+     NCURSES_SIZE_T limit_x;
+-    NCURSES_SIZE_T i, j;
++    NCURSES_SIZE_T src_row, src_col;
+     NCURSES_SIZE_T begx;
+     NCURSES_SIZE_T begy;
+-    NCURSES_SIZE_T m, n;
++    NCURSES_SIZE_T dst_row, dst_col;
+ #if USE_SCROLL_HINTS
+     bool wide;
+ #endif
+ 
+     T((T_CALLED("wnoutrefresh(%p)"), win));
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_UPDATE)
++    if (USE_TRACEF(TRACE_UPDATE)) {
+ 	_tracedump("...win", win);
++	_nc_unlock_global(tracef);
++    }
+ #endif /* TRACE */
+ 
+     /*
+@@ -132,28 +134,121 @@
+      * so we'll force the issue.
+      */
+ 
+-    /* limit(n) */
++    /* limit(dst_col) */
+     limit_x = win->_maxx;
+-    /* limit(j) */
++    /* limit(src_col) */
+     if (limit_x > newscr->_maxx - begx)
+ 	limit_x = newscr->_maxx - begx;
+ 
+-    for (i = 0, m = begy + win->_yoffset;
+-	 i <= win->_maxy && m <= newscr->_maxy;
+-	 i++, m++) {
+-	register struct ldat *nline = &newscr->_line[m];
+-	register struct ldat *oline = &win->_line[i];
++    for (src_row = 0, dst_row = begy + win->_yoffset;
++	 src_row <= win->_maxy && dst_row <= newscr->_maxy;
++	 src_row++, dst_row++) {
++	register struct ldat *nline = &newscr->_line[dst_row];
++	register struct ldat *oline = &win->_line[src_row];
+ 
+ 	if (oline->firstchar != _NOCHANGE) {
+-	    int last = oline->lastchar;
++	    int last_src = oline->lastchar;
++
++	    if (last_src > limit_x)
++		last_src = limit_x;
+ 
+-	    if (last > limit_x)
+-		last = limit_x;
++	    src_col = oline->firstchar;
++	    dst_col = src_col + begx;
++
++	    if_WIDEC({
++		register int j;
++
++		/*
++		 * Ensure that we will copy complete multi-column characters
++		 * on the left-boundary.
++		 */
++		if (isWidecExt(oline->text[src_col])) {
++		    j = 1 + dst_col - WidecExt(oline->text[src_col]);
++		    if (j < 0)
++			j = 0;
++		    if (dst_col > j) {
++			src_col -= (dst_col - j);
++			dst_col = j;
++		    }
++		}
+ 
+-	    for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
+-		if (!CharEq(oline->text[j], nline->text[n])) {
+-		    nline->text[n] = oline->text[j];
+-		    CHANGED_CELL(nline, n);
++		/*
++		 * Ensure that we will copy complete multi-column characters
++		 * on the right-boundary.
++		 */
++		j = last_src;
++		if (WidecExt(oline->text[j])) {
++		    ++j;
++		    while (j <= limit_x) {
++			if (isWidecBase(oline->text[j])) {
++			    break;
++			} else {
++			    last_src = j;
++			}
++			++j;
++		    }
++		}
++	    });
++
++	    if_WIDEC({
++		static cchar_t blank = BLANK;
++		int last_dst = begx + ((last_src < win->_maxx)
++				       ? last_src
++				       : win->_maxx);
++		int fix_left = dst_col;
++		int fix_right = last_dst;
++		register int j;
++
++		/*
++		 * Check for boundary cases where we may overwrite part of a
++		 * multi-column character.  For those, wipe the remainder of
++		 * the character to blanks.
++		 */
++		j = dst_col;
++		if (isWidecExt(nline->text[j])) {
++		    /*
++		     * On the left, we only care about multi-column characters
++		     * that extend into the changed region.
++		     */
++		    fix_left = 1 + j - WidecExt(nline->text[j]);
++		    if (fix_left < 0)
++			fix_left = 0;	/* only if cell is corrupt */
++		}
++
++		j = last_dst;
++		if (WidecExt(nline->text[j]) != 0) {
++		    /*
++		     * On the right, any multi-column character is a problem,
++		     * unless it happens to be contained in the change, and
++		     * ending at the right boundary of the change.  The
++		     * computation for 'fix_left' accounts for the left-side of
++		     * this character.  Find the end of the character.
++		     */
++		    ++j;
++		    while (j <= newscr->_maxx && isWidecExt(nline->text[j])) {
++			fix_right = j++;
++		    }
++		}
++
++		/*
++		 * The analysis is simpler if we do the clearing afterwards.
++		 * Do that now.
++		 */
++		if (fix_left < dst_col || fix_right > last_dst) {
++		    for (j = fix_left; j <= fix_right; ++j) {
++			nline->text[j] = blank;
++			CHANGED_CELL(nline, j);
++		    }
++		}
++	    });
++
++	    /*
++	     * Copy the changed text.
++	     */
++	    for (; src_col <= last_src; src_col++, dst_col++) {
++		if (!CharEq(oline->text[src_col], nline->text[dst_col])) {
++		    nline->text[dst_col] = oline->text[src_col];
++		    CHANGED_CELL(nline, dst_col);
+ 		}
+ 	    }
+ 
+@@ -162,13 +257,14 @@
+ 	if (wide) {
+ 	    int oind = oline->oldindex;
+ 
+-	    nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : begy + oind
+-		+ win->_yoffset;
++	    nline->oldindex = ((oind == _NEWINDEX)
++			       ? _NEWINDEX
++			       : (begy + oind + win->_yoffset));
+ 	}
+ #endif /* USE_SCROLL_HINTS */
+ 
+ 	oline->firstchar = oline->lastchar = _NOCHANGE;
+-	if_USE_SCROLL_HINTS(oline->oldindex = i);
++	if_USE_SCROLL_HINTS(oline->oldindex = src_row);
+     }
+ 
+     if (win->_clear) {
+@@ -183,8 +279,10 @@
+     newscr->_leaveok = win->_leaveok;
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_UPDATE)
++    if (USE_TRACEF(TRACE_UPDATE)) {
+ 	_tracedump("newscr", newscr);
++	_nc_unlock_global(tracef);
++    }
+ #endif /* TRACE */
+     returnCode(OK);
+ }
+Index: ncurses/base/lib_restart.c
+Prereq:  1.6 
+--- ncurses-5.6/ncurses/base/lib_restart.c	2006-01-14 15:58:23.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_restart.c	2007-10-13 19:59:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -48,23 +48,22 @@
+ 
+ #include <term.h>		/* lines, columns, cur_term */
+ 
+-MODULE_ID("$Id: lib_restart.c,v 1.6 2006/01/14 15:58:23 tom Exp $")
++MODULE_ID("$Id: lib_restart.c,v 1.8 2007/10/13 19:59:47 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
+ {
+-    int saveecho = SP->_echo;
+-    int savecbreak = SP->_cbreak;
+-    int saveraw = SP->_raw;
+-    int savenl = SP->_nl;
+     int result;
+ 
+     T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
+ 
+-    _nc_handle_sigwinch(0);
+     if (setupterm(termp, filenum, errret) != OK) {
+ 	result = ERR;
+-    } else {
++    } else if (SP != 0) {
++	int saveecho = SP->_echo;
++	int savecbreak = SP->_cbreak;
++	int saveraw = SP->_raw;
++	int savenl = SP->_nl;
+ 
+ 	if (saveecho)
+ 	    echo();
+@@ -93,7 +92,8 @@
+ #endif
+ 
+ 	result = OK;
++    } else {
++	result = ERR;
+     }
+-    _nc_handle_sigwinch(1);
+     returnCode(result);
+ }
+Index: ncurses/base/lib_screen.c
+Prereq:  1.29 
+--- ncurses-5.6/ncurses/base/lib_screen.c	2006-05-27 19:21:38.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_screen.c	2007-03-10 23:20:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_screen.c,v 1.29 2006/05/27 19:21:38 tom Exp $")
++MODULE_ID("$Id: lib_screen.c,v 1.30 2007/03/10 23:20:41 tom Exp $")
+ 
+ NCURSES_EXPORT(WINDOW *)
+ getwin(FILE *filep)
+@@ -146,7 +146,10 @@
+ 	returnCode(ERR);
+     } else {
+ 	delwin(newscr);
+-	SP->_newscr = newscr = getwin(fp);
++	SP->_newscr = getwin(fp);
++#if !USE_REENTRANT
++	newscr = SP->_newscr;
++#endif
+ 	(void) fclose(fp);
+ 	returnCode(OK);
+     }
+@@ -184,7 +187,10 @@
+ 	returnCode(ERR);
+     } else {
+ 	delwin(curscr);
+-	SP->_curscr = curscr = getwin(fp);
++	SP->_curscr = getwin(fp);
++#if !USE_REENTRANT
++	curscr = SP->_curscr;
++#endif
+ 	(void) fclose(fp);
+ 	returnCode(OK);
+     }
+@@ -199,7 +205,10 @@
+ 	returnCode(ERR);
+     } else {
+ 	delwin(newscr);
+-	SP->_newscr = newscr = dupwin(curscr);
++	SP->_newscr = dupwin(curscr);
++#if !USE_REENTRANT
++	newscr = SP->_newscr;
++#endif
+ 	returnCode(OK);
+     }
+ }
+Index: ncurses/base/lib_set_term.c
+Prereq:  1.91 
+--- ncurses-5.6/ncurses/base/lib_set_term.c	2006-05-20 14:58:02.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_set_term.c	2007-09-08 21:23:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -44,7 +44,7 @@
+ #include <term.h>		/* cur_term */
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_set_term.c,v 1.91 2006/05/20 14:58:02 tom Exp $")
++MODULE_ID("$Id: lib_set_term.c,v 1.100 2007/09/08 21:23:43 tom Exp $")
+ 
+ NCURSES_EXPORT(SCREEN *)
+ set_term(SCREEN *screenp)
+@@ -53,22 +53,28 @@
+ 
+     T((T_CALLED("set_term(%p)"), screenp));
+ 
++    _nc_lock_global(set_SP);
++
+     oldSP = SP;
+     _nc_set_screen(screenp);
+ 
+     set_curterm(SP->_term);
++#if !USE_REENTRANT
+     curscr = SP->_curscr;
+     newscr = SP->_newscr;
+     stdscr = SP->_stdscr;
+     COLORS = SP->_color_count;
+     COLOR_PAIRS = SP->_pair_count;
++#endif
++
++    _nc_unlock_global(set_SP);
+ 
+     T((T_RETURN("%p"), oldSP));
+     return (oldSP);
+ }
+ 
+ static void
+-_nc_free_keytry(struct tries *kt)
++_nc_free_keytry(TRIES * kt)
+ {
+     if (kt != 0) {
+ 	_nc_free_keytry(kt->child);
+@@ -88,6 +94,7 @@
+ 
+     T((T_CALLED("delscreen(%p)"), sp));
+ 
++    _nc_lock_global(set_SP);
+     while (*scan) {
+ 	if (*scan == sp) {
+ 	    *scan = sp->_next_screen;
+@@ -152,20 +159,20 @@
+      * multiple references in different screens).
+      */
+     if (sp == SP) {
++#if !USE_REENTRANT
+ 	curscr = 0;
+ 	newscr = 0;
+ 	stdscr = 0;
+ 	COLORS = 0;
+ 	COLOR_PAIRS = 0;
++#endif
+ 	_nc_set_screen(0);
+     }
++    _nc_unlock_global(set_SP);
++
+     returnVoid;
+ }
+ 
+-static ripoff_t rippedoff[5];
+-static ripoff_t *rsp = rippedoff;
+-#define N_RIPS SIZEOF(SP->_rippedoff)
+-
+ static bool
+ no_mouse_event(SCREEN *sp GCC_UNUSED)
+ {
+@@ -214,17 +221,20 @@
+ }
+ #endif
+ 
++#define ripoff_sp	_nc_prescreen.rsp
++#define ripoff_stack	_nc_prescreen.rippedoff
++
+ /* OS-independent screen initializations */
+ NCURSES_EXPORT(int)
+-_nc_setupscreen(int slines,
+-		int scolumns,
++_nc_setupscreen(int slines GCC_UNUSED,
++		int scolumns GCC_UNUSED,
+ 		FILE *output,
+ 		bool filtered,
+ 		int slk_format)
+ {
+     int bottom_stolen = 0;
+-    int i;
+     bool support_cookies = USE_XMC_SUPPORT;
++    ripoff_t *rop;
+ 
+     T((T_CALLED("_nc_setupscreen(%d, %d, %p, %d, %d)"),
+        slines, scolumns, output, filtered, slk_format));
+@@ -243,12 +253,20 @@
+     if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0)
+ 	returnCode(ERR);
+ 
++    /*
++     * We should always check the screensize, just in case.
++     */
++    _nc_get_screensize(&slines, &scolumns);
++    SET_LINES(slines);
++    SET_COLS(scolumns);
++    T((T_CREATE("screen %s %dx%d"), termname(), LINES, COLS));
++
+     SP->_filtered = filtered;
+ 
+     /* implement filter mode */
+     if (filtered) {
+-	slines = LINES = 1;
+-
++	slines = 1;
++	SET_LINES(slines);
+ 	clear_screen = 0;
+ 	cursor_down = parm_down_cursor = 0;
+ 	cursor_address = 0;
+@@ -258,18 +276,6 @@
+ 	cursor_home = carriage_return;
+ 	T(("filter screensize %dx%d", LINES, COLS));
+     }
+-
+-    /* If we must simulate soft labels, grab off the line to be used.
+-       We assume that we must simulate, if it is none of the standard
+-       formats (4-4  or 3-2-3) for which there may be some hardware
+-       support. */
+-    if (num_labels <= 0 || !SLK_STDFMT(slk_format)) {
+-	if (slk_format) {
+-	    if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
+-				      _nc_slk_initialize))
+-		returnCode(ERR);
+-	}
+-    }
+ #ifdef __DJGPP__
+     T(("setting output mode to binary"));
+     fflush(output);
+@@ -484,6 +490,15 @@
+     }
+ 
+     /* initialize normal acs before wide, since we use mapping in the latter */
++#if !USE_WIDEC_SUPPORT
++    if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
++	acs_chars = NULL;
++	ena_acs = NULL;
++	enter_alt_charset_mode = NULL;
++	exit_alt_charset_mode = NULL;
++	set_attributes = NULL;
++    }
++#endif
+     _nc_init_acs();
+ #if USE_WIDEC_SUPPORT
+     _nc_init_wacs();
+@@ -506,15 +521,17 @@
+     SP->newhash = 0;
+ 
+     T(("creating newscr"));
+-    if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
++    if ((SP->_newscr = newwin(slines, scolumns, 0, 0)) == 0)
+ 	returnCode(ERR);
+ 
+     T(("creating curscr"));
+-    if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
++    if ((SP->_curscr = newwin(slines, scolumns, 0, 0)) == 0)
+ 	returnCode(ERR);
+ 
+-    SP->_newscr = newscr;
+-    SP->_curscr = curscr;
++#if !USE_REENTRANT
++    newscr = SP->_newscr;
++    curscr = SP->_curscr;
++#endif
+ #if USE_SIZECHANGE
+     SP->_resize = resizeterm;
+ #endif
+@@ -525,46 +542,63 @@
+     def_shell_mode();
+     def_prog_mode();
+ 
+-    for (i = 0, rsp = rippedoff; rsp->line && (i < (int) N_RIPS); rsp++, i++) {
+-	T(("ripping off line %d at %s", i, rsp->line < 0 ? "bottom" : "top"));
+-	SP->_rippedoff[i] = rippedoff[i];
+-	if (rsp->hook) {
+-	    int count = (rsp->line < 0) ? -rsp->line : rsp->line;
+-
+-	    SP->_rippedoff[i].w = newwin(count,
+-					 scolumns,
+-					 ((rsp->line < 0)
+-					  ? SP->_lines_avail - count
+-					  : 0),
+-					 0);
+-	    if (SP->_rippedoff[i].w != 0)
+-		SP->_rippedoff[i].hook(SP->_rippedoff[i].w, scolumns);
++    for (rop = ripoff_stack;
++	 rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS;
++	 rop++) {
++
++	/* If we must simulate soft labels, grab off the line to be used.
++	   We assume that we must simulate, if it is none of the standard
++	   formats (4-4 or 3-2-3) for which there may be some hardware
++	   support. */
++	if (rop->hook == _nc_slk_initialize)
++	    if (!(num_labels <= 0 || !SLK_STDFMT(slk_format)))
++		continue;
++	if (rop->hook) {
++	    int count;
++	    WINDOW *w;
++
++	    count = (rop->line < 0) ? -rop->line : rop->line;
++	    T(("ripping off %i lines at %s", count,
++	       ((rop->line < 0)
++		? "bottom"
++		: "top")));
++
++	    w = newwin(count, scolumns,
++		       ((rop->line < 0)
++			? SP->_lines_avail - count
++			: 0),
++		       0);
++	    if (w)
++		rop->hook(w, scolumns);
+ 	    else
+ 		returnCode(ERR);
+-	    if (rsp->line < 0)
++	    if (rop->line < 0)
+ 		bottom_stolen += count;
+ 	    else
+ 		SP->_topstolen += count;
+ 	    SP->_lines_avail -= count;
+ 	}
+-	rsp->line = 0;
+     }
+-    SP->_rip_count = i;
+     /* reset the stack */
+-    rsp = rippedoff;
++    ripoff_sp = ripoff_stack;
+ 
+     T(("creating stdscr"));
+     assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
+-    if ((stdscr = newwin(LINES = SP->_lines_avail, scolumns, 0, 0)) == 0)
++    if ((SP->_stdscr = newwin(SP->_lines_avail, scolumns, 0, 0)) == 0)
+ 	returnCode(ERR);
+-    SP->_stdscr = stdscr;
++
++    SET_LINES(SP->_lines_avail);
++#if !USE_REENTRANT
++    stdscr = SP->_stdscr;
++#endif
+ 
+     returnCode(OK);
+ }
+ 
+-/* The internal implementation interprets line as the number of
+-   lines to rip off from the top or bottom.
+-   */
++/*
++ * The internal implementation interprets line as the number of lines to rip
++ * off from the top or bottom.
++ */
+ NCURSES_EXPORT(int)
+ _nc_ripoffline(int line, int (*init) (WINDOW *, int))
+ {
+@@ -572,13 +606,14 @@
+ 
+     if (line != 0) {
+ 
+-	if (rsp >= rippedoff + N_RIPS)
++	if (ripoff_sp == 0)
++	    ripoff_sp = ripoff_stack;
++	if (ripoff_sp >= ripoff_stack + N_RIPS)
+ 	    returnCode(ERR);
+ 
+-	rsp->line = line;
+-	rsp->hook = init;
+-	rsp->w = 0;
+-	rsp++;
++	ripoff_sp->line = line;
++	ripoff_sp->hook = init;
++	ripoff_sp++;
+     }
+ 
+     returnCode(OK);
+Index: ncurses/base/lib_slkinit.c
+Prereq:  1.5 
+--- ncurses-5.6/ncurses/base/lib_slkinit.c	2000-12-10 02:43:27.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_slkinit.c	2007-05-12 18:14:21.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
++ * Copyright (c) 1998-2000,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -38,14 +38,17 @@
+  */
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_slkinit.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
++MODULE_ID("$Id: lib_slkinit.c,v 1.6 2007/05/12 18:14:21 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ slk_init(int format)
+ {
++    int code = ERR;
++
+     T((T_CALLED("slk_init(%d)"), format));
+-    if (format < 0 || format > 3)
+-	returnCode(ERR);
+-    _nc_slk_format = 1 + format;
+-    returnCode(OK);
++    if (format >= 0 && format <= 3 && !_nc_slk_format) {
++	_nc_slk_format = 1 + format;
++	code = _nc_ripoffline(-SLK_LINES(_nc_slk_format), _nc_slk_initialize);
++    }
++    returnCode(code);
+ }
+Index: ncurses/base/lib_slkset.c
+Prereq:  1.16 
+--- ncurses-5.6/ncurses/base/lib_slkset.c	2006-12-17 19:47:09.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_slkset.c	2007-10-13 20:08:46.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -44,12 +44,12 @@
+ #endif
+ #endif
+ 
+-MODULE_ID("$Id: lib_slkset.c,v 1.16 2006/12/17 19:47:09 tom Exp $")
++MODULE_ID("$Id: lib_slkset.c,v 1.17 2007/10/13 20:08:46 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ slk_set(int i, const char *astr, int format)
+ {
+-    SLK *slk = SP->_slk;
++    SLK *slk;
+     int offset;
+     int numchrs;
+     int numcols;
+@@ -59,7 +59,12 @@
+ 
+     T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
+ 
+-    if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
++    if (SP == 0
++	|| (slk = SP->_slk) == 0
++	|| i < 1
++	|| i > slk->labcnt
++	|| format < 0
++	|| format > 2)
+ 	returnCode(ERR);
+     if (str == NULL)
+ 	str = "";
+Index: ncurses/base/lib_ungetch.c
+Prereq:  1.8 
+--- ncurses-5.6/ncurses/base/lib_ungetch.c	2002-08-24 22:08:48.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_ungetch.c	2007-09-29 21:49:56.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2002,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_ungetch.c,v 1.8 2002/08/24 22:08:48 tom Exp $")
++MODULE_ID("$Id: lib_ungetch.c,v 1.9 2007/09/29 21:49:56 tom Exp $")
+ 
+ #include <fifo_defs.h>
+ 
+@@ -72,8 +72,10 @@
+     SP->_fifo[head] = ch;
+     T(("ungetch %s ok", _tracechar(ch)));
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_IEVENT)
++    if (USE_TRACEF(TRACE_IEVENT)) {
+ 	_nc_fifo_dump();
++	_nc_unlock_global(tracef);
++    }
+ #endif
+     returnCode(OK);
+ }
+Index: ncurses/base/lib_window.c
+Prereq:  1.22 
+--- ncurses-5.6/ncurses/base/lib_window.c	2006-05-27 19:21:19.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/lib_window.c	2007-06-30 23:36:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,7 +39,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_window.c,v 1.22 2006/05/27 19:21:19 tom Exp $")
++MODULE_ID("$Id: lib_window.c,v 1.23 2007/06/30 23:36:11 tom Exp $")
+ 
+ NCURSES_EXPORT(void)
+ _nc_synchook(WINDOW *win)
+@@ -149,7 +149,7 @@
+ 		/* left and right character in child coordinates */
+ 		int left = pp->_line[win->_pary + y].firstchar - win->_parx;
+ 		int right = pp->_line[win->_pary + y].lastchar - win->_parx;
+-		/* The change maybe outside the childs range */
++		/* The change may be outside the child's range */
+ 		if (left < 0)
+ 		    left = 0;
+ 		if (right > win->_maxx)
+Index: ncurses/base/memmove.c
+Prereq:  1.4 
+--- ncurses-5.6/ncurses/base/memmove.c	2000-12-10 02:43:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/memmove.c	2007-08-11 17:12:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
++ * Copyright (c) 1998-2000,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: memmove.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
++MODULE_ID("$Id: memmove.c,v 1.5 2007/08/11 17:12:43 tom Exp $")
+ 
+ /****************************************************************************
+  *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
+@@ -51,7 +51,7 @@
+ 	    }
+ 	    for (j = 0; j < n; j++)
+ 		bfr[j] = SRC[j];
+-	    SRC = bfr;
++	    s2 = bfr;
+ 	}
+ 	while (n-- != 0)
+ 	    DST[n] = SRC[n];
+Index: ncurses/base/resizeterm.c
+Prereq:  1.18 
+--- ncurses-5.6/ncurses/base/resizeterm.c	2006-10-14 20:43:31.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/resizeterm.c	2007-10-13 20:12:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,12 +41,24 @@
+ #include <curses.priv.h>
+ #include <term.h>
+ 
+-MODULE_ID("$Id: resizeterm.c,v 1.18 2006/10/14 20:43:31 tom Exp $")
++MODULE_ID("$Id: resizeterm.c,v 1.23 2007/10/13 20:12:13 tom Exp $")
+ 
+ #define stolen_lines (screen_lines - SP->_lines_avail)
+ 
++/*
++ * If we're trying to be reentrant, do not want any local statics.
++ */
++#if USE_REENTRANT
++#define EXTRA_ARGS ,     CurLines,     CurCols
++#define EXTRA_DCLS , int CurLines, int CurCols
++#else
+ static int current_lines;
+ static int current_cols;
++#define CurLines current_lines
++#define CurCols  current_cols
++#define EXTRA_ARGS		/* nothing */
++#define EXTRA_DCLS		/* nothing */
++#endif
+ 
+ #ifdef TRACE
+ static void
+@@ -121,10 +133,10 @@
+  * FIXME: must adjust position so it's within the parent!
+  */
+ static int
+-adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen)
++adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
+ {
+     int result;
+-    int bottom = current_lines + SP->_topstolen - stolen;
++    int bottom = CurLines + SP->_topstolen - stolen;
+     int myLines = win->_maxy + 1;
+     int myCols = win->_maxx + 1;
+ 
+@@ -134,13 +146,13 @@
+        (long) getbegy(win), (long) getbegx(win)));
+ 
+     if (win->_begy >= bottom) {
+-	win->_begy += (ToLines - current_lines);
++	win->_begy += (ToLines - CurLines);
+     } else {
+-	if (myLines == current_lines - stolen
+-	    && ToLines != current_lines)
++	if (myLines == CurLines - stolen
++	    && ToLines != CurLines)
+ 	    myLines = ToLines - stolen;
+-	else if (myLines == current_lines
+-		 && ToLines != current_lines)
++	else if (myLines == CurLines
++		 && ToLines != CurLines)
+ 	    myLines = ToLines;
+     }
+ 
+@@ -150,12 +162,12 @@
+     if (myCols > ToCols)
+ 	myCols = ToCols;
+ 
+-    if (myLines == current_lines
+-	&& ToLines != current_lines)
++    if (myLines == CurLines
++	&& ToLines != CurLines)
+ 	myLines = ToLines;
+ 
+-    if (myCols == current_cols
+-	&& ToCols != current_cols)
++    if (myCols == CurCols
++	&& ToCols != CurCols)
+ 	myCols = ToCols;
+ 
+     result = wresize(win, myLines, myCols);
+@@ -167,7 +179,7 @@
+  * children, decrease those to fit, then decrease the containing window, etc.
+  */
+ static int
+-decrease_size(int ToLines, int ToCols, int stolen)
++decrease_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
+ {
+     bool found;
+     int depth = 0;
+@@ -185,7 +197,8 @@
+ 	    if (!(win->_flags & _ISPAD)) {
+ 		if (child_depth(win) == depth) {
+ 		    found = TRUE;
+-		    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
++		    if (adjust_window(win, ToLines, ToCols,
++				      stolen EXTRA_ARGS) != OK)
+ 			returnCode(ERR);
+ 		}
+ 	    }
+@@ -200,7 +213,7 @@
+  * parent, increase those to fit, then increase the contained window, etc.
+  */
+ static int
+-increase_size(int ToLines, int ToCols, int stolen)
++increase_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
+ {
+     bool found;
+     int depth = 0;
+@@ -218,7 +231,8 @@
+ 	    if (!(win->_flags & _ISPAD)) {
+ 		if (parent_depth(win) == depth) {
+ 		    found = TRUE;
+-		    if (adjust_window(win, ToLines, ToCols, stolen) != OK)
++		    if (adjust_window(win, ToLines, ToCols,
++				      stolen EXTRA_ARGS) != OK)
+ 			returnCode(ERR);
+ 		}
+ 	    }
+@@ -235,36 +249,42 @@
+ NCURSES_EXPORT(int)
+ resize_term(int ToLines, int ToCols)
+ {
+-    int result = OK;
+-    int was_stolen = (screen_lines - SP->_lines_avail);
++    int result = OK EXTRA_ARGS;
++    int was_stolen;
+ 
+     T((T_CALLED("resize_term(%d,%d) old(%d,%d)"),
+        ToLines, ToCols,
+        screen_lines, screen_columns));
+ 
++    if (SP == 0) {
++	returnCode(ERR);
++    }
++    was_stolen = (screen_lines - SP->_lines_avail);
+     if (is_term_resized(ToLines, ToCols)) {
+-	int myLines = current_lines = screen_lines;
+-	int myCols = current_cols = screen_columns;
++	int myLines = CurLines = screen_lines;
++	int myCols = CurCols = screen_columns;
+ 
+ #ifdef TRACE
+-	if (_nc_tracing & TRACE_UPDATE)
++	if (USE_TRACEF(TRACE_UPDATE)) {
+ 	    show_window_sizes("before");
++	    _nc_unlock_global(tracef);
++	}
+ #endif
+ 	if (ToLines > screen_lines) {
+-	    increase_size(myLines = ToLines, myCols, was_stolen);
+-	    current_lines = myLines;
+-	    current_cols = myCols;
++	    increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
++	    CurLines = myLines;
++	    CurCols = myCols;
+ 	}
+ 
+ 	if (ToCols > screen_columns) {
+-	    increase_size(myLines, myCols = ToCols, was_stolen);
+-	    current_lines = myLines;
+-	    current_cols = myCols;
++	    increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
++	    CurLines = myLines;
++	    CurCols = myCols;
+ 	}
+ 
+ 	if (ToLines < myLines ||
+ 	    ToCols < myCols) {
+-	    decrease_size(ToLines, ToCols, was_stolen);
++	    decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS);
+ 	}
+ 
+ 	screen_lines = lines = ToLines;
+@@ -279,10 +299,11 @@
+ 	    FreeAndNull(SP->newhash);
+ 	}
+ #ifdef TRACE
+-	if (_nc_tracing & TRACE_UPDATE) {
+-	    LINES = ToLines - was_stolen;
+-	    COLS = ToCols;
++	if (USE_TRACEF(TRACE_UPDATE)) {
++	    SET_LINES(ToLines - was_stolen);
++	    SET_COLS(ToCols);
+ 	    show_window_sizes("after");
++	    _nc_unlock_global(tracef);
+ 	}
+ #endif
+     }
+@@ -291,8 +312,8 @@
+      * Always update LINES, to allow for call from lib_doupdate.c which
+      * needs to have the count adjusted by the stolen (ripped off) lines.
+      */
+-    LINES = ToLines - was_stolen;
+-    COLS = ToCols;
++    SET_LINES(ToLines - was_stolen);
++    SET_COLS(ToCols);
+ 
+     returnCode(result);
+ }
+@@ -308,22 +329,25 @@
+ NCURSES_EXPORT(int)
+ resizeterm(int ToLines, int ToCols)
+ {
+-    int result = OK;
+-
+-    SP->_sig_winch = FALSE;
++    int result = ERR;
+ 
+     T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
+        ToLines, ToCols,
+        screen_lines, screen_columns));
+ 
+-    if (is_term_resized(ToLines, ToCols)) {
++    if (SP != 0) {
++	result = OK;
++	SP->_sig_winch = FALSE;
++
++	if (is_term_resized(ToLines, ToCols)) {
+ 
+ #if USE_SIGWINCH
+-	ungetch(KEY_RESIZE);	/* so application can know this */
+-	clearok(curscr, TRUE);	/* screen contents are unknown */
++	    ungetch(KEY_RESIZE);	/* so application can know this */
++	    clearok(curscr, TRUE);	/* screen contents are unknown */
+ #endif
+ 
+-	result = resize_term(ToLines, ToCols);
++	    result = resize_term(ToLines, ToCols);
++	}
+     }
+ 
+     returnCode(result);
+Index: ncurses/base/safe_sprintf.c
+Prereq:  1.18 
+--- ncurses-5.6/ncurses/base/safe_sprintf.c	2003-08-09 21:52:04.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/safe_sprintf.c	2007-04-21 22:28:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -33,7 +33,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: safe_sprintf.c,v 1.18 2003/08/09 21:52:04 tom Exp $")
++MODULE_ID("$Id: safe_sprintf.c,v 1.20 2007/04/21 22:28:06 tom Exp $")
+ 
+ #if USE_SAFE_SPRINTF
+ 
+@@ -207,56 +207,58 @@
+ }
+ #endif
+ 
++#define my_buffer _nc_globals.safeprint_buf
++#define my_length _nc_globals.safeprint_used
++
+ /*
+  * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
+  */
+ NCURSES_EXPORT(char *)
+ _nc_printf_string(const char *fmt, va_list ap)
+ {
+-    static char *buf;
+-    static size_t used;
+     char *result = 0;
+ 
+     if (fmt != 0) {
+ #if USE_SAFE_SPRINTF
+ 	int len = _nc_printf_length(fmt, ap);
+ 
+-	if ((int) used < len + 1) {
+-	    used = 2 * (len + 1);
+-	    buf = typeRealloc(char, used, buf);
++	if ((int) my_length < len + 1) {
++	    my_length = 2 * (len + 1);
++	    my_buffer = typeRealloc(char, my_length, my_buffer);
+ 	}
+-	if (buf != 0) {
+-	    *buf = '\0';
++	if (my_buffer != 0) {
++	    *my_buffer = '\0';
+ 	    if (len >= 0) {
+-		vsprintf(buf, fmt, ap);
++		vsprintf(my_buffer, fmt, ap);
+ 	    }
+-	    result = buf;
++	    result = my_buffer;
+ 	}
+ #else
+-	static int rows, cols;
++#define MyCols _nc_globals.safeprint_cols
++#define MyRows _nc_globals.safeprint_rows
+ 
+-	if (screen_lines > rows || screen_columns > cols) {
+-	    if (screen_lines > rows)
+-		rows = screen_lines;
+-	    if (screen_columns > cols)
+-		cols = screen_columns;
+-	    used = (rows * (cols + 1)) + 1;
+-	    buf = typeRealloc(char, used, buf);
++	if (screen_lines > MyRows || screen_columns > MyCols) {
++	    if (screen_lines > MyRows)
++		MyRows = screen_lines;
++	    if (screen_columns > MyCols)
++		MyCols = screen_columns;
++	    my_length = (MyRows * (MyCols + 1)) + 1;
++	    my_buffer = typeRealloc(char, my_length, my_buffer);
+ 	}
+ 
+-	if (buf != 0) {
++	if (my_buffer != 0) {
+ # if HAVE_VSNPRINTF
+-	    vsnprintf(buf, used, fmt, ap);	/* GNU extension */
++	    vsnprintf(my_buffer, my_length, fmt, ap);	/* GNU extension */
+ # else
+-	    vsprintf(buf, fmt, ap);	/* ANSI */
++	    vsprintf(my_buffer, fmt, ap);	/* ANSI */
+ # endif
+-	    result = buf;
++	    result = my_buffer;
+ 	}
+ #endif
+-    } else if (buf != 0) {	/* see _nc_freeall() */
+-	free(buf);
+-	buf = 0;
+-	used = 0;
++    } else if (my_buffer != 0) {	/* see _nc_freeall() */
++	free(my_buffer);
++	my_buffer = 0;
++	my_length = 0;
+     }
+     return result;
+ }
+Index: ncurses/base/tries.c
+Prereq:  1.22 
+--- ncurses-5.6/ncurses/base/tries.c	2005-11-26 20:09:18.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/tries.c	2007-09-29 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,16 +39,16 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: tries.c,v 1.22 2005/11/26 20:09:18 tom Exp $")
++MODULE_ID("$Id: tries.c,v 1.25 2007/09/29 20:37:13 tom Exp $")
+ 
+ /*
+  * Expand a keycode into the string that it corresponds to, returning null if
+  * no match was found, otherwise allocating a string of the result.
+  */
+ NCURSES_EXPORT(char *)
+-_nc_expand_try(struct tries *tree, unsigned code, int *count, size_t len)
++_nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len)
+ {
+-    struct tries *ptr = tree;
++    TRIES *ptr = tree;
+     char *result = 0;
+ 
+     if (code != 0) {
+@@ -68,11 +68,13 @@
+ 	}
+     }
+     if (result != 0) {
+-	if ((result[len] = ptr->ch) == 0)
++	if (ptr != 0 && (result[len] = ptr->ch) == 0)
+ 	    *((unsigned char *) (result + len)) = 128;
+ #ifdef TRACE
+-	if (len == 0 && _nc_tracing != 0)
++	if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) {
+ 	    _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
++	    _nc_unlock_global(tracef);
++	}
+ #endif
+     }
+     return result;
+@@ -83,7 +85,7 @@
+  * true if the code was found/removed.
+  */
+ NCURSES_EXPORT(int)
+-_nc_remove_key(struct tries **tree, unsigned code)
++_nc_remove_key(TRIES ** tree, unsigned code)
+ {
+     T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code));
+ 
+@@ -99,7 +101,7 @@
+ 		/* don't cut the whole sub-tree */
+ 		(*tree)->value = 0;
+ 	    } else {
+-		struct tries *to_free = *tree;
++		TRIES *to_free = *tree;
+ 		*tree = (*tree)->sibling;
+ 		free(to_free);
+ 	    }
+@@ -115,7 +117,7 @@
+  * true if the string was found/removed.
+  */
+ NCURSES_EXPORT(int)
+-_nc_remove_string(struct tries **tree, const char *string)
++_nc_remove_string(TRIES ** tree, const char *string)
+ {
+     T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string)));
+ 
+@@ -127,7 +129,7 @@
+ 	    if (string[1] != 0)
+ 		returnCode(_nc_remove_string(&(*tree)->child, string + 1));
+ 	    if ((*tree)->child == 0) {
+-		struct tries *to_free = *tree;
++		TRIES *to_free = *tree;
+ 		*tree = (*tree)->sibling;
+ 		free(to_free);
+ 		returnCode(TRUE);
+Index: ncurses/base/use_window.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/base/use_window.c	2007-10-20 19:57:55.000000000 +0000
+@@ -0,0 +1,80 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++
++/****************************************************************************
++ *     Author: Thomas E. Dickey                        2007                 *
++ ****************************************************************************/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: use_window.c,v 1.2 2007/10/20 19:57:55 tom Exp $")
++
++#ifdef USE_PTHREADS
++NCURSES_EXPORT(void)
++_nc_lock_window(WINDOW *win)
++{
++    WINDOWLIST *p;
++
++    _nc_lock_global(windowlist);
++    for (p = _nc_windows; p != 0; p = p->next) {
++	if (&(p->win) == win) {
++	    pthread_mutex_lock(&(p->mutex_use_window));
++	    break;
++	}
++    }
++    _nc_unlock_global(windowlist);
++}
++
++NCURSES_EXPORT(void)
++_nc_unlock_window(WINDOW *win)
++{
++    WINDOWLIST *p;
++
++    _nc_lock_global(windowlist);
++    for (p = _nc_windows; p != 0; p = p->next) {
++	if (&(p->win) == win) {
++	    pthread_mutex_unlock(&(p->mutex_use_window));
++	    break;
++	}
++    }
++    _nc_unlock_global(windowlist);
++}
++#endif
++
++NCURSES_EXPORT(int)
++use_window(WINDOW *win, NCURSES_CALLBACK func, void *data)
++{
++    int code = OK;
++
++    T((T_CALLED("use_window(%p,%p,%p)"), win, func, data));
++    _nc_lock_window(win);
++    code = func(win, data);
++    _nc_unlock_window(win);
++
++    returnCode(code);
++}
+Index: ncurses/base/wresize.c
+Prereq:  1.24 
+--- ncurses-5.6/ncurses/base/wresize.c	2006-10-14 20:43:31.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/base/wresize.c	2007-09-29 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,13 +32,13 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: wresize.c,v 1.24 2006/10/14 20:43:31 tom Exp $")
++MODULE_ID("$Id: wresize.c,v 1.26 2007/09/29 20:37:13 tom Exp $")
+ 
+ static int
+ cleanup_lines(struct ldat *data, int length)
+ {
+     while (--length >= 0)
+-	free(data->text);
++	free(data[length].text);
+     free(data);
+     return ERR;
+ }
+@@ -96,8 +96,10 @@
+ 			  (long) win->_begy, (long) win->_begx,
+ 			  (long) win->_maxy, (long) win->_maxx,
+ 			  (long) win->_regtop, (long) win->_regbottom));
+-	if (_nc_tracing & TRACE_UPDATE)
++	if (USE_TRACEF(TRACE_UPDATE)) {
+ 	    _tracedump("...before", win);
++	    _nc_unlock_global(tracef);
++	}
+     }
+ #endif
+ 
+@@ -232,8 +234,10 @@
+ 		      (long) win->_begy, (long) win->_begx,
+ 		      (long) win->_maxy, (long) win->_maxx,
+ 		      (long) win->_regtop, (long) win->_regbottom));
+-    if (_nc_tracing & TRACE_UPDATE)
++    if (USE_TRACEF(TRACE_UPDATE)) {
+ 	_tracedump("...after:", win);
++	_nc_unlock_global(tracef);
++    }
+ #endif
+     returnCode(OK);
+ }
+Index: ncurses/curses.priv.h
+Prereq:  1.314 
+--- ncurses-5.6/ncurses/curses.priv.h	2006-12-10 00:55:14.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/curses.priv.h	2007-11-25 00:57:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ 
+ /*
+- * $Id: curses.priv.h,v 1.314 2006/12/10 00:55:14 tom Exp $
++ * $Id: curses.priv.h,v 1.351 2007/11/25 00:57:29 tom Exp $
+  *
+  *	curses.priv.h
+  *
+@@ -202,16 +202,20 @@
+  * delays and expansion in raw mode.
+  */
+ 
+-struct tries {
+-	struct tries    *child;     /* ptr to child.  NULL if none          */
+-	struct tries    *sibling;   /* ptr to sibling.  NULL if none        */
++#define TRIES struct tries
++typedef TRIES {
++	TRIES    *child;            /* ptr to child.  NULL if none          */
++	TRIES    *sibling;          /* ptr to sibling.  NULL if none        */
+ 	unsigned char    ch;        /* character at this node               */
+ 	unsigned short   value;     /* code of string so far.  0 if none.   */
+-};
++#undef TRIES
++} TRIES;
+ 
+ /*
+  * Common/troublesome character definitions
+  */
++#define StringOf(ch) {ch, 0}
++
+ #define L_BRACE '{'
+ #define R_BRACE '}'
+ #define S_QUOTE '\''
+@@ -248,6 +252,10 @@
+ #define wbkgrnd	    wbkgd
+ #endif
+ 
++#undef NCURSES_OPAQUE
++#define NCURSES_INTERNALS 1
++#define NCURSES_OPAQUE 0
++
+ #include <curses.h>	/* we'll use -Ipath directive to get the right one! */
+ #include <term.h>
+ #include <term_entry.h>
+@@ -284,6 +292,38 @@
+ #define GET_SCREEN_PAIR(s)	GetPair(SCREEN_ATTRS(s))
+ #define SET_SCREEN_PAIR(s,p)	SetPair(SCREEN_ATTRS(s), p)
+ 
++#if USE_REENTRANT
++#define SET_LINES(value) SP->_LINES = value
++#define SET_COLS(value)  SP->_COLS = value
++#else
++#define SET_LINES(value) LINES = value
++#define SET_COLS(value)  COLS = value
++#endif
++
++#ifdef USE_PTHREADS
++#if USE_REENTRANT
++#include <pthread.h>
++#define _nc_lock_global(name)	pthread_mutex_lock(&_nc_globals.mutex_##name)
++#define _nc_unlock_global(name)	pthread_mutex_unlock(&_nc_globals.mutex_##name)
++
++extern NCURSES_EXPORT(void) _nc_lock_window(WINDOW *);
++extern NCURSES_EXPORT(void) _nc_unlock_window(WINDOW *);
++
++#else
++#error POSIX threads requires --enable-reentrant option
++#endif
++#else
++#define _nc_lock_global(name)	/* nothing */
++#define _nc_unlock_global(name)	/* nothing */
++
++#define _nc_lock_window(name)	TRUE
++#define _nc_unlock_window(name)	/* nothing */
++
++#endif
++
++#define _nc_lock_screen(name)	/* nothing */
++#define _nc_unlock_screen(name)	/* nothing */
++
+ /*
+  * Definitions for color pairs
+  */
+@@ -366,7 +406,6 @@
+ typedef	struct {
+ 	int	line;		/* lines to take, < 0 => from bottom*/
+ 	int	(*hook)(WINDOW *, int); /* callback for user	    */
+-	WINDOW *w;		/* maybe we need this for cleanup   */
+ } ripoff_t;
+ 
+ #if USE_GPM_SUPPORT
+@@ -393,6 +432,186 @@
+ #endif /* HAVE_LIBDL */
+ #endif /* USE_GPM_SUPPORT */
+ 
++typedef struct {
++    long sequence;
++    bool last_used;
++    char *fix_sgr0;		/* this holds the filtered sgr0 string */
++    char *last_bufp;		/* help with fix_sgr0 leak */
++    TERMINAL *last_term;
++} TGETENT_CACHE;
++
++#define TGETENT_MAX 4
++
++/*
++ * State of tparm().
++ */
++#define STACKSIZE 20
++
++typedef struct {
++	union {
++		int	num;
++		char	*str;
++	} data;
++	bool num_type;
++} STACK_FRAME;
++
++#define NUM_VARS 26
++
++typedef struct {
++#ifdef TRACE
++	const char	*tname;
++#endif
++	const char	*tparam_base;
++
++	STACK_FRAME	stack[STACKSIZE];
++	int		stack_ptr;
++
++	char		*out_buff;
++	size_t		out_size;
++	size_t		out_used;
++
++	char		*fmt_buff;
++	size_t		fmt_size;
++
++	int		dynamic_var[NUM_VARS];
++	int		static_vars[NUM_VARS];
++} TPARM_STATE;
++
++typedef struct {
++    char *text;
++    size_t size;
++} TRACEBUF;
++
++/*
++ * The filesystem database normally uses a single-letter for the lower level
++ * of directories.  Use a hexadecimal code for filesystems which do not
++ * preserve mixed-case names.
++ */
++#if MIXEDCASE_FILENAMES
++#define LEAF_FMT "%c"
++#else
++#define LEAF_FMT "%02x"
++#endif
++
++/*
++ * TRACEMSE_FMT is no longer than 80 columns, there are 5 numbers that
++ * could at most have 10 digits, and the mask contains no more than 32 bits
++ * with each bit representing less than 15 characters.  Usually the whole
++ * string is less than 80 columns, but this buffer size is an absolute
++ * limit.
++ */
++#define TRACEMSE_MAX	(80 + (5 * 10) + (32 * 15))
++#define TRACEMSE_FMT	"id %2d  at (%2d, %2d, %2d) state %4lx = {" /* } */
++
++/*
++ * Global data which is not specific to a screen.
++ */
++typedef struct {
++	SIG_ATOMIC_T	have_sigwinch;
++	SIG_ATOMIC_T	cleanup_nested;
++
++	bool		init_signals;
++	bool		init_screen;
++
++	const char	*comp_sourcename;
++	char		*comp_termtype;
++
++	bool		have_tic_directory;
++	bool		keep_tic_directory;
++	const char	*tic_directory;
++
++	char		*dbi_list;
++	int		dbi_size;
++
++	char		*first_name;
++	char		**keyname_table;
++
++	char		*safeprint_buf;
++	size_t		safeprint_used;
++
++	TGETENT_CACHE	tgetent_cache[TGETENT_MAX];
++	int		tgetent_index;
++	long		tgetent_sequence;
++
++#if USE_HOME_TERMINFO
++	char		*home_terminfo;
++#endif
++
++#if !USE_SAFE_SPRINTF
++	int		safeprint_cols;
++	int		safeprint_rows;
++#endif
++
++#ifdef TRACE
++	bool		init_trace;
++	char		trace_fname[PATH_MAX];
++	int		trace_level;
++	FILE		*trace_fp;
++
++	char		*tracearg_buf;
++	size_t		tracearg_used;
++
++	TRACEBUF	*tracebuf_ptr;
++	size_t		tracebuf_used;
++
++	char		tracechr_buf[40];
++
++	char		*tracedmp_buf;
++	size_t		tracedmp_used;
++
++	char		tracemse_buf[TRACEMSE_MAX];
++
++	unsigned char	*tracetry_buf;
++	size_t		tracetry_used;
++
++#ifndef USE_TERMLIB
++	char		traceatr_color_buf[2][80];
++	int		traceatr_color_sel;
++	int		traceatr_color_last;
++#endif	/* USE_TERMLIB */
++
++#endif	/* TRACE */
++
++#ifdef USE_PTHREADS
++       pthread_mutex_t	mutex_set_SP;
++       pthread_mutex_t	mutex_use_screen;
++       pthread_mutex_t	mutex_use_window;
++       pthread_mutex_t	mutex_windowlist;
++       pthread_mutex_t	mutex_tst_tracef;
++       pthread_mutex_t	mutex_tracef;
++       int		nested_tracef;
++#endif
++} NCURSES_GLOBALS;
++
++extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
++
++#define N_RIPS 5
++
++/*
++ * Global data which is swept up into a SCREEN when one is created.
++ * It may be modified before the next SCREEN is created.
++ */
++typedef struct {
++	bool		use_env;
++	bool		filter_mode;
++	attr_t		previous_attr;
++	ripoff_t	rippedoff[N_RIPS];
++	ripoff_t	*rsp;
++	TPARM_STATE	tparm_state;
++	TTY		*saved_tty;	/* savetty/resetty information	    */
++#if BROKEN_LINKER || USE_REENTRANT
++	chtype		*real_acs_map;
++	int		_LINES;
++	int		_COLS;
++#ifdef TRACE
++	long		_outchars;
++	const char	*_tputs_trace;
++#endif
++#endif
++} NCURSES_PRESCREEN;
++
++extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
++
+ /*
+  * The SCREEN structure.
+  */
+@@ -405,20 +624,19 @@
+ 	bool		_buffered;	/* setvbuf uses _setbuf data	    */
+ 	int		_checkfd;	/* filedesc for typeahead check	    */
+ 	TERMINAL	*_term;		/* terminal type information	    */
+-	short		_lines;		/* screen lines			    */
+-	short		_columns;	/* screen columns		    */
++	TTY		_saved_tty;	/* savetty/resetty information	    */
++	NCURSES_SIZE_T	_lines;		/* screen lines			    */
++	NCURSES_SIZE_T	_columns;	/* screen columns		    */
+ 
+-	short		_lines_avail;	/* lines available for stdscr	    */
+-	short		_topstolen;	/* lines stolen from top	    */
+-	ripoff_t	_rippedoff[5];	/* list of lines stolen		    */
+-	int		_rip_count;	/* ...and total lines stolen	    */
++	NCURSES_SIZE_T	_lines_avail;	/* lines available for stdscr	    */
++	NCURSES_SIZE_T	_topstolen;	/* lines stolen from top	    */
+ 
+ 	WINDOW		*_curscr;	/* current screen		    */
+ 	WINDOW		*_newscr;	/* virtual screen to be updated to  */
+ 	WINDOW		*_stdscr;	/* screen's full-window context	    */
+ 
+-	struct tries	*_keytry;	/* "Try" for use with keypad mode   */
+-	struct tries	*_key_ok;	/* Disabled keys via keyok(,FALSE)  */
++	TRIES		*_keytry;	/* "Try" for use with keypad mode   */
++	TRIES		*_key_ok;	/* Disabled keys via keyok(,FALSE)  */
+ 	bool		_tried;		/* keypad mode was initialized	    */
+ 	bool		_keypad_on;	/* keypad mode is currently on	    */
+ 
+@@ -597,12 +815,25 @@
+ 	unsigned long	*oldhash, *newhash;
+ 	HASHMAP		*hashtab;
+ 	int		hashtab_len;
++	int		*_oldnum_list;
++	int		_oldnum_size;
+ 
+ 	bool		_cleanup;	/* cleanup after int/quit signal */
+ 	int		(*_outch)(int); /* output handler if not putc */
+ 
+ 	int		_legacy_coding;	/* see use_legacy_coding() */
+ 
++#if USE_REENTRANT
++	char		_ttytype[NAMESIZE];
++	int		_ESCDELAY;
++	int		_TABSIZE;
++	int		_LINES;
++	int		_COLS;
++#ifdef TRACE
++	int		_outchars;
++	const char	*_tputs_trace;
++#endif
++#endif
+ 	/*
+ 	 * ncurses/ncursesw are the same up to this point.
+ 	 */
+@@ -615,6 +846,7 @@
+ };
+ 
+ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
++extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
+ 
+ 	WINDOWLIST {
+ 	WINDOW	win;	/* first, so WINDOW_EXT() works */
+@@ -625,6 +857,9 @@
+ 	int addch_x;		/* x-position for addch_work[] */
+ 	int addch_y;		/* y-position for addch_work[] */
+ #endif
++#ifdef USE_PTHREADS
++	pthread_mutex_t	mutex_use_window;
++#endif
+ };
+ 
+ #define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
+@@ -691,11 +926,17 @@
+ #endif
+ 
+ #ifdef TRACE
+-#define TRACE_OUTCHARS(n) _nc_outchars += (n);
++#if USE_REENTRANT
++#define COUNT_OUTCHARS(n) _nc_count_outchars(n);
++#else
++#define COUNT_OUTCHARS(n) _nc_outchars += (n);
++#endif
+ #else
+-#define TRACE_OUTCHARS(n) /* nothing */
++#define COUNT_OUTCHARS(n) /* nothing */
+ #endif
+ 
++#define RESET_OUTCHARS() COUNT_OUTCHARS(-_nc_outchars)
++
+ #define UChar(c)	((unsigned char)(c))
+ #define ChCharOf(c)	((c) & (chtype)A_CHARTEXT)
+ #define ChAttrOf(c)	((c) & (chtype)A_ATTRIBUTES)
+@@ -705,7 +946,7 @@
+ #endif
+ 
+ #if USE_WIDEC_SUPPORT /* { */
+-#define isEILSEQ(status) ((status == (size_t)-1) && (errno == EILSEQ))
++#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
+ 
+ #define init_mb(state)	memset(&state, 0, sizeof(state))
+ 
+@@ -718,12 +959,26 @@
+ #define NulChar		0,0,0,0	/* FIXME: see CCHARW_MAX */
+ #define CharOf(c)	((c).chars[0])
+ #define AttrOf(c)	((c).attr)
+-#define AddAttr(c,a)	AttrOf(c) |= ((a) & A_ATTRIBUTES)
++
++#define AddAttr(c,a)	AttrOf(c) |=  ((a) & A_ATTRIBUTES)
+ #define RemAttr(c,a)	AttrOf(c) &= ~((a) & A_ATTRIBUTES)
+-#define SetAttr(c,a)	AttrOf(c) = ((a) & A_ATTRIBUTES)
++#define SetAttr(c,a)	AttrOf(c) =   ((a) & A_ATTRIBUTES) | WidecExt(c)
++
+ #define NewChar2(c,a)	{ a, { c, NulChar } NulColor }
+ #define NewChar(ch)	NewChar2(ChCharOf(ch), ChAttrOf(ch))
++
++#if CCHARW_MAX == 5
++#define CharEq(a,b)	(((a).attr == (b).attr) \
++		       && (a).chars[0] == (b).chars[0] \
++		       && (a).chars[1] == (b).chars[1] \
++		       && (a).chars[2] == (b).chars[2] \
++		       && (a).chars[3] == (b).chars[3] \
++		       && (a).chars[4] == (b).chars[4] \
++			if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
++#else
+ #define CharEq(a,b)	(!memcmp(&(a), &(b), sizeof(a)))
++#endif
++
+ #define SetChar(ch,c,a) do {							    \
+ 			    NCURSES_CH_T *_cp = &ch;				    \
+ 			    memset(_cp, 0, sizeof(ch));				    \
+@@ -741,7 +996,7 @@
+ #define PUTC(ch,b)	do { if(!isWidecExt(ch)) {				    \
+ 			if (Charable(ch)) {					    \
+ 			    fputc(CharOf(ch), b);				    \
+-			    TRACE_OUTCHARS(1);					    \
++			    COUNT_OUTCHARS(1);					    \
+ 			} else {						    \
+ 			    PUTC_INIT;						    \
+ 			    for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {	    \
+@@ -757,11 +1012,11 @@
+ 				}						    \
+ 				fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b);	    \
+ 			    }							    \
+-			    TRACE_OUTCHARS(PUTC_i);				    \
++			    COUNT_OUTCHARS(PUTC_i);				    \
+ 			} } } while (0)
+ 
+-#define BLANK		{ WA_NORMAL, {' '} NulColor }
+-#define ZEROS		{ WA_NORMAL, {'\0'} NulColor }
++#define BLANK		NewChar2(' ', WA_NORMAL)
++#define ZEROS		NewChar2('\0', WA_NORMAL)
+ #define ISBLANK(ch)	((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
+ 
+ 	/*
+@@ -887,6 +1142,12 @@
+ 
+ #ifdef TRACE
+ 
++#if USE_REENTRANT
++#define TPUTS_TRACE(s)	_nc_set_tputs_trace(s);
++#else
++#define TPUTS_TRACE(s)	_nc_tputs_trace = s;
++#endif
++
+ #define START_TRACE() \
+ 	if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \
+ 	    int t = _nc_getenv_num("NCURSES_TRACE"); \
+@@ -894,9 +1155,21 @@
+ 		trace((unsigned) t); \
+ 	}
+ 
+-#define TR(n, a)	if (_nc_tracing & (n)) _tracef a
++/*
++ * Many of the _tracef() calls use static buffers; lock the trace state before
++ * trying to fill them.
++ */
++#if USE_REENTRANT
++#define USE_TRACEF(mask) _nc_use_tracef(mask)
++extern NCURSES_EXPORT(int)	_nc_use_tracef (unsigned);
++extern NCURSES_EXPORT(void)	_nc_locked_tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
++#else
++#define USE_TRACEF(mask) (_nc_tracing & (mask))
++#define _nc_locked_tracef _tracef
++#endif
++
++#define TR(n, a)	if (USE_TRACEF(n)) _nc_locked_tracef a
+ #define T(a)		TR(TRACE_CALLS, a)
+-#define TPUTS_TRACE(s)	_nc_tputs_trace = s;
+ #define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
+ 
+ #define returnAttr(code)	TRACE_RETURN(code,attr_t)
+@@ -927,8 +1200,19 @@
+ extern NCURSES_EXPORT(unsigned)         _nc_retrace_unsigned (unsigned);
+ extern NCURSES_EXPORT(void *)           _nc_retrace_void_ptr (void *);
+ extern NCURSES_EXPORT(void)             _nc_fifo_dump (void);
++
++#if USE_REENTRANT
++NCURSES_WRAPPED_VAR(long, _nc_outchars);
++NCURSES_WRAPPED_VAR(const char *, _nc_tputs_trace);
++#define _nc_outchars       NCURSES_PUBLIC_VAR(_nc_outchars())
++#define _nc_tputs_trace    NCURSES_PUBLIC_VAR(_nc_tputs_trace())
++extern NCURSES_EXPORT(void)		_nc_set_tputs_trace (const char *);
++extern NCURSES_EXPORT(void)		_nc_count_outchars (long);
++#else
+ extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
+ extern NCURSES_EXPORT_VAR(long)         _nc_outchars;
++#endif
++
+ extern NCURSES_EXPORT_VAR(unsigned)     _nc_tracing;
+ 
+ #if USE_WIDEC_SUPPORT
+@@ -1083,6 +1367,21 @@
+ extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int);
+ #endif
+ 
++/* comp_captab.c */
++typedef struct {
++	short	nte_name;	/* offset of name to hash on */
++	int	nte_type;	/* BOOLEAN, NUMBER or STRING */
++	short	nte_index;	/* index of associated variable in its array */
++	short	nte_link;	/* index in table of next hash, or -1 */
++} name_table_data;
++
++typedef struct
++{
++	short	from;
++	short	to;
++	short	source;
++} alias_table_data;
++
+ /* doupdate.c */
+ #if USE_XMC_SUPPORT
+ extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);
+@@ -1141,6 +1440,7 @@
+ extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
+ extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
+ extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
++extern NCURSES_EXPORT(void) _nc_get_screensize(int *, int *);
+ 
+ /* lib_tstp.c */
+ #if USE_SIGWINCH
+@@ -1177,10 +1477,10 @@
+ extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list);
+ 
+ /* tries.c */
+-extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned);
+-extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned, int *, size_t);
+-extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned);
+-extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);
++extern NCURSES_EXPORT(int) _nc_add_to_try (TRIES **, const char *, unsigned);
++extern NCURSES_EXPORT(char *) _nc_expand_try (TRIES *, unsigned, int *, size_t);
++extern NCURSES_EXPORT(int) _nc_remove_key (TRIES **, unsigned);
++extern NCURSES_EXPORT(int) _nc_remove_string (TRIES **, const char *);
+ 
+ /* elsewhere ... */
+ extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
+@@ -1210,13 +1510,16 @@
+ extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
+ extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
+ extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
+-extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);
++extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *);
+ 
+ #if NO_LEAKS
+ extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
++extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
++extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
++extern NCURSES_EXPORT(void) _nc_names_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
+ #endif
+ 
+@@ -1227,11 +1530,7 @@
+ #endif
+ 
+ #if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
+-#ifdef linux
+ extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);
+-#else
+-#define _nc_wcrtomb(s,wc,ps) wcrtomb(s,wc,ps)
+-#endif
+ #endif
+ 
+ #if USE_SIZECHANGE
+Index: ncurses/llib-lncurses
+--- ncurses-5.6/ncurses/llib-lncurses	2006-10-28 22:20:51.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/llib-lncurses	2007-08-18 22:56:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey 1996-2006                                      *
++ *  Author: Thomas E. Dickey 1996-2007                                      *
+  ****************************************************************************/
+ /* LINTLIBRARY */
+ 
+@@ -1017,6 +1017,11 @@
+ 		WINDOW	*z)
+ 		{ return(*(int *)0); }
+ 
++#undef getattrs
++int	getattrs(
++		const WINDOW *z)
++		{ return(*(int *)0); }
++
+ #undef getcurx
+ int	getcurx(
+ 		const WINDOW *z)
+@@ -1057,6 +1062,68 @@
+ 		const WINDOW *z)
+ 		{ return(*(int *)0); }
+ 
++#undef wgetparent
++WINDOW	*wgetparent(
++		const WINDOW *z)
++		{ return(*(WINDOW **)0); }
++
++#undef is_cleared
++NCURSES_BOOL is_cleared(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_idcok
++NCURSES_BOOL is_idcok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_idlok
++NCURSES_BOOL is_idlok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_immedok
++NCURSES_BOOL is_immedok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_keypad
++NCURSES_BOOL is_keypad(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_leaveok
++NCURSES_BOOL is_leaveok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_nodelay
++NCURSES_BOOL is_nodelay(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_notimeout
++NCURSES_BOOL is_notimeout(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_scrollok
++NCURSES_BOOL is_scrollok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_syncok
++NCURSES_BOOL is_syncok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef wgetscrreg
++int	wgetscrreg(
++		const WINDOW *a1, 
++		int	*a2, 
++		int	*z)
++		{ return(*(int *)0); }
++
+ #undef mouse_trafo
+ NCURSES_BOOL mouse_trafo(
+ 		int	*a1, 
+@@ -2093,40 +2160,11 @@
+ /* ./tinfo/add_tries.c */
+ 
+ #undef _nc_add_to_try
+-void	_nc_add_to_try(
+-		struct tries **tree, 
++int	_nc_add_to_try(
++		TRIES	**tree, 
+ 		const char *str, 
+ 		unsigned code)
+-		{ /* void */ }
+-
+-/* ./tinfo/alloc_entry.c */
+-
+-#undef _nc_init_entry
+-void	_nc_init_entry(
+-		TERMTYPE *const tp)
+-		{ /* void */ }
+-
+-#undef _nc_copy_entry
+-ENTRY	*_nc_copy_entry(
+-		ENTRY	*oldp)
+-		{ return(*(ENTRY **)0); }
+-
+-#undef _nc_save_str
+-char	*_nc_save_str(
+-		const char *const string)
+-		{ return(*(char **)0); }
+-
+-#undef _nc_wrap_entry
+-void	_nc_wrap_entry(
+-		ENTRY	*const ep, 
+-		NCURSES_BOOL copy_strings)
+-		{ /* void */ }
+-
+-#undef _nc_merge_entry
+-void	_nc_merge_entry(
+-		TERMTYPE *const to, 
+-		TERMTYPE *const from)
+-		{ /* void */ }
++		{ return(*(int *)0); }
+ 
+ /* ./tinfo/alloc_ttype.c */
+ 
+@@ -2142,22 +2180,6 @@
+ 		TERMTYPE *src)
+ 		{ /* void */ }
+ 
+-/* ./tinfo/captoinfo.c */
+-
+-#undef _nc_captoinfo
+-char	*_nc_captoinfo(
+-		const char *cap, 
+-		const char *s, 
+-		int const parameterized)
+-		{ return(*(char **)0); }
+-
+-#undef _nc_infotocap
+-char	*_nc_infotocap(
+-		const char *cap, 
+-		const char *str, 
+-		int const parameterized)
+-		{ return(*(char **)0); }
+-
+ /* ./codes.c */
+ 
+ #undef boolcodes
+@@ -2167,31 +2189,7 @@
+ #undef strcodes
+ char	*const strcodes[] = {0};
+ 
+-/* ./comp_captab.c */
+-
+-#include <ncurses_cfg.h>
+-
+-#undef _nc_info_hash_table
+-const struct name_table_entry *const _nc_info_hash_table[995] = {0};
+-#undef _nc_cap_hash_table
+-const struct name_table_entry *const _nc_cap_hash_table[995] = {0};
+-#undef _nc_capalias_table
+-const struct alias _nc_capalias_table[] = {0};
+-#undef _nc_infoalias_table
+-const struct alias _nc_infoalias_table[] = {0};
+-
+-#undef _nc_get_table
+-const struct name_table_entry *_nc_get_table(
+-		NCURSES_BOOL termcap)
+-		{ return(*(const struct name_table_entry **)0); }
+-
+-#undef _nc_get_hash_table
+-const struct name_table_entry *const *_nc_get_hash_table(
+-		NCURSES_BOOL termcap)
+-		{ return(*(const struct name_table_entry **)0); }
+-
+ /* ./tinfo/comp_error.c */
+-
+ #undef _nc_suppress_warnings
+ NCURSES_BOOL _nc_suppress_warnings;
+ #undef _nc_curr_line
+@@ -2236,134 +2234,6 @@
+ 		...)
+ 		{ /* void */ }
+ 
+-/* ./tinfo/comp_expand.c */
+-
+-#undef _nc_tic_expand
+-char	*_nc_tic_expand(
+-		const char *srcp, 
+-		NCURSES_BOOL tic_format, 
+-		int	numbers)
+-		{ return(*(char **)0); }
+-
+-/* ./tinfo/comp_hash.c */
+-
+-#include <hashsize.h>
+-
+-#undef _nc_find_entry
+-struct name_table_entry const *_nc_find_entry(
+-		const char *string, 
+-		const struct name_table_entry *const *hash_table)
+-		{ return(*(struct name_table_entry const **)0); }
+-
+-#undef _nc_find_type_entry
+-struct name_table_entry const *_nc_find_type_entry(
+-		const char *string, 
+-		int	type, 
+-		const struct name_table_entry *table)
+-		{ return(*(struct name_table_entry const **)0); }
+-
+-/* ./tinfo/comp_parse.c */
+-
+-#undef _nc_check_termtype2
+-void	(*_nc_check_termtype2)(
+-		TERMTYPE *p1, 
+-		NCURSES_BOOL p2);
+-#undef _nc_check_termtype
+-void	(*_nc_check_termtype)(
+-		TERMTYPE *p1);
+-#undef _nc_head
+-ENTRY	*_nc_head;
+-#undef _nc_tail
+-ENTRY	*_nc_tail;
+-
+-#undef _nc_free_entries
+-void	_nc_free_entries(
+-		ENTRY	*headp)
+-		{ /* void */ }
+-
+-#undef _nc_delink_entry
+-ENTRY	*_nc_delink_entry(
+-		ENTRY	*headp, 
+-		TERMTYPE *tterm)
+-		{ return(*(ENTRY **)0); }
+-
+-#undef _nc_free_entry
+-void	_nc_free_entry(
+-		ENTRY	*headp, 
+-		TERMTYPE *tterm)
+-		{ /* void */ }
+-
+-#undef _nc_entry_match
+-NCURSES_BOOL _nc_entry_match(
+-		char	*n1, 
+-		char	*n2)
+-		{ return(*(NCURSES_BOOL *)0); }
+-
+-#undef _nc_read_entry_source
+-void	_nc_read_entry_source(
+-		FILE	*fp, 
+-		char	*buf, 
+-		int	literal, 
+-		NCURSES_BOOL silent, 
+-		NCURSES_BOOL (*hook)(
+-		ENTRY	*p1))
+-		{ /* void */ }
+-
+-#undef _nc_resolve_uses2
+-int	_nc_resolve_uses2(
+-		NCURSES_BOOL fullresolve, 
+-		NCURSES_BOOL literal)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_resolve_uses
+-int	_nc_resolve_uses(
+-		NCURSES_BOOL fullresolve)
+-		{ return(*(int *)0); }
+-
+-/* ./tinfo/comp_scan.c */
+-
+-#undef _nc_syntax
+-int	_nc_syntax;
+-#undef _nc_curr_file_pos
+-long	_nc_curr_file_pos;
+-#undef _nc_comment_start
+-long	_nc_comment_start;
+-#undef _nc_comment_end
+-long	_nc_comment_end;
+-#undef _nc_start_line
+-long	_nc_start_line;
+-#undef _nc_curr_token
+-struct token _nc_curr_token;
+-#undef _nc_disable_period
+-NCURSES_BOOL _nc_disable_period;
+-
+-#undef _nc_reset_input
+-void	_nc_reset_input(
+-		FILE	*fp, 
+-		char	*buf)
+-		{ /* void */ }
+-
+-#undef _nc_get_token
+-int	_nc_get_token(
+-		NCURSES_BOOL silent)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_trans_string
+-int	_nc_trans_string(
+-		char	*ptr, 
+-		char	*last)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_push_token
+-void	_nc_push_token(
+-		int	tokclass)
+-		{ /* void */ }
+-
+-#undef _nc_panic_mode
+-void	_nc_panic_mode(
+-		char	ch)
+-		{ /* void */ }
+-
+ /* ./tinfo/db_iterator.c */
+ 
+ #undef _nc_tic_dir
+@@ -2400,6 +2270,34 @@
+ 		size_t	amount)
+ 		{ return(*(void **)0); }
+ 
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY	*_nc_head;
++#undef _nc_tail
++ENTRY	*_nc_tail;
++
++#undef _nc_free_entry
++void	_nc_free_entry(
++		ENTRY	*headp, 
++		TERMTYPE *tterm)
++		{ /* void */ }
++
++#undef _nc_free_entries
++void	_nc_free_entries(
++		ENTRY	*headp)
++		{ /* void */ }
++
++#undef _nc_delink_entry
++ENTRY	*_nc_delink_entry(
++		ENTRY	*headp, 
++		TERMTYPE *tterm)
++		{ return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void	_nc_leaks_tinfo(void)
++		{ /* void */ }
++
+ /* ./fallback.c */
+ 
+ #undef _nc_fallback
+@@ -2442,7 +2340,7 @@
+ #include <init_keytry.h>
+ 
+ #undef _nc_tinfo_fkeys
+-struct tinfo_fkeys _nc_tinfo_fkeys[];
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
+ 
+ #endif
+ 
+@@ -2509,6 +2407,10 @@
+ SCREEN	*_nc_screen_chain;
+ #undef SP
+ SCREEN	*SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
+ 
+ /* ./tinfo/lib_has_cap.c */
+ 
+@@ -2536,8 +2438,7 @@
+ 
+ /* ./lib_keyname.c */
+ 
+-#undef _nc_key_names
+-const struct kn _nc_key_names[] = {0};
++struct kn { short offset; int code; };
+ 
+ #undef keyname
+ char	*keyname(
+@@ -2677,7 +2578,7 @@
+ 
+ #undef _nc_handle_sigwinch
+ int	_nc_handle_sigwinch(
+-		int	enable)
++		int	update)
+ 		{ return(*(int *)0); }
+ 
+ #undef use_env
+@@ -2685,6 +2586,12 @@
+ 		NCURSES_BOOL f)
+ 		{ /* void */ }
+ 
++#undef _nc_get_screensize
++void	_nc_get_screensize(
++		int	*linep, 
++		int	*colp)
++		{ /* void */ }
++
+ #undef _nc_update_screensize
+ void	_nc_update_screensize(void)
+ 		{ /* void */ }
+@@ -2785,14 +2692,6 @@
+ 
+ /* ./tinfo/lib_tparm.c */
+ 
+-typedef struct {
+-    union {
+- int num;
+- char *str;
+-    } data;
+-    NCURSES_BOOL num_type;
+-} stack_frame;
+-
+ #undef _nc_tparm_err
+ int	_nc_tparm_err;
+ 
+@@ -3047,26 +2946,6 @@
+ #undef strfnames
+ char	*const strfnames[] = {0};
+ 
+-/* ./tinfo/parse_entry.c */
+-
+-#undef _nc_parse_entry
+-int	_nc_parse_entry(
+-		struct entry *entryp, 
+-		int	literal, 
+-		NCURSES_BOOL silent)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_capcmp
+-int	_nc_capcmp(
+-		const char *s, 
+-		const char *t)
+-		{ return(*(int *)0); }
+-
+-typedef struct {
+-    const char *from;
+-    const char *to;
+-} assoc;
+-
+ /* ./tinfo/read_entry.c */
+ 
+ #include <hashed_db.h>
+@@ -3144,11 +3023,6 @@
+ 
+ /* ./trace/trace_buf.c */
+ 
+-typedef struct {
+-    char *text;
+-    size_t size;
+-} LIST;
+-
+ #undef _nc_trace_buf
+ char	*_nc_trace_buf(
+ 		int	bufnum, 
+@@ -3165,14 +3039,14 @@
+ 
+ #undef _nc_trace_tries
+ void	_nc_trace_tries(
+-		struct tries *tree)
++		TRIES	*tree)
+ 		{ /* void */ }
+ 
+ /* ./base/tries.c */
+ 
+ #undef _nc_expand_try
+ char	*_nc_expand_try(
+-		struct tries *tree, 
++		TRIES	*tree, 
+ 		unsigned code, 
+ 		int	*count, 
+ 		size_t	len)
+@@ -3180,13 +3054,13 @@
+ 
+ #undef _nc_remove_key
+ int	_nc_remove_key(
+-		struct tries **tree, 
++		TRIES	**tree, 
+ 		unsigned code)
+ 		{ return(*(int *)0); }
+ 
+ #undef _nc_remove_string
+ int	_nc_remove_string(
+-		struct tries **tree, 
++		TRIES	**tree, 
+ 		const char *string)
+ 		{ return(*(int *)0); }
+ 
+@@ -3236,6 +3110,195 @@
+ 		int	len)
+ 		{ return(*(const char **)0); }
+ 
++/* ./tinfo/alloc_entry.c */
++
++#undef _nc_init_entry
++void	_nc_init_entry(
++		TERMTYPE *const tp)
++		{ /* void */ }
++
++#undef _nc_copy_entry
++ENTRY	*_nc_copy_entry(
++		ENTRY	*oldp)
++		{ return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char	*_nc_save_str(
++		const char *const string)
++		{ return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void	_nc_wrap_entry(
++		ENTRY	*const ep, 
++		NCURSES_BOOL copy_strings)
++		{ /* void */ }
++
++#undef _nc_merge_entry
++void	_nc_merge_entry(
++		TERMTYPE *const to, 
++		TERMTYPE *const from)
++		{ /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#undef _nc_captoinfo
++char	*_nc_captoinfo(
++		const char *cap, 
++		const char *s, 
++		int const parameterized)
++		{ return(*(char **)0); }
++
++#undef _nc_infotocap
++char	*_nc_infotocap(
++		const char *cap, 
++		const char *str, 
++		int const parameterized)
++		{ return(*(char **)0); }
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const short *_nc_get_hash_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const short **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const struct alias **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char	*_nc_tic_expand(
++		const char *srcp, 
++		NCURSES_BOOL tic_format, 
++		int	numbers)
++		{ return(*(char **)0); }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++		const char *string, 
++		const short *hash_table)
++		{ return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++		const char *string, 
++		int	type, 
++		const struct name_table_entry *table)
++		{ return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void	(*_nc_check_termtype2)(
++		TERMTYPE *p1, 
++		NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void	(*_nc_check_termtype)(
++		TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++		char	*n1, 
++		char	*n2)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void	_nc_read_entry_source(
++		FILE	*fp, 
++		char	*buf, 
++		int	literal, 
++		NCURSES_BOOL silent, 
++		NCURSES_BOOL (*hook)(
++		ENTRY	*p1))
++		{ /* void */ }
++
++#undef _nc_resolve_uses2
++int	_nc_resolve_uses2(
++		NCURSES_BOOL fullresolve, 
++		NCURSES_BOOL literal)
++		{ return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int	_nc_resolve_uses(
++		NCURSES_BOOL fullresolve)
++		{ return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int	_nc_syntax;
++#undef _nc_curr_file_pos
++long	_nc_curr_file_pos;
++#undef _nc_comment_start
++long	_nc_comment_start;
++#undef _nc_comment_end
++long	_nc_comment_end;
++#undef _nc_start_line
++long	_nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void	_nc_reset_input(
++		FILE	*fp, 
++		char	*buf)
++		{ /* void */ }
++
++#undef _nc_get_token
++int	_nc_get_token(
++		NCURSES_BOOL silent)
++		{ return(*(int *)0); }
++
++#undef _nc_trans_string
++int	_nc_trans_string(
++		char	*ptr, 
++		char	*last)
++		{ return(*(int *)0); }
++
++#undef _nc_push_token
++void	_nc_push_token(
++		int	tokclass)
++		{ /* void */ }
++
++#undef _nc_panic_mode
++void	_nc_panic_mode(
++		char	ch)
++		{ /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int	_nc_parse_entry(
++		struct entry *entryp, 
++		int	literal, 
++		NCURSES_BOOL silent)
++		{ return(*(int *)0); }
++
++#undef _nc_capcmp
++int	_nc_capcmp(
++		const char *s, 
++		const char *t)
++		{ return(*(int *)0); }
++
++typedef struct {
++    const char *from;
++    const char *to;
++} assoc;
++
+ /* ./tinfo/write_entry.c */
+ 
+ #undef _nc_set_writedir
+Index: ncurses/llib-lncursesw
+--- ncurses-5.6/ncurses/llib-lncursesw	2006-12-17 17:37:36.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/llib-lncursesw	2007-08-18 23:01:48.000000000 +0000
+@@ -1066,6 +1066,11 @@
+ 		WINDOW	*z)
+ 		{ return(*(int *)0); }
+ 
++#undef getattrs
++int	getattrs(
++		const WINDOW *z)
++		{ return(*(int *)0); }
++
+ #undef getcurx
+ int	getcurx(
+ 		const WINDOW *z)
+@@ -1106,6 +1111,68 @@
+ 		const WINDOW *z)
+ 		{ return(*(int *)0); }
+ 
++#undef wgetparent
++WINDOW	*wgetparent(
++		const WINDOW *z)
++		{ return(*(WINDOW **)0); }
++
++#undef is_cleared
++NCURSES_BOOL is_cleared(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_idcok
++NCURSES_BOOL is_idcok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_idlok
++NCURSES_BOOL is_idlok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_immedok
++NCURSES_BOOL is_immedok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_keypad
++NCURSES_BOOL is_keypad(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_leaveok
++NCURSES_BOOL is_leaveok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_nodelay
++NCURSES_BOOL is_nodelay(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_notimeout
++NCURSES_BOOL is_notimeout(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_scrollok
++NCURSES_BOOL is_scrollok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef is_syncok
++NCURSES_BOOL is_syncok(
++		const WINDOW *z)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef wgetscrreg
++int	wgetscrreg(
++		const WINDOW *a1, 
++		int	*a2, 
++		int	*z)
++		{ return(*(int *)0); }
++
+ #undef add_wch
+ int	add_wch(
+ 		const cchar_t *z)
+@@ -2529,14 +2596,6 @@
+ 		void	*opts)
+ 		{ return(*(int *)0); }
+ 
+-/* ./widechar/lib_get_wch.c */
+-
+-#undef wget_wch
+-int	wget_wch(
+-		WINDOW	*win, 
+-		wint_t	*result)
+-		{ return(*(int *)0); }
+-
+ /* ./widechar/lib_erasewchar.c */
+ 
+ #undef erasewchar
+@@ -2549,6 +2608,14 @@
+ 		wchar_t	*wch)
+ 		{ return(*(int *)0); }
+ 
++/* ./widechar/lib_get_wch.c */
++
++#undef wget_wch
++int	wget_wch(
++		WINDOW	*win, 
++		wint_t	*result)
++		{ return(*(int *)0); }
++
+ /* ./widechar/lib_get_wstr.c */
+ 
+ #undef wgetn_wstr
+@@ -2614,6 +2681,13 @@
+ 		wchar_t	*wstr)
+ 		{ return(*(int *)0); }
+ 
++/* ./widechar/lib_key_name.c */
++
++#undef key_name
++char	*key_name(
++		wchar_t	c)
++		{ return(*(char **)0); }
++
+ /* ./widechar/lib_pecho_wchar.c */
+ 
+ #undef pecho_wchar
+@@ -2832,40 +2906,11 @@
+ /* ./tinfo/add_tries.c */
+ 
+ #undef _nc_add_to_try
+-void	_nc_add_to_try(
+-		struct tries **tree, 
++int	_nc_add_to_try(
++		TRIES	**tree, 
+ 		const char *str, 
+ 		unsigned code)
+-		{ /* void */ }
+-
+-/* ./tinfo/alloc_entry.c */
+-
+-#undef _nc_init_entry
+-void	_nc_init_entry(
+-		TERMTYPE *const tp)
+-		{ /* void */ }
+-
+-#undef _nc_copy_entry
+-ENTRY	*_nc_copy_entry(
+-		ENTRY	*oldp)
+-		{ return(*(ENTRY **)0); }
+-
+-#undef _nc_save_str
+-char	*_nc_save_str(
+-		const char *const string)
+-		{ return(*(char **)0); }
+-
+-#undef _nc_wrap_entry
+-void	_nc_wrap_entry(
+-		ENTRY	*const ep, 
+-		NCURSES_BOOL copy_strings)
+-		{ /* void */ }
+-
+-#undef _nc_merge_entry
+-void	_nc_merge_entry(
+-		TERMTYPE *const to, 
+-		TERMTYPE *const from)
+-		{ /* void */ }
++		{ return(*(int *)0); }
+ 
+ /* ./tinfo/alloc_ttype.c */
+ 
+@@ -2881,22 +2926,6 @@
+ 		TERMTYPE *src)
+ 		{ /* void */ }
+ 
+-/* ./tinfo/captoinfo.c */
+-
+-#undef _nc_captoinfo
+-char	*_nc_captoinfo(
+-		const char *cap, 
+-		const char *s, 
+-		int const parameterized)
+-		{ return(*(char **)0); }
+-
+-#undef _nc_infotocap
+-char	*_nc_infotocap(
+-		const char *cap, 
+-		const char *str, 
+-		int const parameterized)
+-		{ return(*(char **)0); }
+-
+ /* ./codes.c */
+ 
+ #undef boolcodes
+@@ -2906,31 +2935,7 @@
+ #undef strcodes
+ char	*const strcodes[] = {0};
+ 
+-/* ./comp_captab.c */
+-
+-#include <ncurses_cfg.h>
+-
+-#undef _nc_info_hash_table
+-const struct name_table_entry *const _nc_info_hash_table[995] = {0};
+-#undef _nc_cap_hash_table
+-const struct name_table_entry *const _nc_cap_hash_table[995] = {0};
+-#undef _nc_capalias_table
+-const struct alias _nc_capalias_table[] = {0};
+-#undef _nc_infoalias_table
+-const struct alias _nc_infoalias_table[] = {0};
+-
+-#undef _nc_get_table
+-const struct name_table_entry *_nc_get_table(
+-		NCURSES_BOOL termcap)
+-		{ return(*(const struct name_table_entry **)0); }
+-
+-#undef _nc_get_hash_table
+-const struct name_table_entry *const *_nc_get_hash_table(
+-		NCURSES_BOOL termcap)
+-		{ return(*(const struct name_table_entry **)0); }
+-
+ /* ./tinfo/comp_error.c */
+-
+ #undef _nc_suppress_warnings
+ NCURSES_BOOL _nc_suppress_warnings;
+ #undef _nc_curr_line
+@@ -2975,134 +2980,6 @@
+ 		...)
+ 		{ /* void */ }
+ 
+-/* ./tinfo/comp_expand.c */
+-
+-#undef _nc_tic_expand
+-char	*_nc_tic_expand(
+-		const char *srcp, 
+-		NCURSES_BOOL tic_format, 
+-		int	numbers)
+-		{ return(*(char **)0); }
+-
+-/* ./tinfo/comp_hash.c */
+-
+-#include <hashsize.h>
+-
+-#undef _nc_find_entry
+-struct name_table_entry const *_nc_find_entry(
+-		const char *string, 
+-		const struct name_table_entry *const *hash_table)
+-		{ return(*(struct name_table_entry const **)0); }
+-
+-#undef _nc_find_type_entry
+-struct name_table_entry const *_nc_find_type_entry(
+-		const char *string, 
+-		int	type, 
+-		const struct name_table_entry *table)
+-		{ return(*(struct name_table_entry const **)0); }
+-
+-/* ./tinfo/comp_parse.c */
+-
+-#undef _nc_check_termtype2
+-void	(*_nc_check_termtype2)(
+-		TERMTYPE *p1, 
+-		NCURSES_BOOL p2);
+-#undef _nc_check_termtype
+-void	(*_nc_check_termtype)(
+-		TERMTYPE *p1);
+-#undef _nc_head
+-ENTRY	*_nc_head;
+-#undef _nc_tail
+-ENTRY	*_nc_tail;
+-
+-#undef _nc_free_entries
+-void	_nc_free_entries(
+-		ENTRY	*headp)
+-		{ /* void */ }
+-
+-#undef _nc_delink_entry
+-ENTRY	*_nc_delink_entry(
+-		ENTRY	*headp, 
+-		TERMTYPE *tterm)
+-		{ return(*(ENTRY **)0); }
+-
+-#undef _nc_free_entry
+-void	_nc_free_entry(
+-		ENTRY	*headp, 
+-		TERMTYPE *tterm)
+-		{ /* void */ }
+-
+-#undef _nc_entry_match
+-NCURSES_BOOL _nc_entry_match(
+-		char	*n1, 
+-		char	*n2)
+-		{ return(*(NCURSES_BOOL *)0); }
+-
+-#undef _nc_read_entry_source
+-void	_nc_read_entry_source(
+-		FILE	*fp, 
+-		char	*buf, 
+-		int	literal, 
+-		NCURSES_BOOL silent, 
+-		NCURSES_BOOL (*hook)(
+-		ENTRY	*p1))
+-		{ /* void */ }
+-
+-#undef _nc_resolve_uses2
+-int	_nc_resolve_uses2(
+-		NCURSES_BOOL fullresolve, 
+-		NCURSES_BOOL literal)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_resolve_uses
+-int	_nc_resolve_uses(
+-		NCURSES_BOOL fullresolve)
+-		{ return(*(int *)0); }
+-
+-/* ./tinfo/comp_scan.c */
+-
+-#undef _nc_syntax
+-int	_nc_syntax;
+-#undef _nc_curr_file_pos
+-long	_nc_curr_file_pos;
+-#undef _nc_comment_start
+-long	_nc_comment_start;
+-#undef _nc_comment_end
+-long	_nc_comment_end;
+-#undef _nc_start_line
+-long	_nc_start_line;
+-#undef _nc_curr_token
+-struct token _nc_curr_token;
+-#undef _nc_disable_period
+-NCURSES_BOOL _nc_disable_period;
+-
+-#undef _nc_reset_input
+-void	_nc_reset_input(
+-		FILE	*fp, 
+-		char	*buf)
+-		{ /* void */ }
+-
+-#undef _nc_get_token
+-int	_nc_get_token(
+-		NCURSES_BOOL silent)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_trans_string
+-int	_nc_trans_string(
+-		char	*ptr, 
+-		char	*last)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_push_token
+-void	_nc_push_token(
+-		int	tokclass)
+-		{ /* void */ }
+-
+-#undef _nc_panic_mode
+-void	_nc_panic_mode(
+-		char	ch)
+-		{ /* void */ }
+-
+ /* ./tinfo/db_iterator.c */
+ 
+ #undef _nc_tic_dir
+@@ -3139,6 +3016,34 @@
+ 		size_t	amount)
+ 		{ return(*(void **)0); }
+ 
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY	*_nc_head;
++#undef _nc_tail
++ENTRY	*_nc_tail;
++
++#undef _nc_free_entry
++void	_nc_free_entry(
++		ENTRY	*headp, 
++		TERMTYPE *tterm)
++		{ /* void */ }
++
++#undef _nc_free_entries
++void	_nc_free_entries(
++		ENTRY	*headp)
++		{ /* void */ }
++
++#undef _nc_delink_entry
++ENTRY	*_nc_delink_entry(
++		ENTRY	*headp, 
++		TERMTYPE *tterm)
++		{ return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void	_nc_leaks_tinfo(void)
++		{ /* void */ }
++
+ /* ./fallback.c */
+ 
+ #undef _nc_fallback
+@@ -3181,7 +3086,7 @@
+ #include <init_keytry.h>
+ 
+ #undef _nc_tinfo_fkeys
+-struct tinfo_fkeys _nc_tinfo_fkeys[];
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
+ 
+ #endif
+ 
+@@ -3248,6 +3153,10 @@
+ SCREEN	*_nc_screen_chain;
+ #undef SP
+ SCREEN	*SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
+ 
+ /* ./tinfo/lib_has_cap.c */
+ 
+@@ -3275,19 +3184,13 @@
+ 
+ /* ./lib_keyname.c */
+ 
+-#undef _nc_key_names
+-const struct kn _nc_key_names[] = {0};
++struct kn { short offset; int code; };
+ 
+ #undef keyname
+ char	*keyname(
+ 		int	c)
+ 		{ return(*(char **)0); }
+ 
+-#undef key_name
+-char	*key_name(
+-		wchar_t	c)
+-		{ return(*(char **)0); }
+-
+ /* ./tinfo/lib_longname.c */
+ 
+ #undef longname
+@@ -3421,7 +3324,7 @@
+ 
+ #undef _nc_handle_sigwinch
+ int	_nc_handle_sigwinch(
+-		int	enable)
++		int	update)
+ 		{ return(*(int *)0); }
+ 
+ #undef use_env
+@@ -3429,6 +3332,12 @@
+ 		NCURSES_BOOL f)
+ 		{ /* void */ }
+ 
++#undef _nc_get_screensize
++void	_nc_get_screensize(
++		int	*linep, 
++		int	*colp)
++		{ /* void */ }
++
+ #undef _nc_update_screensize
+ void	_nc_update_screensize(void)
+ 		{ /* void */ }
+@@ -3529,14 +3438,6 @@
+ 
+ /* ./tinfo/lib_tparm.c */
+ 
+-typedef struct {
+-    union {
+- int num;
+- char *str;
+-    } data;
+-    NCURSES_BOOL num_type;
+-} stack_frame;
+-
+ #undef _nc_tparm_err
+ int	_nc_tparm_err;
+ 
+@@ -3802,26 +3703,6 @@
+ #undef strfnames
+ char	*const strfnames[] = {0};
+ 
+-/* ./tinfo/parse_entry.c */
+-
+-#undef _nc_parse_entry
+-int	_nc_parse_entry(
+-		struct entry *entryp, 
+-		int	literal, 
+-		NCURSES_BOOL silent)
+-		{ return(*(int *)0); }
+-
+-#undef _nc_capcmp
+-int	_nc_capcmp(
+-		const char *s, 
+-		const char *t)
+-		{ return(*(int *)0); }
+-
+-typedef struct {
+-    const char *from;
+-    const char *to;
+-} assoc;
+-
+ /* ./tinfo/read_entry.c */
+ 
+ #include <hashed_db.h>
+@@ -3899,11 +3780,6 @@
+ 
+ /* ./trace/trace_buf.c */
+ 
+-typedef struct {
+-    char *text;
+-    size_t size;
+-} LIST;
+-
+ #undef _nc_trace_buf
+ char	*_nc_trace_buf(
+ 		int	bufnum, 
+@@ -3920,14 +3796,14 @@
+ 
+ #undef _nc_trace_tries
+ void	_nc_trace_tries(
+-		struct tries *tree)
++		TRIES	*tree)
+ 		{ /* void */ }
+ 
+ /* ./base/tries.c */
+ 
+ #undef _nc_expand_try
+ char	*_nc_expand_try(
+-		struct tries *tree, 
++		TRIES	*tree, 
+ 		unsigned code, 
+ 		int	*count, 
+ 		size_t	len)
+@@ -3935,13 +3811,13 @@
+ 
+ #undef _nc_remove_key
+ int	_nc_remove_key(
+-		struct tries **tree, 
++		TRIES	**tree, 
+ 		unsigned code)
+ 		{ return(*(int *)0); }
+ 
+ #undef _nc_remove_string
+ int	_nc_remove_string(
+-		struct tries **tree, 
++		TRIES	**tree, 
+ 		const char *string)
+ 		{ return(*(int *)0); }
+ 
+@@ -4013,6 +3889,195 @@
+ 		int	len)
+ 		{ return(*(const char **)0); }
+ 
++/* ./tinfo/alloc_entry.c */
++
++#undef _nc_init_entry
++void	_nc_init_entry(
++		TERMTYPE *const tp)
++		{ /* void */ }
++
++#undef _nc_copy_entry
++ENTRY	*_nc_copy_entry(
++		ENTRY	*oldp)
++		{ return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char	*_nc_save_str(
++		const char *const string)
++		{ return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void	_nc_wrap_entry(
++		ENTRY	*const ep, 
++		NCURSES_BOOL copy_strings)
++		{ /* void */ }
++
++#undef _nc_merge_entry
++void	_nc_merge_entry(
++		TERMTYPE *const to, 
++		TERMTYPE *const from)
++		{ /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#undef _nc_captoinfo
++char	*_nc_captoinfo(
++		const char *cap, 
++		const char *s, 
++		int const parameterized)
++		{ return(*(char **)0); }
++
++#undef _nc_infotocap
++char	*_nc_infotocap(
++		const char *cap, 
++		const char *str, 
++		int const parameterized)
++		{ return(*(char **)0); }
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const short *_nc_get_hash_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const short **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++		NCURSES_BOOL termcap)
++		{ return(*(const struct alias **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char	*_nc_tic_expand(
++		const char *srcp, 
++		NCURSES_BOOL tic_format, 
++		int	numbers)
++		{ return(*(char **)0); }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++		const char *string, 
++		const short *hash_table)
++		{ return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++		const char *string, 
++		int	type, 
++		const struct name_table_entry *table)
++		{ return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void	(*_nc_check_termtype2)(
++		TERMTYPE *p1, 
++		NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void	(*_nc_check_termtype)(
++		TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++		char	*n1, 
++		char	*n2)
++		{ return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void	_nc_read_entry_source(
++		FILE	*fp, 
++		char	*buf, 
++		int	literal, 
++		NCURSES_BOOL silent, 
++		NCURSES_BOOL (*hook)(
++		ENTRY	*p1))
++		{ /* void */ }
++
++#undef _nc_resolve_uses2
++int	_nc_resolve_uses2(
++		NCURSES_BOOL fullresolve, 
++		NCURSES_BOOL literal)
++		{ return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int	_nc_resolve_uses(
++		NCURSES_BOOL fullresolve)
++		{ return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int	_nc_syntax;
++#undef _nc_curr_file_pos
++long	_nc_curr_file_pos;
++#undef _nc_comment_start
++long	_nc_comment_start;
++#undef _nc_comment_end
++long	_nc_comment_end;
++#undef _nc_start_line
++long	_nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void	_nc_reset_input(
++		FILE	*fp, 
++		char	*buf)
++		{ /* void */ }
++
++#undef _nc_get_token
++int	_nc_get_token(
++		NCURSES_BOOL silent)
++		{ return(*(int *)0); }
++
++#undef _nc_trans_string
++int	_nc_trans_string(
++		char	*ptr, 
++		char	*last)
++		{ return(*(int *)0); }
++
++#undef _nc_push_token
++void	_nc_push_token(
++		int	tokclass)
++		{ /* void */ }
++
++#undef _nc_panic_mode
++void	_nc_panic_mode(
++		char	ch)
++		{ /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int	_nc_parse_entry(
++		struct entry *entryp, 
++		int	literal, 
++		NCURSES_BOOL silent)
++		{ return(*(int *)0); }
++
++#undef _nc_capcmp
++int	_nc_capcmp(
++		const char *s, 
++		const char *t)
++		{ return(*(int *)0); }
++
++typedef struct {
++    const char *from;
++    const char *to;
++} assoc;
++
+ /* ./tinfo/write_entry.c */
+ 
+ #undef _nc_set_writedir
+Index: ncurses/modules
+Prereq:  1.107 
+--- ncurses-5.6/ncurses/modules	2006-08-12 14:19:44.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/modules	2007-09-08 22:03:34.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: modules,v 1.107 2006/08/12 14:19:44 tom Exp $
++# $Id: modules,v 1.112 2007/09/08 22:03:34 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -127,14 +127,15 @@
+ lib_add_wch	lib		$(wide)
+ lib_box_set	lib		$(wide)
+ lib_cchar	lib		$(wide)
+-lib_get_wch	lib		$(wide)
+ lib_erasewchar	lib		$(wide)
++lib_get_wch	lib		$(wide)
+ lib_get_wstr	lib		$(wide)
+ lib_hline_set	lib		$(wide)
+ lib_in_wch	lib		$(wide)
+ lib_in_wchnstr	lib		$(wide)
+ lib_ins_wch	lib		$(wide)
+ lib_inwstr	lib		$(wide)
++lib_key_name	lib		$(wide)
+ lib_pecho_wchar	lib		$(wide)
+ lib_slk_wset	lib		$(wide)
+ lib_unget_wch	lib		$(wide)
+@@ -151,24 +152,20 @@
+ lib_print	lib		$(tinfo)	../include/term.h
+ resizeterm	lib		$(base)		../include/term.h
+ trace_xnames	lib		$(trace)	../include/term.h $(INCDIR)/term_entry.h
++use_screen	lib		$(tinfo)
++use_window	lib		$(base)
+ wresize		lib		$(base)		../include/term.h
+ 
+ # Support for termcap (and tic, etc.), which can be a separate library
+ @ termlib
+ access		lib		$(tinfo)
+ add_tries	lib		$(tinfo)
+-alloc_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ alloc_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+-captoinfo	lib		$(tinfo)	$(INCDIR)/tic.h
+ codes		lib		.
+-comp_captab	lib		.		$(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
+ comp_error	lib		$(tinfo)	$(INCDIR)/tic.h
+-comp_expand	lib		$(tinfo)	$(INCDIR)/tic.h
+-comp_hash	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
+-comp_parse	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+-comp_scan	lib		$(tinfo)	$(INCDIR)/tic.h
+ db_iterator	lib		$(tinfo)	$(INCDIR)/tic.h
+ doalloc		lib		$(tinfo)
++entries		lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
+ fallback	lib		.		../include/term.h $(INCDIR)/tic.h
+ free_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ getenv_num	lib		$(tinfo)
+@@ -200,7 +197,6 @@
+ lib_twait	lib		$(serial)
+ name_match	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
+ names		lib		.
+-parse_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
+ read_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ read_termcap	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ setbuf		lib		$(tinfo)
+@@ -211,6 +207,17 @@
+ trim_sgr0	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ unctrl		lib		.
+ visbuf		lib		$(trace)	$(INCDIR)/tic.h
++
++# Modules used only for tic, other programs using internal interfaces
++@ ticlib
++alloc_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
++captoinfo	lib		$(tinfo)	$(INCDIR)/tic.h
++comp_captab	lib		.		$(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
++comp_expand	lib		$(tinfo)	$(INCDIR)/tic.h
++comp_hash	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
++comp_parse	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
++comp_scan	lib		$(tinfo)	$(INCDIR)/tic.h
++parse_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
+ write_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
+ 
+ # Extensions to the termlib library
+@@ -221,3 +228,5 @@
+ keybound	lib		$(base)
+ keyok		lib		$(base)
+ version		lib		$(base)
++
++# vile:makemode
+Index: ncurses/tinfo/MKcaptab.awk
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/tinfo/MKcaptab.awk	2006-04-22 21:46:17.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/MKcaptab.awk	2007-08-12 00:26:15.000000000 +0000
+@@ -1,6 +1,5 @@
+-#!/bin/sh
+ ##############################################################################
+-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -26,73 +25,70 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: MKcaptab.awk,v 1.13 2006/04/22 21:46:17 tom Exp $
+-AWK=${1-awk}
+-DATA=${2-../include/Caps}
+-
+-cat <<'EOF'
+-/*
+- *	comp_captab.c -- The names of the capabilities indexed via a hash
+- *		         table for the compiler.
+- *
+- */
+-
+-#include <ncurses_cfg.h>
+-#include <curses.priv.h>
+-#include <tic.h>
+-#include <term.h>
+-
+-EOF
+-
+-./make_hash 1 info <$DATA
+-./make_hash 3 cap  <$DATA
+-
+-cat <<'EOF'
+-const struct alias _nc_capalias_table[] =
+-{
+-EOF
++# $Id: MKcaptab.awk,v 1.20 2007/08/12 00:26:15 tom Exp $
++function add_string(text) {
++    if (text != "IGNORE") {
++	offsets[num_strings] = offset;
++	offset = offset + length(text) + 1;
++	printf "%s\\0", text;
++    } else {
++	offsets[num_strings] = -1;
++    }
++    num_strings = num_strings + 1;
++    if ((num_strings % 3) == 0) {
++	printf "\\\n";
++    }
++    return offsets[num_strings - 1];
++}
++BEGIN {
++	first = 1;
++	num_aliases = 0;
++	num_strings = 0;
++	offset = 0;
++}
+ 
+-$AWK <$DATA '
+-$1 == "capalias"	{
+-		    if ($3 == "IGNORE")
+-			to = "(char *)NULL";
+-		    else
+-			to = "\"" $3 "\"";
+-		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
+-				$2, to, $4, $5
++/^[^#]/ {
++	    if (first) {
++		printf "/* generated by MKcaptab.awk %s(%d) */\n", tablename, bigstrings;
++		print ""
++		if (bigstrings) {
++		    printf "static struct alias *_nc_%s_table = 0;\n", tablename;
++		    print "";
++		    printf "static const char %s_text[] = \"\\\n", tablename;
++		} else {
++		    printf "static const struct alias _nc_%s_table[] =\n", tablename;
++		    printf "{\n";
+ 		}
+-'
+-
+-cat <<'EOF'
+-	{(char *)NULL, (char *)NULL, (char *)NULL}
+-};
+-
+-const struct alias _nc_infoalias_table[] =
+-{
+-EOF
+-
+-$AWK <$DATA '
+-$1 == "infoalias"	{
+-		    if ($3 == "IGNORE")
+-			to = "(char *)NULL";
+-		    else
+-			to = "\"" $3 "\"";
+-		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
+-				$2, to, $4, $5
++		first = 0;
++	    }
++	    if ($1 == tablename) {
++		if ($3 == "IGNORE") {
++		    to = "(char *)NULL";
++		} else {
++		    to = "\"" $3 "\"";
+ 		}
+-'
+-
+-cat <<'EOF'
+-	{(char *)NULL, (char *)NULL, (char *)NULL}
+-};
+-
+-NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
+-{
+-	return termcap ? _nc_cap_table: _nc_info_table ;
+-}
+-
+-NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool termcap)
+-{
+-	return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
+-}
+-EOF
++		if (bigstrings) {
++		    c1 = add_string($2);
++		    c2 = add_string($3);
++		    c3 = add_string($4);
++		    aliases[num_aliases] = sprintf("\t{%5d, %5d, %5d},\t /* %s */", c1, c2, c3, $5);
++		    num_aliases = num_aliases + 1;
++		} else {
++		    printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n", $2, to, $4, $5;
++		}
++	    }
++	}
++END	{
++	    if (bigstrings) {
++		printf "\";\n\n";
++		printf "static const alias_table_data %s_data[] = {\n", tablename;
++		for (n = 0; n < num_aliases; ++n) {
++		    printf "%s\n", aliases[n];
++		}
++		printf "};\n\n";
++	    } else {
++		printf "\t{(char *)NULL, (char *)NULL, (char *)NULL}\n";
++		printf "};\n\n";
++	    }
++	}
++# vile:sw=4:
+Index: ncurses/tinfo/MKcaptab.sh
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/MKcaptab.sh	2007-08-12 13:13:51.000000000 +0000
+@@ -0,0 +1,149 @@
++#!/bin/sh
++##############################################################################
++# Copyright (c) 2007 Free Software Foundation, Inc.                          #
++#                                                                            #
++# Permission is hereby granted, free of charge, to any person obtaining a    #
++# copy of this software and associated documentation files (the "Software"), #
++# to deal in the Software without restriction, including without limitation  #
++# the rights to use, copy, modify, merge, publish, distribute, distribute    #
++# with modifications, sublicense, and/or sell copies of the Software, and to #
++# permit persons to whom the Software is furnished to do so, subject to the  #
++# following conditions:                                                      #
++#                                                                            #
++# The above copyright notice and this permission notice shall be included in #
++# all copies or substantial portions of the Software.                        #
++#                                                                            #
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
++# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
++# DEALINGS IN THE SOFTWARE.                                                  #
++#                                                                            #
++# Except as contained in this notice, the name(s) of the above copyright     #
++# holders shall not be used in advertising or otherwise to promote the sale, #
++# use or other dealings in this Software without prior written               #
++# authorization.                                                             #
++##############################################################################
++# $Id: MKcaptab.sh,v 1.8 2007/08/12 13:13:51 tom Exp $
++AWK=${1-awk}
++OPT1=${2-0}
++OPT2=${3-tinfo/MKcaptab.awk}
++DATA=${4-../include/Caps}
++
++cat <<'EOF'
++/*
++ *	comp_captab.c -- The names of the capabilities indexed via a hash
++ *		         table for the compiler.
++ *
++ */
++
++#include <curses.priv.h>
++#include <tic.h>
++#include <hashsize.h>
++
++EOF
++
++./make_hash 1 info $OPT1 <$DATA
++./make_hash 3 cap  $OPT1 <$DATA
++
++$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias <$DATA 
++
++$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias <$DATA
++
++cat <<EOF
++
++#if $OPT1
++static void
++next_string(const char *strings, unsigned *offset)
++{
++	*offset += strlen(strings + *offset) + 1;
++}
++
++static const struct name_table_entry *
++_nc_build_names(struct name_table_entry **actual,
++		const name_table_data *source,
++		const char *strings)
++{
++	if (*actual == 0) {
++		*actual = typeCalloc(struct name_table_entry, CAPTABSIZE);
++		if (*actual != 0) {
++			unsigned n;
++			unsigned len = 0;
++			for (n = 0; n < CAPTABSIZE; ++n) {
++				(*actual)[n].nte_name = strings + len;
++				(*actual)[n].nte_type = source[n].nte_type;
++				(*actual)[n].nte_index = source[n].nte_index;
++				(*actual)[n].nte_link = source[n].nte_link;
++				next_string(strings, &len);
++			}
++		}
++	}
++	return *actual;
++}
++
++#define add_alias(field) \\
++	if (source[n].field >= 0) { \\
++		(*actual)[n].field = strings + source[n].field; \\
++	}
++
++static const struct alias *
++_nc_build_alias(struct alias **actual,
++		const alias_table_data *source,
++		const char *strings,
++		unsigned tablesize)
++{
++	if (*actual == 0) {
++		*actual = typeCalloc(struct alias, tablesize + 1);
++		if (*actual != 0) {
++			unsigned n;
++			for (n = 0; n < tablesize; ++n) {
++				add_alias(from);
++				add_alias(to);
++				add_alias(source);
++			}
++		}
++	}
++	return *actual;
++}
++
++#define build_names(root) _nc_build_names(&_nc_##root##_table, \\
++					  root##_names_data, \\
++					  root##_names_text)
++#define build_alias(root) _nc_build_alias(&_nc_##root##alias_table, \\
++					  root##alias_data, \\
++					  root##alias_text, \\
++					  SIZEOF(root##alias_data))
++#else
++#define build_names(root) _nc_ ## root ## _table
++#define build_alias(root) _nc_ ## root ## alias_table
++#endif
++
++NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
++{
++	return termcap ? build_names(cap) : build_names(info) ;
++}
++
++NCURSES_EXPORT(const short *) _nc_get_hash_table (bool termcap)
++{
++	return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
++}
++
++NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool termcap)
++{
++	return termcap ? build_alias(cap) : build_alias(info) ;
++}
++
++#if NO_LEAKS
++NCURSES_EXPORT(void) _nc_comp_captab_leaks(void)
++{
++#if $OPT1
++	FreeIfNeeded(_nc_cap_table);
++	FreeIfNeeded(_nc_info_table);
++	FreeIfNeeded(_nc_capalias_table);
++	FreeIfNeeded(_nc_infoalias_table);
++#endif
++}
++#endif /* NO_LEAKS */
++EOF
+Index: ncurses/tinfo/MKcodes.awk
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/MKcodes.awk	2007-11-03 20:24:15.000000000 +0000
+@@ -0,0 +1,161 @@
++##############################################################################
++# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
++#                                                                            #
++# Permission is hereby granted, free of charge, to any person obtaining a    #
++# copy of this software and associated documentation files (the "Software"), #
++# to deal in the Software without restriction, including without limitation  #
++# the rights to use, copy, modify, merge, publish, distribute, distribute    #
++# with modifications, sublicense, and/or sell copies of the Software, and to #
++# permit persons to whom the Software is furnished to do so, subject to the  #
++# following conditions:                                                      #
++#                                                                            #
++# The above copyright notice and this permission notice shall be included in #
++# all copies or substantial portions of the Software.                        #
++#                                                                            #
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
++# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
++# DEALINGS IN THE SOFTWARE.                                                  #
++#                                                                            #
++# Except as contained in this notice, the name(s) of the above copyright     #
++# holders shall not be used in advertising or otherwise to promote the sale, #
++# use or other dealings in this Software without prior written               #
++# authorization.                                                             #
++##############################################################################
++# $Id: MKcodes.awk,v 1.4 2007/11/03 20:24:15 tom Exp $
++function large_item(value) {
++	result = sprintf("%d,", offset);
++	offset = offset + length(value) + 1;
++	offcol = offcol + length(result) + 2;
++	if (offcol > 70) {
++		result = result "\n";
++		offcol = 0;
++	} else {
++		result = result " ";
++	}
++	bigstr = bigstr sprintf("\"%s\\0\" ", value);
++	bigcol = bigcol + length(value) + 5;
++	if (bigcol > 70) {
++		bigstr = bigstr "\\\n";
++		bigcol = 0;
++	}
++	return result;
++}
++
++function small_item(value) {
++	return sprintf("\t\t\"%s\",\n", value);
++}
++
++function print_strings(name,value) {
++	printf  "DCL(%s) = {\n", name
++	print  value
++	print  "\t\t(NCURSES_CONST char *)0,"
++	print  "};"
++	print  ""
++}
++
++function print_offsets(name,value) {
++	printf  "static const short _nc_offset_%s[] = {\n", name
++	printf "%s",  value
++	print  "};"
++	print  ""
++	printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
++	print  ""
++}
++
++BEGIN	{
++		print  "/* This file was generated by MKcodes.awk */"
++		print  ""
++		print  "#include <curses.priv.h>"
++		print  ""
++		print  "#define IT NCURSES_CONST char * const"
++		print  ""
++		offset = 0;
++		offcol = 0;
++		bigcol = 0;
++	}
++
++$1 ~ /^#/		{next;}
++
++$1 == "SKIPWARN"	{next;}
++
++$3 == "bool"	{
++			small_boolcodes = small_boolcodes small_item($4);
++			large_boolcodes = large_boolcodes large_item($4);
++		}
++
++$3 == "num"	{
++			small_numcodes = small_numcodes small_item($4);
++			large_numcodes = large_numcodes large_item($4);
++		}
++
++$3 == "str"	{
++			small_strcodes = small_strcodes small_item($4);
++			large_strcodes = large_strcodes large_item($4);
++		}
++
++END	{
++		print  ""
++		print  "#if BROKEN_LINKER || USE_REENTRANT"
++		print  ""
++		print  "#include <term.h>"
++		print  ""
++		if (bigstrings) {
++			printf "static const char _nc_code_blob[] = \n"
++			printf "%s;\n", bigstr;
++			print_offsets("boolcodes", large_boolcodes);
++			print_offsets("numcodes", large_numcodes);
++			print_offsets("strcodes", large_strcodes);
++			print  ""
++			print  "static IT *"
++			print  "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
++			print  "{"
++			print  "	if (*value == 0) {"
++			print  "		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
++			print  "			unsigned n;"
++			print  "			for (n = 0; n < size; ++n) {"
++			print  "				(*value)[n] = _nc_code_blob + offsets[n];"
++			print  "			}"
++			print  "		}"
++			print  "	}"
++			print  "	return *value;"
++			print  "}"
++			print  ""
++			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
++		} else {
++			print  "#define DCL(it) static IT data##it[]"
++			print  ""
++			print_strings("boolcodes", small_boolcodes);
++			print_strings("numcodes", small_numcodes);
++			print_strings("strcodes", small_strcodes);
++			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
++		}
++		print  ""
++		print  "FIX(boolcodes)"
++		print  "FIX(numcodes)"
++		print  "FIX(strcodes)"
++		print  ""
++		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
++		print  ""
++		print  "NCURSES_EXPORT(void)"
++		print  "_nc_codes_leaks(void)"
++		print  "{"
++		if (bigstrings) {
++		print  "FREE_FIX(boolcodes)"
++		print  "FREE_FIX(numcodes)"
++		print  "FREE_FIX(strcodes)"
++		}
++		print  "}"
++		print  "#else"
++		print  ""
++		print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
++		print  ""
++		print_strings("boolcodes", small_boolcodes);
++		print_strings("numcodes", small_numcodes);
++		print_strings("strcodes", small_strcodes);
++		print  ""
++		print  "#endif /* BROKEN_LINKER */"
++	}
+Index: ncurses/tinfo/MKnames.awk
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/tinfo/MKnames.awk	2006-04-22 21:46:17.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/MKnames.awk	2007-11-03 20:24:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 2007 Free Software Foundation, Inc.                          #
+ #                                                                            #
+ # Permission is hereby granted, free of charge, to any person obtaining a    #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -25,101 +25,159 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: MKnames.awk,v 1.12 2006/04/22 21:46:17 tom Exp $
+-BEGIN		{
+-			print  "/* This file was generated by MKnames.awk */" > "namehdr"
+-			print  ""				> "namehdr"
+-			print  "#include <curses.priv.h>"	> "namehdr"
+-			print  ""				> "namehdr"
+-			print  "#define IT NCURSES_CONST char * const"	> "namehdr"
+-			print  ""				> "namehdr"
+-			print  "#if BROKEN_LINKER"		> "namehdr"
+-			print  "#include <term.h>"		> "namehdr"
+-			print  "#define DCL(it) static IT data##it[]" > "namehdr"
+-			print  "#else"				> "namehdr"
+-			print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"	> "namehdr"
+-			print  "#endif"				> "namehdr"
+-			print  ""				> "namehdr"
+-			print  "/*"				> "boolnames"
+-			print  " *	names.c - Arrays of capability names and codes"  > "boolnames"
+-			print  " *"				> "boolnames"
+-			print  " */"				> "boolnames"
+-			print  ""				> "boolnames"
+-			print  "DCL(boolnames)  = {"		> "boolnames"
+-			print  "DCL(boolfnames) = {"		> "boolfnames"
+-			print  "DCL(boolcodes)  = {"		> "boolcodes"
+-			print  "DCL(numnames)   = {"		> "numnames"
+-			print  "DCL(numfnames)  = {"		> "numfnames"
+-			print  "DCL(numcodes)   = {"		> "numcodes"
+-			print  "DCL(strnames)   = {"		> "strnames"
+-			print  "DCL(strfnames)  = {"		> "strfnames"
+-			print  "DCL(strcodes)   = {"		> "strcodes"
+-		}
++# $Id: MKnames.awk,v 1.18 2007/11/03 20:24:15 tom Exp $
++function large_item(value) {
++	result = sprintf("%d,", offset);
++	offset = offset + length(value) + 1;
++	offcol = offcol + length(result) + 2;
++	if (offcol > 70) {
++		result = result "\n";
++		offcol = 0;
++	} else {
++		result = result " ";
++	}
++	bigstr = bigstr sprintf("\"%s\\0\" ", value);
++	bigcol = bigcol + length(value) + 5;
++	if (bigcol > 70) {
++		bigstr = bigstr "\\\n";
++		bigcol = 0;
++	}
++	return result;
++}
++
++function small_item(value) {
++	return sprintf("\t\t\"%s\",\n", value);
++}
++
++function print_strings(name,value) {
++	printf  "DCL(%s) = {\n", name
++	print  value
++	print  "\t\t(NCURSES_CONST char *)0,"
++	print  "};"
++	print  ""
++}
++
++function print_offsets(name,value) {
++	printf  "static const short _nc_offset_%s[] = {\n", name
++	printf "%s",  value
++	print  "};"
++	print  ""
++	printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
++	print  ""
++}
++
++BEGIN	{
++		print  "/* This file was generated by MKnames.awk */"
++		print  ""
++		print  "#include <curses.priv.h>"
++		print  ""
++		print  "#define IT NCURSES_CONST char * const"
++		print  ""
++		offset = 0;
++		offcol = 0;
++		bigcol = 0;
++	}
+ 
+ $1 ~ /^#/		{next;}
+ 
+ $1 == "SKIPWARN"	{next;}
+ 
+ $3 == "bool"	{
+-			printf "\t\t\"%s\",\n", $2 > "boolnames"
+-			printf "\t\t\"%s\",\n", $1 > "boolfnames"
+-			printf "\t\t\"%s\",\n", $4 > "boolcodes"
++			small_boolnames = small_boolnames small_item($2);
++			large_boolnames = large_boolnames large_item($2);
++			small_boolfnames = small_boolfnames small_item($1);
++			large_boolfnames = large_boolfnames large_item($1);
+ 		}
+ 
+ $3 == "num"	{
+-			printf "\t\t\"%s\",\n", $2 > "numnames"
+-			printf "\t\t\"%s\",\n", $1 > "numfnames"
+-			printf "\t\t\"%s\",\n", $4 > "numcodes"
++			small_numnames = small_numnames small_item($2);
++			large_numnames = large_numnames large_item($2);
++			small_numfnames = small_numfnames small_item($1);
++			large_numfnames = large_numfnames large_item($1);
+ 		}
+ 
+ $3 == "str"	{
+-			printf "\t\t\"%s\",\n", $2 > "strnames"
+-			printf "\t\t\"%s\",\n", $1 > "strfnames"
+-			printf "\t\t\"%s\",\n", $4 > "strcodes"
++			small_strnames = small_strnames small_item($2);
++			large_strnames = large_strnames large_item($2);
++			small_strfnames = small_strfnames small_item($1);
++			large_strfnames = large_strfnames large_item($1);
+ 		}
+ 
+-END		{
+-			print  "\t\t(NCURSES_CONST char *)0," > "boolnames"
+-			print  "};" > "boolnames"
+-			print  "" > "boolnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "boolfnames"
+-			print  "};" > "boolfnames"
+-			print  "" > "boolfnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "boolcodes"
+-			print  "};" > "boolcodes"
+-			print  "" > "boolcodes"
+-			print  "\t\t(NCURSES_CONST char *)0," > "numnames"
+-			print  "};" > "numnames"
+-			print  "" > "numnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "numfnames"
+-			print  "};" > "numfnames"
+-			print  "" > "numfnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "numcodes"
+-			print  "};" > "numcodes"
+-			print  "" > "numcodes"
+-			print  "\t\t(NCURSES_CONST char *)0," > "strnames"
+-			print  "};" > "strnames"
+-			print  "" > "strnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "strfnames"
+-			print  "};" > "strfnames"
+-			print  "" > "strfnames"
+-			print  "\t\t(NCURSES_CONST char *)0," > "strcodes"
+-			print  "};"				> "strcodes"
+-			print  ""				> "strcodes"
+-			print  "#if BROKEN_LINKER"		> "nameftr"
+-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "nameftr"
+-			print  "FIX(boolnames)"			> "nameftr"
+-			print  "FIX(boolfnames)"		> "nameftr"
+-			print  "FIX(numnames)"			> "nameftr"
+-			print  "FIX(numfnames)"			> "nameftr"
+-			print  "FIX(strnames)"			> "nameftr"
+-			print  "FIX(strfnames)"			> "nameftr"
+-			print  "#endif /* BROKEN_LINKER */"	> "nameftr"
+-			print  ""				> "codeftr"
+-			print  "#if BROKEN_LINKER"		> "codeftr"
+-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "codeftr"
+-			print  "FIX(boolcodes)"			> "codeftr"
+-			print  "FIX(numcodes)"			> "codeftr"
+-			print  "FIX(strcodes)"			> "codeftr"
+-			print  "#endif /* BROKEN_LINKER */"	> "codeftr"
++END	{
++		print  ""
++		print  "#if BROKEN_LINKER || USE_REENTRANT"
++		print  ""
++		print  "#include <term.h>"
++		print  ""
++		if (bigstrings) {
++			printf "static const char _nc_name_blob[] = \n"
++			printf "%s;\n", bigstr;
++			print_offsets("boolfnames", large_boolfnames);
++			print_offsets("boolnames", large_boolnames);
++			print_offsets("numfnames", large_numfnames);
++			print_offsets("numnames", large_numnames);
++			print_offsets("strfnames", large_strfnames);
++			print_offsets("strnames", large_strnames);
++			print  ""
++			print  "static IT *"
++			print  "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
++			print  "{"
++			print  "	if (*value == 0) {"
++			print  "		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
++			print  "			unsigned n;"
++			print  "			for (n = 0; n < size; ++n) {"
++			print  "				(*value)[n] = _nc_name_blob + offsets[n];"
++			print  "			}"
++			print  "		}"
++			print  "	}"
++			print  "	return *value;"
++			print  "}"
++			print  ""
++			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
++		} else {
++			print  "#define DCL(it) static IT data##it[]"
++			print  ""
++			print_strings("boolnames", small_boolnames);
++			print_strings("boolfnames", small_boolfnames);
++			print_strings("numnames", small_numnames);
++			print_strings("numfnames", small_numfnames);
++			print_strings("strnames", small_strnames);
++			print_strings("strfnames", small_strfnames);
++			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
++		}
++		print  ""
++		print  "FIX(boolnames)"
++		print  "FIX(boolfnames)"
++		print  "FIX(numnames)"
++		print  "FIX(numfnames)"
++		print  "FIX(strnames)"
++		print  "FIX(strfnames)"
++		print  ""
++		print  ""
++		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
++		print  ""
++		print  "NCURSES_EXPORT(void)"
++		print  "_nc_names_leaks(void)"
++		print  "{"
++		if (bigstrings) {
++		print  "FREE_FIX(boolnames)"
++		print  "FREE_FIX(boolfnames)"
++		print  "FREE_FIX(numnames)"
++		print  "FREE_FIX(numfnames)"
++		print  "FREE_FIX(strnames)"
++		print  "FREE_FIX(strfnames)"
+ 		}
++		print  "}"
++		print  "#else"
++		print  ""
++		print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
++		print  ""
++		print_strings("boolnames", small_boolnames);
++		print_strings("boolfnames", small_boolfnames);
++		print_strings("numnames", small_numnames);
++		print_strings("numfnames", small_numfnames);
++		print_strings("strnames", small_strnames);
++		print_strings("strfnames", small_strfnames);
++		print  ""
++		print  "#endif /* BROKEN_LINKER */"
++	}
+Index: ncurses/tinfo/access.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/tinfo/access.c	2006-08-05 17:18:14.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/access.c	2007-11-18 00:57:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,12 +32,13 @@
+ 
+ #include <curses.priv.h>
+ 
++#include <ctype.h>
+ #include <sys/stat.h>
+ 
+ #include <tic.h>
+ #include <nc_alloc.h>
+ 
+-MODULE_ID("$Id: access.c,v 1.12 2006/08/05 17:18:14 tom Exp $")
++MODULE_ID("$Id: access.c,v 1.14 2007/11/18 00:57:53 tom Exp $")
+ 
+ #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+ 
+@@ -45,14 +46,13 @@
+ _nc_rootname(char *path)
+ {
+     char *result = _nc_basename(path);
+-#if !defined(MIXEDCASE_FILENAMES) || defined(PROG_EXT)
++#if !MIXEDCASE_FILENAMES || defined(PROG_EXT)
+     static char *temp;
+     char *s;
+ 
+     temp = strdup(result);
+     result = temp;
+-#if !defined(MIXEDCASE_FILENAMES)
+-    int n;
++#if !MIXEDCASE_FILENAMES
+     for (s = result; *s != '\0'; ++s) {
+ 	*s = LOWERCASE(*s);
+     }
+Index: ncurses/tinfo/add_tries.c
+Prereq:  1.5 
+--- ncurses-5.6/ncurses/tinfo/add_tries.c	2005-11-20 01:32:48.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/add_tries.c	2006-12-30 23:15:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,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            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey <dickey@clark.net> 1998                        *
++ *  Author: Thomas E. Dickey            1998-on                             *
+  ****************************************************************************/
+ 
+ /*
+@@ -39,20 +39,20 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: add_tries.c,v 1.5 2005/11/20 01:32:48 tom Exp $")
++MODULE_ID("$Id: add_tries.c,v 1.8 2006/12/30 23:15:26 tom Exp $")
+ 
+ #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
+ #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
+ 
+-NCURSES_EXPORT(void)
+-_nc_add_to_try(struct tries **tree, const char *str, unsigned code)
++NCURSES_EXPORT(int)
++_nc_add_to_try(TRIES ** tree, const char *str, unsigned code)
+ {
+-    static bool out_of_memory = FALSE;
+-    struct tries *ptr, *savedptr;
++    TRIES *ptr, *savedptr;
+     unsigned const char *txt = (unsigned const char *) str;
+ 
+-    if (txt == 0 || *txt == '\0' || out_of_memory || code == 0)
+-	return;
++    T((T_CALLED("_nc_add_to_try(%p, %s, %u)"), *tree, _nc_visbuf(str), code));
++    if (txt == 0 || *txt == '\0' || code == 0)
++	returnCode(ERR);
+ 
+     if ((*tree) != 0) {
+ 	ptr = savedptr = (*tree);
+@@ -67,16 +67,15 @@
+ 	    if (CMP_TRY(ptr->ch, cmp)) {
+ 		if (*(++txt) == '\0') {
+ 		    ptr->value = code;
+-		    return;
++		    returnCode(OK);
+ 		}
+ 		if (ptr->child != 0)
+ 		    ptr = ptr->child;
+ 		else
+ 		    break;
+ 	    } else {
+-		if ((ptr->sibling = typeCalloc(struct tries, 1)) == 0) {
+-		    out_of_memory = TRUE;
+-		    return;
++		if ((ptr->sibling = typeCalloc(TRIES, 1)) == 0) {
++		    returnCode(ERR);
+ 		}
+ 
+ 		savedptr = ptr = ptr->sibling;
+@@ -87,11 +86,10 @@
+ 	    }
+ 	}			/* end for (;;) */
+     } else {			/* (*tree) == 0 :: First sequence to be added */
+-	savedptr = ptr = (*tree) = typeCalloc(struct tries, 1);
++	savedptr = ptr = (*tree) = typeCalloc(TRIES, 1);
+ 
+ 	if (ptr == 0) {
+-	    out_of_memory = TRUE;
+-	    return;
++	    returnCode(ERR);
+ 	}
+ 
+ 	SET_TRY(ptr, txt);
+@@ -101,19 +99,16 @@
+     /* at this point, we are adding to the try.  ptr->child == 0 */
+ 
+     while (*txt) {
+-	ptr->child = typeCalloc(struct tries, 1);
++	ptr->child = typeCalloc(TRIES, 1);
+ 
+ 	ptr = ptr->child;
+ 
+ 	if (ptr == 0) {
+-	    out_of_memory = TRUE;
+-
+ 	    while ((ptr = savedptr) != 0) {
+ 		savedptr = ptr->child;
+ 		free(ptr);
+ 	    }
+-
+-	    return;
++	    returnCode(ERR);
+ 	}
+ 
+ 	SET_TRY(ptr, txt);
+@@ -121,5 +116,5 @@
+     }
+ 
+     ptr->value = code;
+-    return;
++    returnCode(OK);
+ }
+Index: ncurses/tinfo/comp_error.c
+Prereq:  1.30 
+--- ncurses-5.6/ncurses/tinfo/comp_error.c	2005-11-26 15:28:47.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/comp_error.c	2007-04-21 23:38:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,36 +41,36 @@
+ 
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: comp_error.c,v 1.30 2005/11/26 15:28:47 tom Exp $")
++MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
+ 
+ NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
+ NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
+ NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
+ 
+-static const char *sourcename;
+-static char *termtype;
++#define SourceName	_nc_globals.comp_sourcename
++#define TermType	_nc_globals.comp_termtype
+ 
+ NCURSES_EXPORT(const char *)
+ _nc_get_source(void)
+ {
+-    return sourcename;
++    return SourceName;
+ }
+ 
+ NCURSES_EXPORT(void)
+ _nc_set_source(const char *const name)
+ {
+-    sourcename = name;
++    SourceName = name;
+ }
+ 
+ NCURSES_EXPORT(void)
+ _nc_set_type(const char *const name)
+ {
+-    if (termtype == 0)
+-	termtype = typeMalloc(char, MAX_NAME_SIZE + 1);
+-    if (termtype != 0) {
+-	termtype[0] = '\0';
++    if (TermType == 0)
++	TermType = typeMalloc(char, MAX_NAME_SIZE + 1);
++    if (TermType != 0) {
++	TermType[0] = '\0';
+ 	if (name)
+-	    strncat(termtype, name, MAX_NAME_SIZE);
++	    strncat(TermType, name, MAX_NAME_SIZE);
+     }
+ }
+ 
+@@ -78,25 +78,25 @@
+ _nc_get_type(char *name)
+ {
+ #if NO_LEAKS
+-    if (name == 0 && termtype != 0) {
+-	FreeAndNull(termtype);
++    if (name == 0 && TermType != 0) {
++	FreeAndNull(TermType);
+ 	return;
+     }
+ #endif
+     if (name != 0)
+-	strcpy(name, termtype != 0 ? termtype : "");
++	strcpy(name, TermType != 0 ? TermType : "");
+ }
+ 
+ static NCURSES_INLINE void
+ where_is_problem(void)
+ {
+-    fprintf(stderr, "\"%s\"", sourcename);
++    fprintf(stderr, "\"%s\"", SourceName ? SourceName : "?");
+     if (_nc_curr_line >= 0)
+ 	fprintf(stderr, ", line %d", _nc_curr_line);
+     if (_nc_curr_col >= 0)
+ 	fprintf(stderr, ", col %d", _nc_curr_col);
+-    if (termtype != 0 && termtype[0] != '\0')
+-	fprintf(stderr, ", terminal '%s'", termtype);
++    if (TermType != 0 && TermType[0] != '\0')
++	fprintf(stderr, ", terminal '%s'", TermType);
+     fputc(':', stderr);
+     fputc(' ', stderr);
+ }
+Index: ncurses/tinfo/comp_hash.c
+Prereq:  1.28 
+--- ncurses-5.6/ncurses/tinfo/comp_hash.c	2005-08-20 19:58:18.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/comp_hash.c	2007-08-18 21:42:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -50,7 +50,7 @@
+ #define DEBUG(level, params)	/*nothing */
+ #endif
+ 
+-MODULE_ID("$Id: comp_hash.c,v 1.28 2005/08/20 19:58:18 tom Exp $")
++MODULE_ID("$Id: comp_hash.c,v 1.33 2007/08/18 21:42:25 tom Exp $")
+ 
+ static int hash_function(const char *);
+ 
+@@ -71,21 +71,24 @@
+ 
+ static void
+ _nc_make_hash_table(struct name_table_entry *table,
+-		    struct name_table_entry **hash_table)
++		    short *hash_table)
+ {
+     int i;
+     int hashvalue;
+     int collisions = 0;
+ 
++    for (i = 0; i < HASHTABSIZE; i++) {
++	hash_table[i] = -1;
++    }
+     for (i = 0; i < CAPTABSIZE; i++) {
+ 	hashvalue = hash_function(table[i].nte_name);
+ 
+-	if (hash_table[hashvalue] != (struct name_table_entry *) 0)
++	if (hash_table[hashvalue] >= 0)
+ 	    collisions++;
+ 
+ 	if (hash_table[hashvalue] != 0)
+-	    table[i].nte_link = (short) (hash_table[hashvalue] - table);
+-	hash_table[hashvalue] = &table[i];
++	    table[i].nte_link = hash_table[hashvalue];
++	hash_table[hashvalue] = i;
+     }
+ 
+     DEBUG(4, ("Hash table complete: %d collisions out of %d entries",
+@@ -130,18 +133,21 @@
+ #ifndef MAIN_PROGRAM
+ NCURSES_EXPORT(struct name_table_entry const *)
+ _nc_find_entry(const char *string,
+-	       const struct name_table_entry *const *hash_table)
++	       const short *hash_table)
+ {
+     int hashvalue;
+-    struct name_table_entry const *ptr;
++    struct name_table_entry const *ptr = 0;
++    struct name_table_entry const *real_table;
+ 
+     hashvalue = hash_function(string);
+ 
+-    if ((ptr = hash_table[hashvalue]) != 0) {
++    if (hash_table[hashvalue] >= 0) {
++	real_table = _nc_get_table(hash_table != _nc_get_hash_table(FALSE));
++	ptr = real_table + hash_table[hashvalue];
+ 	while (strcmp(ptr->nte_name, string) != 0) {
+ 	    if (ptr->nte_link < 0)
+ 		return 0;
+-	    ptr = ptr->nte_link + hash_table[HASHTABSIZE];
++	    ptr = real_table + (ptr->nte_link + hash_table[HASHTABSIZE]);
+ 	}
+     }
+ 
+@@ -231,10 +237,10 @@
+ {
+     struct name_table_entry *name_table = typeCalloc(struct
+ 						     name_table_entry, CAPTABSIZE);
+-    struct name_table_entry **hash_table = typeCalloc(struct name_table_entry
+-						      *, HASHTABSIZE);
++    short *hash_table = typeCalloc(short, HASHTABSIZE);
+     const char *root_name = "";
+     int column = 0;
++    int bigstring = 0;
+     int n;
+     char buffer[BUFSIZ];
+ 
+@@ -248,11 +254,12 @@
+     /* The first argument is the column-number (starting with 0).
+      * The second is the root name of the tables to generate.
+      */
+-    if (argc <= 2
++    if (argc <= 3
+ 	|| (column = atoi(argv[1])) <= 0
+ 	|| (column >= MAX_COLUMNS)
+-	|| *(root_name = argv[2]) == 0) {
+-	fprintf(stderr, "usage: make_hash column root_name\n");
++	|| *(root_name = argv[2]) == 0
++	|| (bigstring = atoi(argv[3])) < 0) {
++	fprintf(stderr, "usage: make_hash column root_name bigstring\n");
+ 	exit(EXIT_FAILURE);
+     }
+ 
+@@ -288,36 +295,64 @@
+     /*
+      * Write the compiled tables to standard output
+      */
+-    printf("static struct name_table_entry const _nc_%s_table[] =\n",
+-	   root_name);
+-    printf("{\n");
+-    for (n = 0; n < CAPTABSIZE; n++) {
+-	sprintf(buffer, "\"%s\"",
+-		name_table[n].nte_name);
+-	printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
+-	       buffer,
+-	       typenames[name_table[n].nte_type],
+-	       name_table[n].nte_index,
+-	       name_table[n].nte_link,
+-	       n < CAPTABSIZE - 1 ? ',' : ' ');
++    if (bigstring) {
++	int len = 0;
++	int nxt;
++
++	printf("static const char %s_names_text[] = \\\n", root_name);
++	for (n = 0; n < CAPTABSIZE; n++) {
++	    nxt = strlen(name_table[n].nte_name) + 5;
++	    if (nxt + len > 72) {
++		printf("\\\n");
++		len = 0;
++	    }
++	    printf("\"%s\\0\" ", name_table[n].nte_name);
++	    len += nxt;
++	}
++	printf(";\n\n");
++
++	len = 0;
++	printf("static name_table_data const %s_names_data[] =\n",
++	       root_name);
++	printf("{\n");
++	for (n = 0; n < CAPTABSIZE; n++) {
++	    printf("\t{ %15d,\t%10s,\t%3d, %3d }%c\n",
++		   len,
++		   typenames[name_table[n].nte_type],
++		   name_table[n].nte_index,
++		   name_table[n].nte_link,
++		   n < CAPTABSIZE - 1 ? ',' : ' ');
++	    len += strlen(name_table[n].nte_name) + 1;
++	}
++	printf("};\n\n");
++	printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
++    } else {
++
++	printf("static struct name_table_entry %s _nc_%s_table[] =\n",
++	       bigstring ? "" : "const",
++	       root_name);
++	printf("{\n");
++	for (n = 0; n < CAPTABSIZE; n++) {
++	    sprintf(buffer, "\"%s\"",
++		    name_table[n].nte_name);
++	    printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
++		   buffer,
++		   typenames[name_table[n].nte_type],
++		   name_table[n].nte_index,
++		   name_table[n].nte_link,
++		   n < CAPTABSIZE - 1 ? ',' : ' ');
++	}
++	printf("};\n\n");
+     }
+-    printf("};\n\n");
+ 
+-    printf("const struct name_table_entry * const _nc_%s_hash_table[%d] =\n",
++    printf("static const short _nc_%s_hash_table[%d] =\n",
+ 	   root_name,
+ 	   HASHTABSIZE + 1);
+     printf("{\n");
+     for (n = 0; n < HASHTABSIZE; n++) {
+-	if (hash_table[n] != 0) {
+-	    sprintf(buffer, "_nc_%s_table + %3ld",
+-		    root_name,
+-		    (long) (hash_table[n] - name_table));
+-	} else {
+-	    strcpy(buffer, "0");
+-	}
+-	printf("\t%s,\n", buffer);
++	printf("\t%3d,\n", hash_table[n]);
+     }
+-    printf("\t_nc_%s_table\t/* base-of-table */\n", root_name);
++    printf("\t0\t/* base-of-table */\n");
+     printf("};\n\n");
+ 
+     printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n",
+Index: ncurses/tinfo/comp_parse.c
+Prereq:  1.63 
+--- ncurses-5.6/ncurses/tinfo/comp_parse.c	2006-07-08 18:55:14.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/comp_parse.c	2007-11-03 20:41:46.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -53,7 +53,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: comp_parse.c,v 1.63 2006/07/08 18:55:14 tom Exp $")
++MODULE_ID("$Id: comp_parse.c,v 1.68 2007/11/03 20:41:46 tom Exp $")
+ 
+ static void sanity_check2(TERMTYPE *, bool);
+ NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
+@@ -62,30 +62,6 @@
+ static void sanity_check(TERMTYPE *);
+ NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
+ 
+-/****************************************************************************
+- *
+- * Entry queue handling
+- *
+- ****************************************************************************/
+-/*
+- *  The entry list is a doubly linked list with NULLs terminating the lists:
+- *
+- *	  ---------   ---------   ---------
+- *	  |       |   |       |   |       |   offset
+- *        |-------|   |-------|   |-------|
+- *	  |   ----+-->|   ----+-->|  NULL |   next
+- *	  |-------|   |-------|   |-------|
+- *	  |  NULL |<--+----   |<--+----   |   last
+- *	  ---------   ---------   ---------
+- *	      ^                       ^
+- *	      |                       |
+- *	      |                       |
+- *	   _nc_head                _nc_tail
+- */
+-
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
+-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
+-
+ static void
+ enqueue(ENTRY * ep)
+ /* add an entry to the in-core list */
+@@ -103,51 +79,6 @@
+ 	newp->last->next = newp;
+ }
+ 
+-NCURSES_EXPORT(void)
+-_nc_free_entries(ENTRY * headp)
+-/* free the allocated storage consumed by list entries */
+-{
+-    (void) headp;		/* unused - _nc_head is altered here! */
+-
+-    while (_nc_head != 0) {
+-	_nc_free_termtype(&(_nc_head->tterm));
+-    }
+-}
+-
+-NCURSES_EXPORT(ENTRY *)
+-_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
+-/* delink the allocated storage for the given list entry */
+-{
+-    ENTRY *ep, *last;
+-
+-    for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
+-	if (&(ep->tterm) == tterm) {
+-	    if (last != 0) {
+-		last->next = ep->next;
+-	    }
+-	    if (ep == _nc_head) {
+-		_nc_head = ep->next;
+-	    }
+-	    if (ep == _nc_tail) {
+-		_nc_tail = last;
+-	    }
+-	    break;
+-	}
+-    }
+-    return ep;
+-}
+-
+-NCURSES_EXPORT(void)
+-_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
+-/* free the allocated storage consumed by the given list entry */
+-{
+-    ENTRY *ep;
+-
+-    if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
+-	free(ep);
+-    }
+-}
+-
+ static char *
+ force_bar(char *dst, char *src)
+ {
+@@ -534,3 +465,26 @@
+ {
+     sanity_check2(tp, FALSE);
+ }
++
++#if NO_LEAKS
++NCURSES_EXPORT(void)
++_nc_leaks_tic(void)
++{
++    _nc_alloc_entry_leaks();
++    _nc_captoinfo_leaks();
++    _nc_comp_captab_leaks();
++    _nc_comp_scan_leaks();
++#if BROKEN_LINKER || USE_REENTRANT
++    _nc_names_leaks();
++    _nc_codes_leaks();
++#endif
++    _nc_tic_expand(0, FALSE, 0);
++}
++
++NCURSES_EXPORT(void)
++_nc_free_tic(int code)
++{
++    _nc_leaks_tic();
++    _nc_free_tinfo(code);
++}
++#endif
+Index: ncurses/tinfo/db_iterator.c
+Prereq:  1.5 
+--- ncurses-5.6/ncurses/tinfo/db_iterator.c	2006-12-16 19:06:42.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/db_iterator.c	2007-04-22 00:00:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey                     2006                       *
++ *  Author: Thomas E. Dickey                                                *
+  ****************************************************************************/
+ 
+ /*
+@@ -38,10 +38,11 @@
+ 
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: db_iterator.c,v 1.5 2006/12/16 19:06:42 tom Exp $")
++MODULE_ID("$Id: db_iterator.c,v 1.6 2007/04/22 00:00:26 tom Exp $")
+ 
+-static bool have_tic_directory = FALSE;
+-static bool keep_tic_directory = FALSE;
++#define HaveTicDirectory _nc_globals.have_tic_directory
++#define KeepTicDirectory _nc_globals.keep_tic_directory
++#define TicDirectory     _nc_globals.tic_directory
+ 
+ /*
+  * Record the "official" location of the terminfo directory, according to
+@@ -50,19 +51,17 @@
+ NCURSES_EXPORT(const char *)
+ _nc_tic_dir(const char *path)
+ {
+-    static const char *result = TERMINFO;
+-
+-    if (!keep_tic_directory) {
++    if (!KeepTicDirectory) {
+ 	if (path != 0) {
+-	    result = path;
+-	    have_tic_directory = TRUE;
+-	} else if (!have_tic_directory && use_terminfo_vars()) {
++	    TicDirectory = path;
++	    HaveTicDirectory = TRUE;
++	} else if (!HaveTicDirectory && use_terminfo_vars()) {
+ 	    char *envp;
+ 	    if ((envp = getenv("TERMINFO")) != 0)
+ 		return _nc_tic_dir(envp);
+ 	}
+     }
+-    return result;
++    return TicDirectory;
+ }
+ 
+ /*
+@@ -74,16 +73,15 @@
+ _nc_keep_tic_dir(const char *path)
+ {
+     _nc_tic_dir(path);
+-    keep_tic_directory = TRUE;
++    KeepTicDirectory = TRUE;
+ }
+ 
+ /*
+  * Process the list of :-separated directories, looking for the terminal type.
+  * We don't use strtok because it does not show us empty tokens.
+  */
+-
+-static char *this_db_list = 0;
+-static int size_db_list;
++#define ThisDbList	_nc_globals.dbi_list
++#define ThisDbSize	_nc_globals.dbi_size
+ 
+ /*
+  * Cleanup.
+@@ -91,10 +89,10 @@
+ NCURSES_EXPORT(void)
+ _nc_last_db(void)
+ {
+-    if (this_db_list != 0) {
+-	FreeAndNull(this_db_list);
++    if (ThisDbList != 0) {
++	FreeAndNull(ThisDbList);
+     }
+-    size_db_list = 0;
++    ThisDbSize = 0;
+ }
+ 
+ /* The TERMINFO_DIRS value, if defined by the configure script, begins with a
+@@ -104,14 +102,14 @@
+ next_list_item(const char *source, int *offset)
+ {
+     if (source != 0) {
+-	FreeIfNeeded(this_db_list);
+-	this_db_list = strdup(source);
+-	size_db_list = strlen(source);
++	FreeIfNeeded(ThisDbList);
++	ThisDbList = strdup(source);
++	ThisDbSize = strlen(source);
+     }
+ 
+-    if (this_db_list != 0 && size_db_list && *offset < size_db_list) {
++    if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) {
+ 	static char system_db[] = TERMINFO;
+-	char *result = this_db_list + *offset;
++	char *result = ThisDbList + *offset;
+ 	char *marker = strchr(result, NCURSES_PATHSEP);
+ 
+ 	/*
+@@ -124,9 +122,9 @@
+ 	    marker = result + *offset;
+ 	} else {
+ 	    *marker++ = 0;
+-	    *offset = marker - this_db_list;
++	    *offset = marker - ThisDbList;
+ 	}
+-	if (*result == 0 && result != (this_db_list + size_db_list))
++	if (*result == 0 && result != (ThisDbList + ThisDbSize))
+ 	    result = system_db;
+ 	return result;
+     }
+@@ -153,7 +151,7 @@
+ 
+ 	switch (*state) {
+ 	case dbdTIC:
+-	    if (have_tic_directory)
++	    if (HaveTicDirectory)
+ 		result = _nc_tic_dir(0);
+ 	    break;
+ #if USE_DATABASE
+Index: ncurses/tinfo/entries.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/entries.c	2007-11-03 21:00:27.000000000 +0000
+@@ -0,0 +1,144 @@
++/****************************************************************************
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++
++/****************************************************************************
++ *  Author: Thomas E. Dickey                                                *
++ ****************************************************************************/
++
++#include <curses.priv.h>
++
++#include <ctype.h>
++
++#include <tic.h>
++#include <term_entry.h>
++
++MODULE_ID("$Id: entries.c,v 1.4 2007/11/03 21:00:27 tom Exp $")
++
++/****************************************************************************
++ *
++ * Entry queue handling
++ *
++ ****************************************************************************/
++/*
++ *  The entry list is a doubly linked list with NULLs terminating the lists:
++ *
++ *	  ---------   ---------   ---------
++ *	  |       |   |       |   |       |   offset
++ *        |-------|   |-------|   |-------|
++ *	  |   ----+-->|   ----+-->|  NULL |   next
++ *	  |-------|   |-------|   |-------|
++ *	  |  NULL |<--+----   |<--+----   |   last
++ *	  ---------   ---------   ---------
++ *	      ^                       ^
++ *	      |                       |
++ *	      |                       |
++ *	   _nc_head                _nc_tail
++ */
++
++NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
++NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
++
++NCURSES_EXPORT(void)
++_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
++/* free the allocated storage consumed by the given list entry */
++{
++    ENTRY *ep;
++
++    if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
++	free(ep);
++    }
++}
++
++NCURSES_EXPORT(void)
++_nc_free_entries(ENTRY * headp)
++/* free the allocated storage consumed by list entries */
++{
++    (void) headp;		/* unused - _nc_head is altered here! */
++
++    while (_nc_head != 0) {
++	_nc_free_termtype(&(_nc_head->tterm));
++    }
++}
++
++NCURSES_EXPORT(ENTRY *)
++_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
++/* delink the allocated storage for the given list entry */
++{
++    ENTRY *ep, *last;
++
++    for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
++	if (&(ep->tterm) == tterm) {
++	    if (last != 0) {
++		last->next = ep->next;
++	    }
++	    if (ep == _nc_head) {
++		_nc_head = ep->next;
++	    }
++	    if (ep == _nc_tail) {
++		_nc_tail = last;
++	    }
++	    break;
++	}
++    }
++    return ep;
++}
++
++NCURSES_EXPORT(void)
++_nc_leaks_tinfo(void)
++{
++    char *s;
++
++    T((T_CALLED("_nc_free_tinfo()")));
++#if NO_LEAKS
++    _nc_free_tparm();
++    _nc_tgetent_leaks();
++#endif
++    _nc_free_entries(_nc_head);
++    _nc_get_type(0);
++    _nc_first_name(0);
++#if NO_LEAKS
++    _nc_keyname_leaks();
++#endif
++#if BROKEN_LINKER || USE_REENTRANT
++    _nc_names_leaks();
++    _nc_codes_leaks();
++#endif
++
++    if ((s = _nc_home_terminfo()) != 0)
++	free(s);
++    returnVoid;
++}
++
++#if NO_LEAKS
++NCURSES_EXPORT(void)
++_nc_free_tinfo(int code)
++{
++    _nc_leaks_tinfo();
++    exit(code);
++}
++#endif
+Index: ncurses/tinfo/home_terminfo.c
+Prereq:  1.9 
+--- ncurses-5.6/ncurses/tinfo/home_terminfo.c	2005-07-02 19:43:38.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/home_terminfo.c	2007-04-21 23:11:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- *  Author: Thomas E. Dickey 1998,2000,2004,2005                            *
++ *  Author: Thomas E. Dickey                                                *
+  ****************************************************************************/
+ 
+ /*
+@@ -37,31 +37,32 @@
+ #include <curses.priv.h>
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: home_terminfo.c,v 1.9 2005/07/02 19:43:38 tom Exp $")
++MODULE_ID("$Id: home_terminfo.c,v 1.10 2007/04/21 23:11:53 tom Exp $")
+ 
+ #define my_length (strlen(home) + sizeof(PRIVATE_INFO))
+ 
+ /* ncurses extension...fall back on user's private directory */
+ 
++#define MyBuffer _nc_globals.home_terminfo
++
+ NCURSES_EXPORT(char *)
+ _nc_home_terminfo(void)
+ {
+     char *result = 0;
+-#ifdef USE_HOME_TERMINFO
++#if USE_HOME_TERMINFO
+     char *home;
+-    static char *temp = 0;
+ 
+     if (use_terminfo_vars()) {
+-	if (temp == 0) {
++	if (MyBuffer == 0) {
+ 	    if ((home = getenv("HOME")) != 0
+ 		&& my_length <= PATH_MAX) {
+-		temp = typeMalloc(char, my_length);
+-		if (temp == 0)
++		MyBuffer = typeMalloc(char, my_length);
++		if (MyBuffer == 0)
+ 		    _nc_err_abort(MSG_NO_MEMORY);
+-		(void) sprintf(temp, PRIVATE_INFO, home);
++		(void) sprintf(MyBuffer, PRIVATE_INFO, home);
+ 	    }
+ 	}
+-	result = temp;
++	result = MyBuffer;
+     }
+ #endif
+     return result;
+Index: ncurses/tinfo/init_keytry.c
+Prereq:  1.8 
+--- ncurses-5.6/ncurses/tinfo/init_keytry.c	2006-01-21 23:43:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/init_keytry.c	2007-04-29 22:57:50.000000000 +0000
+@@ -36,7 +36,7 @@
+ 
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: init_keytry.c,v 1.8 2006/01/21 23:43:28 tom Exp $")
++MODULE_ID("$Id: init_keytry.c,v 1.10 2007/04/29 22:57:50 tom Exp $")
+ 
+ /*
+ **      _nc_init_keytry()
+@@ -56,7 +56,7 @@
+ #endif*/
+ 
+ #if	BROKEN_LINKER
+-struct tinfo_fkeys *
++const struct tinfo_fkeys *
+ _nc_tinfo_fkeysf(void)
+ {
+     return _nc_tinfo_fkeys;
+@@ -76,9 +76,9 @@
+     if (SP != 0) {
+ 	for (n = 0; _nc_tinfo_fkeys[n].code; n++) {
+ 	    if (_nc_tinfo_fkeys[n].offset < STRCOUNT) {
+-		_nc_add_to_try(&(SP->_keytry),
+-			       CUR Strings[_nc_tinfo_fkeys[n].offset],
+-			       _nc_tinfo_fkeys[n].code);
++		(void) _nc_add_to_try(&(SP->_keytry),
++				      CUR Strings[_nc_tinfo_fkeys[n].offset],
++				      _nc_tinfo_fkeys[n].code);
+ 	    }
+ 	}
+ #if NCURSES_XNAMES
+@@ -96,9 +96,9 @@
+ 		    && *name == 'k'
+ 		    && value != 0
+ 		    && key_defined(value) == 0) {
+-		    _nc_add_to_try(&(SP->_keytry),
+-				   value,
+-				   n - STRCOUNT + KEY_MAX);
++		    (void) _nc_add_to_try(&(SP->_keytry),
++					  value,
++					  n - STRCOUNT + KEY_MAX);
+ 		}
+ 	    }
+ 	}
+Index: ncurses/tinfo/lib_acs.c
+Prereq:  1.30 
+--- ncurses-5.6/ncurses/tinfo/lib_acs.c	2006-01-07 21:27:15.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_acs.c	2007-09-29 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,17 +35,18 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* ena_acs, acs_chars */
+ 
+-MODULE_ID("$Id: lib_acs.c,v 1.30 2006/01/07 21:27:15 tom Exp $")
++MODULE_ID("$Id: lib_acs.c,v 1.34 2007/09/29 20:37:13 tom Exp $")
+ 
+-#if BROKEN_LINKER
++#if BROKEN_LINKER || USE_REENTRANT
++#define MyBuffer _nc_prescreen.real_acs_map
+ NCURSES_EXPORT_VAR(chtype *)
+ _nc_acs_map(void)
+ {
+-    static chtype *the_map = 0;
+-    if (the_map == 0)
+-	the_map = typeCalloc(chtype, ACS_LEN);
+-    return the_map;
++    if (MyBuffer == 0)
++	MyBuffer = typeCalloc(chtype, ACS_LEN);
++    return MyBuffer;
+ }
++#undef MyBuffer
+ #else
+ NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
+ {
+@@ -117,16 +118,6 @@
+     real_map['|'] = '!';	/* should be not-equal */
+     real_map['}'] = 'f';	/* should be pound-sterling symbol */
+ 
+-#if !USE_WIDEC_SUPPORT
+-    if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
+-	acs_chars = NULL;
+-	ena_acs = NULL;
+-	enter_alt_charset_mode = NULL;
+-	exit_alt_charset_mode = NULL;
+-	set_attributes = NULL;
+-    }
+-#endif
+-
+     if (ena_acs != NULL) {
+ 	TPUTS_TRACE("ena_acs");
+ 	putp(ena_acs);
+@@ -175,7 +166,7 @@
+     /* Show the equivalent mapping, noting if it does not match the
+      * given attribute, whether by re-ordering or duplication.
+      */
+-    if (_nc_tracing & TRACE_CALLS) {
++    if (USE_TRACEF(TRACE_CALLS)) {
+ 	size_t n, m;
+ 	char show[ACS_LEN * 2 + 1];
+ 	for (n = 1, m = 0; n < ACS_LEN; n++) {
+@@ -196,6 +187,7 @@
+ 		   ? "DIFF"
+ 		   : "SAME"),
+ 		_nc_visbuf(show));
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ }
+Index: ncurses/tinfo/lib_baudrate.c
+Prereq:  1.22 
+--- ncurses-5.6/ncurses/tinfo/lib_baudrate.c	2002-01-19 23:07:53.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_baudrate.c	2007-10-20 15:00:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000,2002 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
++ *     and: Thomas E. Dickey                        1996-on                 *
+  ****************************************************************************/
+ 
+ /*
+@@ -39,6 +40,9 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* cur_term, pad_char */
+ #include <termcap.h>		/* ospeed */
++#if defined(__FreeBSD__)
++#include <sys/param.h>
++#endif
+ 
+ /*
+  * These systems use similar header files, which define B1200 as 1200, etc.,
+@@ -46,7 +50,7 @@
+  * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
+  * ospeed's type for compatibility.
+  */
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
++#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #undef B0
+ #undef B50
+ #undef B75
+@@ -76,7 +80,7 @@
+ #undef USE_OLD_TTY
+ #endif /* USE_OLD_TTY */
+ 
+-MODULE_ID("$Id: lib_baudrate.c,v 1.22 2002/01/19 23:07:53 Andrey.A.Chernov Exp $")
++MODULE_ID("$Id: lib_baudrate.c,v 1.25 2007/10/20 15:00:41 Rong-En.Fan Exp $")
+ 
+ /*
+  *	int
+@@ -141,16 +145,20 @@
+ NCURSES_EXPORT(int)
+ _nc_baudrate(int OSpeed)
+ {
++#if !USE_REENTRANT
+     static int last_OSpeed;
+     static int last_baudrate;
++#endif
+ 
+-    int result;
++    int result = ERR;
+     unsigned i;
+ 
++#if !USE_REENTRANT
+     if (OSpeed == last_OSpeed) {
+ 	result = last_baudrate;
+-    } else {
+-	result = ERR;
++    }
++#endif
++    if (result == ERR) {
+ 	if (OSpeed >= 0) {
+ 	    for (i = 0; i < SIZEOF(speeds); i++) {
+ 		if (speeds[i].s == OSpeed) {
+@@ -159,7 +167,12 @@
+ 		}
+ 	    }
+ 	}
+-	last_baudrate = result;
++#if !USE_REENTRANT
++	if (OSpeed == last_OSpeed) {
++	    last_OSpeed = OSpeed;
++	    last_baudrate = result;
++	}
++#endif
+     }
+     return (result);
+ }
+Index: ncurses/tinfo/lib_data.c
+Prereq:  1.17 
+--- ncurses-5.6/ncurses/tinfo/lib_data.c	2005-01-22 17:39:22.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_data.c	2007-11-03 20:24:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,15 +41,33 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_data.c,v 1.17 2005/01/22 17:39:22 tom Exp $")
++MODULE_ID("$Id: lib_data.c,v 1.34 2007/10/20 21:49:10 tom Exp $")
+ 
+ /*
+  * OS/2's native linker complains if we don't initialize public data when
+  * constructing a dll (reported by J.J.G.Ripoll).
+  */
++#if USE_REENTRANT
++NCURSES_EXPORT(WINDOW *)
++NCURSES_PUBLIC_VAR(stdscr) (void)
++{
++    return SP ? SP->_stdscr : 0;
++}
++NCURSES_EXPORT(WINDOW *)
++NCURSES_PUBLIC_VAR(curscr) (void)
++{
++    return SP ? SP->_curscr : 0;
++}
++NCURSES_EXPORT(WINDOW *)
++NCURSES_PUBLIC_VAR(newscr) (void)
++{
++    return SP ? SP->_newscr : 0;
++}
++#else
+ NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
+ NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
+ NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
++#endif
+ 
+ NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
+ 
+@@ -87,3 +105,129 @@
+ #else
+ NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
+ #endif
++/* *INDENT-OFF* */
++#define CHARS_0s { '\0' }
++
++#define TGETENT_0 { 0L, FALSE, NULL, NULL, NULL }
++#define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 } 
++
++NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
++    0,				/* have_sigwinch */
++    0,				/* cleanup_nested */
++
++    FALSE,			/* init_signals */
++    FALSE,			/* init_screen */
++
++    NULL,			/* comp_sourcename */
++    NULL,			/* comp_termtype */
++
++    FALSE,			/* have_tic_directory */
++    FALSE,			/* keep_tic_directory */
++    TERMINFO,			/* tic_directory */
++
++    NULL,			/* dbi_list */
++    0,				/* dbi_size */
++
++    NULL,			/* first_name */
++    NULL,			/* keyname_table */
++
++    NULL,			/* safeprint_buf */
++    0,				/* safeprint_used */
++
++    TGETENT_0s,			/* tgetent_cache */
++    0,				/* tgetent_index */
++    0,				/* tgetent_sequence */
++
++#if USE_HOME_TERMINFO
++    NULL,			/* home_terminfo */
++#endif
++
++#if !USE_SAFE_SPRINTF
++    0,				/* safeprint_cols */
++    0,				/* safeprint_rows */
++#endif
++
++#ifdef TRACE
++    FALSE,			/* init_trace */
++    CHARS_0s,			/* trace_fname */
++    0,				/* trace_level */
++    NULL,			/* trace_fp */
++
++    NULL,			/* tracearg_buf */
++    0,				/* tracearg_used */
++
++    NULL,			/* tracebuf_ptr */
++    0,				/* tracebuf_used */
++
++    CHARS_0s,			/* tracechr_buf */
++
++    NULL,			/* tracedmp_buf */
++    0,				/* tracedmp_used */
++
++    CHARS_0s,			/* tracemse_buf */
++
++    NULL,			/* tracetry_buf */
++    0,				/* tracetry_used */
++
++#ifndef USE_TERMLIB
++    { CHARS_0s, CHARS_0s },	/* traceatr_color_buf */
++    0,				/* traceatr_color_sel */
++    -1,				/* traceatr_color_last */
++#endif /* USE_TERMLIB */
++
++#endif /* TRACE */
++#ifdef USE_PTHREADS
++    PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,	/* mutex_set_SP */
++    PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,	/* mutex_use_screen */
++    PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,	/* mutex_use_window */
++    PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,	/* mutex_windowlist */
++    PTHREAD_MUTEX_INITIALIZER,	/* mutex_tst_tracef */
++    PTHREAD_MUTEX_INITIALIZER,	/* mutex_tracef */
++    0,				/* nested_tracef */
++#endif
++};
++
++#define STACK_FRAME_0	{ { 0 }, 0 }
++#define STACK_FRAME_0s	{ STACK_FRAME_0 }
++#define NUM_VARS_0s	{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
++
++#define RIPOFF_0	{ 0,0 }
++#define RIPOFF_0s	{ RIPOFF_0 }
++
++NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
++    TRUE,			/* use_env */
++    FALSE,			/* filter_mode */
++    A_NORMAL,			/* previous_attr */
++    RIPOFF_0s,			/* ripoff */
++    NULL,			/* rsp */
++    {				/* tparm_state */
++#ifdef TRACE
++	NULL,			/* tname */
++#endif
++	NULL,			/* tparam_base */
++
++	STACK_FRAME_0s,		/* stack */
++	0,			/* stack_ptr */
++
++	NULL,			/* out_buff */
++	0,			/* out_size */
++	0,			/* out_used */
++
++	NULL,			/* fmt_buff */
++	0,			/* fmt_size */
++
++	NUM_VARS_0s,		/* dynamic_var */
++	NUM_VARS_0s,		/* static_vars */
++    },
++    NULL,			/* saved_tty */
++#if BROKEN_LINKER || USE_REENTRANT
++    NULL,			/* real_acs_map */
++    0,				/* LINES */
++    0,				/* COLS */
++#ifdef TRACE
++    0L,				/* _outchars */
++    NULL,			/* _tputs_trace */
++#endif
++#endif
++};
++/* *INDENT-ON* */
+Index: ncurses/tinfo/lib_options.c
+Prereq:  1.49 
+--- ncurses-5.6/ncurses/tinfo/lib_options.c	2006-03-04 19:28:25.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_options.c	2006-12-30 16:03:27.000000000 +0000
+@@ -43,7 +43,7 @@
+ 
+ #include <term.h>
+ 
+-MODULE_ID("$Id: lib_options.c,v 1.49 2006/03/04 19:28:25 tom Exp $")
++MODULE_ID("$Id: lib_options.c,v 1.50 2006/12/30 16:03:27 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ idlok(WINDOW *win, bool flag)
+@@ -220,7 +220,7 @@
+ 
+ #if NCURSES_EXT_FUNCS
+ static int
+-has_key_internal(int keycode, struct tries *tp)
++has_key_internal(int keycode, TRIES *tp)
+ {
+     if (tp == 0)
+ 	return (FALSE);
+Index: ncurses/tinfo/lib_raw.c
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/tinfo/lib_raw.c	2002-07-06 22:00:45.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_raw.c	2007-09-29 21:50:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2002,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -49,7 +49,7 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* cur_term */
+ 
+-MODULE_ID("$Id: lib_raw.c,v 1.13 2002/07/06 22:00:45 tom Exp $")
++MODULE_ID("$Id: lib_raw.c,v 1.14 2007/09/29 21:50:22 tom Exp $")
+ 
+ #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+ #define _POSIX_SOURCE
+@@ -69,8 +69,8 @@
+ #define COOKED_INPUT	(IXON|BRKINT|PARMRK)
+ 
+ #ifdef TRACE
+-#define BEFORE(N)	if (_nc_tracing&TRACE_BITS) _tracef("%s before bits: %s", N, _nc_tracebits())
+-#define AFTER(N)	if (_nc_tracing&TRACE_BITS) _tracef("%s after bits: %s", N, _nc_tracebits())
++#define BEFORE(N)	if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s before bits: %s", N, _nc_tracebits())
++#define AFTER(N)	if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s after bits: %s", N, _nc_tracebits())
+ #else
+ #define BEFORE(s)
+ #define AFTER(s)
+Index: ncurses/tinfo/lib_setup.c
+Prereq:  1.95 
+--- ncurses-5.6/ncurses/tinfo/lib_setup.c	2006-07-28 22:58:13.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_setup.c	2007-09-01 20:58:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /****************************************************************************
+  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+- *     and: Thomas E. Dickey 1996-2003                                      *
++ *     and: Thomas E. Dickey                        1996-on                 *
+  ****************************************************************************/
+ 
+ /*
+@@ -53,7 +53,7 @@
+ 
+ #include <term.h>		/* lines, columns, cur_term */
+ 
+-MODULE_ID("$Id: lib_setup.c,v 1.95 2006/07/28 22:58:13 tom Exp $")
++MODULE_ID("$Id: lib_setup.c,v 1.100 2007/09/01 20:58:26 tom Exp $")
+ 
+ /****************************************************************************
+  *
+@@ -99,55 +99,57 @@
+ # endif
+ #endif
+ 
++#if USE_REENTRANT
++NCURSES_EXPORT(char *)
++NCURSES_PUBLIC_VAR(ttytype) (void)
++{
++    static char empty[] = "";
++    return cur_term ? cur_term->type.term_names : empty;
++}
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(LINES) (void)
++{
++    return (SP ? SP->_LINES : _nc_prescreen._LINES);
++}
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(COLS) (void)
++{
++    return SP ? SP->_COLS : _nc_prescreen._COLS;
++}
++NCURSES_EXPORT(int)
++NCURSES_PUBLIC_VAR(TABSIZE) (void)
++{
++    return SP ? SP->_TABSIZE : 8;
++}
++#else
+ NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
+ NCURSES_EXPORT_VAR(int) LINES = 0;
+ NCURSES_EXPORT_VAR(int) COLS = 0;
+ NCURSES_EXPORT_VAR(int) TABSIZE = 0;
+-
+-static int _use_env = TRUE;
++#endif
+ 
+ #if USE_SIGWINCH
+-int
+-_nc_handle_sigwinch(int enable)
++/*
++ * If we have a pending SIGWINCH, set the flag in each screen.
++ */
++NCURSES_EXPORT(int)
++_nc_handle_sigwinch(int update)
+ {
+-    static int have_sigwinch = 0;	/* initially no SIGWINCH's */
+-    static int can_resizeall = 1;	/* initially enabled */
+     SCREEN *scan;
+-    int result;
+ 
+-    switch (enable) {
+-    default:
+-	/* record a SIGWINCH */
+-	have_sigwinch = 1;
+-	break;
+-    case 0:
+-	/* temporarily disable the next block */
+-	--can_resizeall;
+-	break;
+-    case 1:
+-	/* temporarily enable the next block */
+-	++can_resizeall;
+-	break;
+-    }
++    (void) update;		/* no longer used */
+ 
+-    /*
+-     * If we have a pending SIGWINCH, set the flag in each screen.
+-     * But do this only if the block is enabled.
+-     */
+-    if (can_resizeall-- >= 0) {	/* test and disable */
+-	if (have_sigwinch) {
+-	    scan = _nc_screen_chain;
+-	    while (scan) {
+-		scan->_sig_winch = TRUE;
+-		scan = scan->_next_screen;
+-	    }
+-	    have_sigwinch = 0;
++    if (_nc_globals.have_sigwinch) {
++	_nc_globals.have_sigwinch = 0;
++
++	scan = _nc_screen_chain;
++	while (scan) {
++	    scan->_sig_winch = TRUE;
++	    scan = scan->_next_screen;
+ 	}
+     }
+-    result = can_resizeall + 1;	/* reenable (unless disables are nested) */
+-    can_resizeall = result;
+ 
+-    return result;
++    return (SP ? SP->_sig_winch : 0);
+ }
+ 
+ #endif
+@@ -156,19 +158,20 @@
+ use_env(bool f)
+ {
+     T((T_CALLED("use_env()")));
+-    _use_env = f;
++    _nc_prescreen.use_env = f;
+     returnVoid;
+ }
+ 
+-static void
++NCURSES_EXPORT(void)
+ _nc_get_screensize(int *linep, int *colp)
+ /* Obtain lines/columns values from the environment and/or terminfo entry */
+ {
++    int my_tabsize;
++
+     /* figure out the size of the screen */
+     T(("screen size: terminfo lines = %d columns = %d", lines, columns));
+ 
+-    _nc_handle_sigwinch(0);
+-    if (!_use_env) {
++    if (!_nc_prescreen.use_env) {
+ 	*linep = (int) lines;
+ 	*colp = (int) columns;
+     } else {			/* usually want to query LINES and COLUMNS from environment */
+@@ -246,14 +249,20 @@
+ 	lines = (short) (*linep);
+ 	columns = (short) (*colp);
+     }
+-    _nc_handle_sigwinch(1);
+ 
+     T(("screen size is %dx%d", *linep, *colp));
+ 
+     if (VALID_NUMERIC(init_tabs))
+-	TABSIZE = (int) init_tabs;
++	my_tabsize = (int) init_tabs;
+     else
+-	TABSIZE = 8;
++	my_tabsize = 8;
++
++#if USE_REENTRANT
++    if (SP != 0)
++	SP->_TABSIZE = my_tabsize;
++#else
++    TABSIZE = my_tabsize;
++#endif
+     T(("TABSIZE = %d", TABSIZE));
+ }
+ 
+@@ -536,8 +545,10 @@
+ 	if (command_character && getenv("CC"))
+ 	    do_prototype();
+ 
++#if !USE_REENTRANT
+ 	strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
+ 	ttytype[NAMESIZE - 1] = '\0';
++#endif
+ 
+ 	cur_term->Filedes = Filedes;
+ 	cur_term->_termname = strdup(tname);
+@@ -557,13 +568,16 @@
+     /*
+      * We should always check the screensize, just in case.
+      */
++#if USE_REENTRANT
++    _nc_get_screensize(SP ? &(SP->_LINES) : &(_nc_prescreen._LINES),
++		       SP ? &(SP->_COLS) : &(_nc_prescreen._COLS));
++#else
+     _nc_get_screensize(&LINES, &COLS);
++#endif
+ 
+     if (errret)
+ 	*errret = TGETENT_YES;
+ 
+-    T((T_CREATE("screen %s %dx%d"), tname, LINES, COLS));
+-
+     if (generic_type) {
+ 	ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
+     }
+Index: ncurses/tinfo/lib_termcap.c
+Prereq:  1.58 
+--- ncurses-5.6/ncurses/tinfo/lib_termcap.c	2006-09-02 19:39:46.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_termcap.c	2007-06-02 19:36:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -45,26 +45,20 @@
+ 
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: lib_termcap.c,v 1.58 2006/09/02 19:39:46 Miroslav.Lichvar Exp $")
++MODULE_ID("$Id: lib_termcap.c,v 1.61 2007/06/02 19:36:03 tom Exp $")
+ 
+ NCURSES_EXPORT_VAR(char *) UP = 0;
+ NCURSES_EXPORT_VAR(char *) BC = 0;
+ 
+-typedef struct {
+-    long sequence;
+-    char *fix_sgr0;		/* this holds the filtered sgr0 string */
+-    char *last_bufp;		/* help with fix_sgr0 leak */
+-    TERMINAL *last_term;
+-} CACHE;
+-
+-#define MAX_CACHE 4
+-static CACHE cache[MAX_CACHE];
+-static int in_cache = 0;
+-
+-#define FIX_SGR0 cache[in_cache].fix_sgr0
+-#define LAST_TRM cache[in_cache].last_term
+-#define LAST_BUF cache[in_cache].last_bufp
+-#define LAST_SEQ cache[in_cache].sequence
++#define MyCache  _nc_globals.tgetent_cache
++#define CacheInx _nc_globals.tgetent_index
++#define CacheSeq _nc_globals.tgetent_sequence
++
++#define FIX_SGR0 MyCache[CacheInx].fix_sgr0
++#define LAST_TRM MyCache[CacheInx].last_term
++#define LAST_BUF MyCache[CacheInx].last_bufp
++#define LAST_USE MyCache[CacheInx].last_used
++#define LAST_SEQ MyCache[CacheInx].sequence
+ 
+ /***************************************************************************
+  *
+@@ -84,8 +78,6 @@
+ NCURSES_EXPORT(int)
+ tgetent(char *bufp, const char *name)
+ {
+-    static long sequence;
+-
+     int errcode;
+     int n;
+     bool found_cache = FALSE;
+@@ -100,11 +92,17 @@
+      * caller, but if tgetent() is called with the same buffer, that is
+      * good enough, since the previous data would be invalidated by the
+      * current call.
++     *
++     * bufp may be a null pointer, e.g., GNU termcap.  That allocates data,
++     * which is good until the next tgetent() call.  The conventional termcap
++     * is inconvenient because of the fixed buffer size, but because it uses
++     * caller-supplied buffers, can have multiple terminal descriptions in
++     * use at a given time.
+      */
+-    for (n = 0; n < MAX_CACHE; ++n) {
+-	bool same_result = (bufp != 0 && cache[n].last_bufp == bufp);
++    for (n = 0; n < TGETENT_MAX; ++n) {
++	bool same_result = (MyCache[n].last_used && MyCache[n].last_bufp == bufp);
+ 	if (same_result) {
+-	    in_cache = n;
++	    CacheInx = n;
+ 	    if (FIX_SGR0 != 0) {
+ 		FreeAndNull(FIX_SGR0);
+ 	    }
+@@ -114,10 +112,10 @@
+ 	    if (LAST_TRM != 0 && LAST_TRM != cur_term) {
+ 		TERMINAL *trm = LAST_TRM;
+ 		del_curterm(LAST_TRM);
+-		for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache)
++		for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx)
+ 		    if (LAST_TRM == trm)
+ 			LAST_TRM = 0;
+-		in_cache = n;
++		CacheInx = n;
+ 	    }
+ 	    found_cache = TRUE;
+ 	    break;
+@@ -126,15 +124,15 @@
+     if (!found_cache) {
+ 	int best = 0;
+ 
+-	for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache) {
+-	    if (LAST_SEQ < cache[best].sequence) {
+-		best = in_cache;
++	for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
++	    if (LAST_SEQ < MyCache[best].sequence) {
++		best = CacheInx;
+ 	    }
+ 	}
+-	in_cache = best;
++	CacheInx = best;
+     }
+     LAST_TRM = cur_term;
+-    LAST_SEQ = ++sequence;
++    LAST_SEQ = ++CacheSeq;
+ 
+     PC = 0;
+     UP = 0;
+@@ -164,6 +162,7 @@
+ 	    }
+ 	}
+ 	LAST_BUF = bufp;
++	LAST_USE = TRUE;
+ 
+ 	(void) baudrate();	/* sets ospeed as a side-effect */
+ 
+@@ -282,9 +281,10 @@
+ NCURSES_EXPORT(void)
+ _nc_tgetent_leaks(void)
+ {
+-    for (in_cache = 0; in_cache < MAX_CACHE; ++in_cache) {
++    for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
+ 	FreeIfNeeded(FIX_SGR0);
+-	del_curterm(LAST_TRM);
++	if (LAST_TRM != 0)
++	    del_curterm(LAST_TRM);
+     }
+ }
+ #endif
+Index: ncurses/tinfo/lib_tparm.c
+Prereq:  1.71 
+--- ncurses-5.6/ncurses/tinfo/lib_tparm.c	2006-11-26 01:12:56.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_tparm.c	2007-09-29 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -43,7 +43,7 @@
+ #include <term.h>
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_tparm.c,v 1.71 2006/11/26 01:12:56 tom Exp $")
++MODULE_ID("$Id: lib_tparm.c,v 1.74 2007/09/29 20:37:13 tom Exp $")
+ 
+ /*
+  *	char *
+@@ -105,43 +105,20 @@
+  *	resulting in x mod y, not the reverse.
+  */
+ 
+-#define STACKSIZE	20
+-
+-typedef struct {
+-    union {
+-	int num;
+-	char *str;
+-    } data;
+-    bool num_type;
+-} stack_frame;
+-
+ NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
+ 
+-static stack_frame stack[STACKSIZE];
+-static int stack_ptr;
+-static const char *tparam_base = "";
+-
+-#ifdef TRACE
+-static const char *tname;
+-#endif /* TRACE */
+-
+-static char *out_buff;
+-static size_t out_size;
+-static size_t out_used;
+-
+-static char *fmt_buff;
+-static size_t fmt_size;
++#define TPS(var) _nc_prescreen.tparm_state.var
+ 
+ #if NO_LEAKS
+ NCURSES_EXPORT(void)
+ _nc_free_tparm(void)
+ {
+-    if (out_buff != 0) {
+-	FreeAndNull(out_buff);
+-	out_size = 0;
+-	out_used = 0;
+-	FreeAndNull(fmt_buff);
+-	fmt_size = 0;
++    if (TPS(out_buff) != 0) {
++	FreeAndNull(TPS(out_buff));
++	TPS(out_size) = 0;
++	TPS(out_used) = 0;
++	FreeAndNull(TPS(fmt_buff));
++	TPS(fmt_size) = 0;
+     }
+ }
+ #endif
+@@ -149,11 +126,11 @@
+ static NCURSES_INLINE void
+ get_space(size_t need)
+ {
+-    need += out_used;
+-    if (need > out_size) {
+-	out_size = need * 2;
+-	out_buff = typeRealloc(char, out_size, out_buff);
+-	if (out_buff == 0)
++    need += TPS(out_used);
++    if (need > TPS(out_size)) {
++	TPS(out_size) = need * 2;
++	TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff));
++	if (TPS(out_buff) == 0)
+ 	    _nc_err_abort(MSG_NO_MEMORY);
+     }
+ }
+@@ -167,8 +144,8 @@
+ 
+     get_space(s_len + 1);
+ 
+-    (void) sprintf(out_buff + out_used, fmt, s);
+-    out_used += strlen(out_buff + out_used);
++    (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, s);
++    TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+ }
+ 
+ static NCURSES_INLINE void
+@@ -179,8 +156,8 @@
+ 
+     get_space((unsigned) len + 1);
+ 
+-    (void) sprintf(out_buff + out_used, fmt, number);
+-    out_used += strlen(out_buff + out_used);
++    (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, number);
++    TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+ }
+ 
+ static NCURSES_INLINE void
+@@ -189,18 +166,18 @@
+     if (c == 0)
+ 	c = 0200;
+     get_space(1);
+-    out_buff[out_used++] = c;
++    TPS(out_buff)[TPS(out_used)++] = c;
+ }
+ 
+ static NCURSES_INLINE void
+ npush(int x)
+ {
+-    if (stack_ptr < STACKSIZE) {
+-	stack[stack_ptr].num_type = TRUE;
+-	stack[stack_ptr].data.num = x;
+-	stack_ptr++;
++    if (TPS(stack_ptr) < STACKSIZE) {
++	TPS(stack)[TPS(stack_ptr)].num_type = TRUE;
++	TPS(stack)[TPS(stack_ptr)].data.num = x;
++	TPS(stack_ptr)++;
+     } else {
+-	DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(tparam_base)));
++	DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
+ 	_nc_tparm_err++;
+     }
+ }
+@@ -209,12 +186,12 @@
+ npop(void)
+ {
+     int result = 0;
+-    if (stack_ptr > 0) {
+-	stack_ptr--;
+-	if (stack[stack_ptr].num_type)
+-	    result = stack[stack_ptr].data.num;
++    if (TPS(stack_ptr) > 0) {
++	TPS(stack_ptr)--;
++	if (TPS(stack)[TPS(stack_ptr)].num_type)
++	    result = TPS(stack)[TPS(stack_ptr)].data.num;
+     } else {
+-	DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(tparam_base)));
++	DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
+ 	_nc_tparm_err++;
+     }
+     return result;
+@@ -223,12 +200,12 @@
+ static NCURSES_INLINE void
+ spush(char *x)
+ {
+-    if (stack_ptr < STACKSIZE) {
+-	stack[stack_ptr].num_type = FALSE;
+-	stack[stack_ptr].data.str = x;
+-	stack_ptr++;
++    if (TPS(stack_ptr) < STACKSIZE) {
++	TPS(stack)[TPS(stack_ptr)].num_type = FALSE;
++	TPS(stack)[TPS(stack_ptr)].data.str = x;
++	TPS(stack_ptr)++;
+     } else {
+-	DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(tparam_base)));
++	DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
+ 	_nc_tparm_err++;
+     }
+ }
+@@ -238,12 +215,13 @@
+ {
+     static char dummy[] = "";	/* avoid const-cast */
+     char *result = dummy;
+-    if (stack_ptr > 0) {
+-	stack_ptr--;
+-	if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0)
+-	    result = stack[stack_ptr].data.str;
++    if (TPS(stack_ptr) > 0) {
++	TPS(stack_ptr)--;
++	if (!TPS(stack)[TPS(stack_ptr)].num_type
++	    && TPS(stack)[TPS(stack_ptr)].data.str != 0)
++	    result = TPS(stack)[TPS(stack_ptr)].data.str;
+     } else {
+-	DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(tparam_base)));
++	DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
+ 	_nc_tparm_err++;
+     }
+     return result;
+@@ -369,10 +347,11 @@
+     if (cp == 0)
+ 	return 0;
+ 
+-    if ((len2 = strlen(cp)) > fmt_size) {
+-	fmt_size = len2 + fmt_size + 2;
+-	if ((fmt_buff = typeRealloc(char, fmt_size, fmt_buff)) == 0)
+-	      return 0;
++    if ((len2 = strlen(cp)) > TPS(fmt_size)) {
++	TPS(fmt_size) = len2 + TPS(fmt_size) + 2;
++	TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff));
++	if (TPS(fmt_buff) == 0)
++	    return 0;
+     }
+ 
+     memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM);
+@@ -381,7 +360,7 @@
+     while ((cp - string) < (int) len2) {
+ 	if (*cp == '%') {
+ 	    cp++;
+-	    cp = parse_format(cp, fmt_buff, &len);
++	    cp = parse_format(cp, TPS(fmt_buff), &len);
+ 	    switch (*cp) {
+ 	    default:
+ 		break;
+@@ -474,7 +453,6 @@
+ static NCURSES_INLINE char *
+ tparam_internal(const char *string, va_list ap)
+ {
+-#define NUM_VARS 26
+     char *p_is_s[NUM_PARM];
+     TPARM_ARG param[NUM_PARM];
+     int popcount;
+@@ -485,13 +463,11 @@
+     int i;
+     const char *cp = string;
+     size_t len2;
+-    static int dynamic_var[NUM_VARS];
+-    static int static_vars[NUM_VARS];
+ 
+     if (cp == NULL)
+ 	return NULL;
+ 
+-    out_used = 0;
++    TPS(out_used) = 0;
+     len2 = strlen(cp);
+ 
+     /*
+@@ -500,7 +476,7 @@
+      * variable-length argument list.
+      */
+     number = _nc_tparm_analyze(cp, p_is_s, &popcount);
+-    if (fmt_buff == 0)
++    if (TPS(fmt_buff) == 0)
+ 	return NULL;
+ 
+     for (i = 0; i < max(popcount, number); i++) {
+@@ -525,22 +501,23 @@
+      * the expansion of (for example) \E[%d;%dH work correctly in termcap
+      * style, which means tparam() will expand termcap strings OK.
+      */
+-    stack_ptr = 0;
++    TPS(stack_ptr) = 0;
+     if (popcount == 0) {
+ 	popcount = number;
+ 	for (i = number - 1; i >= 0; i--)
+ 	    npush(param[i]);
+     }
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_CALLS) {
++    if (USE_TRACEF(TRACE_CALLS)) {
+ 	for (i = 0; i < popcount; i++) {
+ 	    if (p_is_s[i] != 0)
+ 		save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
+ 	    else
+ 		save_number(", %d", param[i], 0);
+ 	}
+-	_tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(cp), out_buff);
+-	out_used = 0;
++	_tracef(T_CALLED("%s(%s%s)"), TPS(tname), _nc_visbuf(cp), TPS(out_buff));
++	TPS(out_used) = 0;
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+@@ -548,8 +525,8 @@
+ 	if (*cp != '%') {
+ 	    save_char(UChar(*cp));
+ 	} else {
+-	    tparam_base = cp++;
+-	    cp = parse_format(cp, fmt_buff, &len);
++	    TPS(tparam_base) = cp++;
++	    cp = parse_format(cp, TPS(fmt_buff), &len);
+ 	    switch (*cp) {
+ 	    default:
+ 		break;
+@@ -561,7 +538,7 @@
+ 	    case 'o':		/* FALLTHRU */
+ 	    case 'x':		/* FALLTHRU */
+ 	    case 'X':		/* FALLTHRU */
+-		save_number(fmt_buff, npop(), len);
++		save_number(TPS(fmt_buff), npop(), len);
+ 		break;
+ 
+ 	    case 'c':		/* FALLTHRU */
+@@ -573,7 +550,7 @@
+ 		break;
+ 
+ 	    case 's':
+-		save_text(fmt_buff, spop(), len);
++		save_text(TPS(fmt_buff), spop(), len);
+ 		break;
+ 
+ 	    case 'p':
+@@ -591,10 +568,10 @@
+ 		cp++;
+ 		if (isUPPER(*cp)) {
+ 		    i = (UChar(*cp) - 'A');
+-		    static_vars[i] = npop();
++		    TPS(static_vars)[i] = npop();
+ 		} else if (isLOWER(*cp)) {
+ 		    i = (UChar(*cp) - 'a');
+-		    dynamic_var[i] = npop();
++		    TPS(dynamic_var)[i] = npop();
+ 		}
+ 		break;
+ 
+@@ -602,10 +579,10 @@
+ 		cp++;
+ 		if (isUPPER(*cp)) {
+ 		    i = (UChar(*cp) - 'A');
+-		    npush(static_vars[i]);
++		    npush(TPS(static_vars)[i]);
+ 		} else if (isLOWER(*cp)) {
+ 		    i = (UChar(*cp) - 'a');
+-		    npush(dynamic_var[i]);
++		    npush(TPS(dynamic_var)[i]);
+ 		}
+ 		break;
+ 
+@@ -768,10 +745,10 @@
+     }				/* endwhile (*cp) */
+ 
+     get_space(1);
+-    out_buff[out_used] = '\0';
++    TPS(out_buff)[TPS(out_used)] = '\0';
+ 
+-    T((T_RETURN("%s"), _nc_visbuf(out_buff)));
+-    return (out_buff);
++    T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff))));
++    return (TPS(out_buff));
+ }
+ 
+ #if NCURSES_TPARM_VARARGS
+@@ -789,7 +766,7 @@
+     _nc_tparm_err = 0;
+     va_start(ap, string);
+ #ifdef TRACE
+-    tname = "tparm";
++    TPS(tname) = "tparm";
+ #endif /* TRACE */
+     result = tparam_internal(string, ap);
+     va_end(ap);
+Index: ncurses/tinfo/lib_tputs.c
+Prereq:  1.62 
+--- ncurses-5.6/ncurses/tinfo/lib_tputs.c	2003-08-23 21:39:20.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_tputs.c	2007-09-29 20:37:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -45,12 +45,12 @@
+ #include <termcap.h>		/* ospeed */
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $")
++MODULE_ID("$Id: lib_tputs.c,v 1.64 2007/09/29 20:37:13 tom Exp $")
+ 
+-NCURSES_EXPORT_VAR(char) PC = 0;		/* used by termcap library */
+-NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;	/* used by termcap library */
++NCURSES_EXPORT_VAR(char) PC = 0;              /* used by termcap library */
++NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;        /* used by termcap library */
+ 
+-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;	/* used by 'tack' program */
++NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;   /* used by 'tack' program */
+ 
+ static int (*my_outch) (int c) = _nc_outch;
+ 
+@@ -84,7 +84,7 @@
+ NCURSES_EXPORT(int)
+ _nc_outch(int ch)
+ {
+-    TRACE_OUTCHARS(1);
++    COUNT_OUTCHARS(1);
+ 
+     if (SP != 0
+ 	&& SP->_cleanup) {
+@@ -119,7 +119,7 @@
+ #ifdef TRACE
+     char addrbuf[32];
+ 
+-    if (_nc_tracing & TRACE_TPUTS) {
++    if (USE_TRACEF(TRACE_TPUTS)) {
+ 	if (outc == _nc_outch)
+ 	    (void) strcpy(addrbuf, "_nc_outch");
+ 	else
+@@ -130,7 +130,8 @@
+ 	} else {
+ 	    _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf);
+ 	}
+-	_nc_tputs_trace = (char *) NULL;
++	TPUTS_TRACE(NULL);
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+Index: ncurses/tinfo/lib_ttyflags.c
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/tinfo/lib_ttyflags.c	2006-12-10 01:31:54.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/lib_ttyflags.c	2007-05-26 18:54:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -38,31 +38,35 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* cur_term */
+ 
+-MODULE_ID("$Id: lib_ttyflags.c,v 1.13 2006/12/10 01:31:54 tom Exp $")
++MODULE_ID("$Id: lib_ttyflags.c,v 1.15 2007/05/26 18:54:25 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ _nc_get_tty_mode(TTY * buf)
+ {
+     int result = OK;
+ 
+-    if (cur_term == 0) {
++    if (buf == 0) {
+ 	result = ERR;
+     } else {
+-	for (;;) {
+-	    if (GET_TTY(cur_term->Filedes, buf) != 0) {
+-		if (errno == EINTR)
+-		    continue;
+-		result = ERR;
++	if (cur_term == 0) {
++	    result = ERR;
++	} else {
++	    for (;;) {
++		if (GET_TTY(cur_term->Filedes, buf) != 0) {
++		    if (errno == EINTR)
++			continue;
++		    result = ERR;
++		}
++		break;
+ 	    }
+-	    break;
+ 	}
+-    }
+ 
+-    if (result == ERR)
+-	memset(buf, 0, sizeof(*buf));
++	if (result == ERR)
++	    memset(buf, 0, sizeof(*buf));
+ 
+-    TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
+-		    cur_term->Filedes, _nc_trace_ttymode(buf)));
++	TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
++			cur_term->Filedes, _nc_trace_ttymode(buf)));
++    }
+     return (result);
+ }
+ 
+@@ -71,22 +75,26 @@
+ {
+     int result = OK;
+ 
+-    if (cur_term == 0) {
++    if (buf == 0) {
+ 	result = ERR;
+     } else {
+-	for (;;) {
+-	    if (SET_TTY(cur_term->Filedes, buf) != 0) {
+-		if (errno == EINTR)
+-		    continue;
+-		if ((errno == ENOTTY) && (SP != 0))
+-		    SP->_notty = TRUE;
+-		result = ERR;
++	if (cur_term == 0) {
++	    result = ERR;
++	} else {
++	    for (;;) {
++		if (SET_TTY(cur_term->Filedes, buf) != 0) {
++		    if (errno == EINTR)
++			continue;
++		    if ((errno == ENOTTY) && (SP != 0))
++			SP->_notty = TRUE;
++		    result = ERR;
++		}
++		break;
+ 	    }
+-	    break;
+ 	}
++	TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
++			cur_term->Filedes, _nc_trace_ttymode(buf)));
+     }
+-    TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
+-		    cur_term->Filedes, _nc_trace_ttymode(buf)));
+     return (result);
+ }
+ 
+@@ -164,19 +172,33 @@
+     returnCode(ERR);
+ }
+ 
++static TTY *
++saved_tty(void)
++{
++    TTY *result = 0;
++
++    if (SP != 0) {
++	result = &(SP->_saved_tty);
++    } else {
++	if (_nc_prescreen.saved_tty == 0) {
++	    _nc_prescreen.saved_tty = typeCalloc(TTY, 1);
++	}
++	result = _nc_prescreen.saved_tty;
++    }
++    return result;
++}
++
+ /*
+ **	savetty()  and  resetty()
+ **
+ */
+ 
+-static TTY buf;
+-
+ NCURSES_EXPORT(int)
+ savetty(void)
+ {
+     T((T_CALLED("savetty()")));
+ 
+-    returnCode(_nc_get_tty_mode(&buf));
++    returnCode(_nc_get_tty_mode(saved_tty()));
+ }
+ 
+ NCURSES_EXPORT(int)
+@@ -184,5 +206,5 @@
+ {
+     T((T_CALLED("resetty()")));
+ 
+-    returnCode(_nc_set_tty_mode(&buf));
++    returnCode(_nc_set_tty_mode(saved_tty()));
+ }
+Index: ncurses/tinfo/make_keys.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/tinfo/make_keys.c	2005-08-20 19:58:18.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/make_keys.c	2007-01-07 00:00:14.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,7 +39,7 @@
+ #define USE_TERMLIB 1
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: make_keys.c,v 1.12 2005/08/20 19:58:18 tom Exp $")
++MODULE_ID("$Id: make_keys.c,v 1.13 2007/01/07 00:00:14 tom Exp $")
+ 
+ #include <names.c>
+ 
+@@ -113,7 +113,7 @@
+ 	"#if BROKEN_LINKER",
+ 	"static",
+ 	"#endif",
+-	"struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
++	"const struct tinfo_fkeys _nc_tinfo_fkeys[] = {",
+ 	0
+     };
+     static const char *suffix[] =
+Index: ncurses/tinfo/name_match.c
+Prereq:  1.15 
+--- ncurses-5.6/ncurses/tinfo/name_match.c	2005-01-22 21:47:25.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/name_match.c	2007-04-21 21:28:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1999-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,38 +34,38 @@
+ #include <term.h>
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: name_match.c,v 1.15 2005/01/22 21:47:25 tom Exp $")
++MODULE_ID("$Id: name_match.c,v 1.16 2007/04/21 21:28:13 tom Exp $")
+ 
+ /*
+  *	_nc_first_name(char *names)
+  *
+  *	Extract the primary name from a compiled entry.
+  */
++#define FirstName _nc_globals.first_name
+ 
+ NCURSES_EXPORT(char *)
+ _nc_first_name(const char *const sp)
+ /* get the first name from the given name list */
+ {
+-    static char *buf;
+-    register unsigned n;
++    unsigned n;
+ 
+ #if NO_LEAKS
+     if (sp == 0) {
+-	if (buf != 0)
+-	    FreeAndNull(buf);	/* for leak-testing */
++	if (FirstName != 0)
++	    FreeAndNull(FirstName);
+ 	return 0;
+     }
+ #endif
+ 
+-    if (buf == 0)
+-	buf = typeMalloc(char, MAX_NAME_SIZE + 1);
++    if (FirstName == 0)
++	FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
+     for (n = 0; n < MAX_NAME_SIZE; n++) {
+-	if ((buf[n] = sp[n]) == '\0'
+-	    || (buf[n] == '|'))
++	if ((FirstName[n] = sp[n]) == '\0'
++	    || (FirstName[n] == '|'))
+ 	    break;
+     }
+-    buf[n] = '\0';
+-    return (buf);
++    FirstName[n] = '\0';
++    return (FirstName);
+ }
+ 
+ /*
+Index: ncurses/tinfo/parse_entry.c
+Prereq:  1.63 
+--- ncurses-5.6/ncurses/tinfo/parse_entry.c	2006-06-17 17:57:50.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/parse_entry.c	2007-08-11 16:19:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -48,7 +48,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: parse_entry.c,v 1.63 2006/06/17 17:57:50 tom Exp $")
++MODULE_ID("$Id: parse_entry.c,v 1.65 2007/08/11 16:19:02 tom Exp $")
+ 
+ #ifdef LINT
+ static short const parametrized[] =
+@@ -283,7 +283,7 @@
+ 	} else {
+ 	    /* normal token lookup */
+ 	    entry_ptr = _nc_find_entry(_nc_curr_token.tk_name,
+-				       _nc_syntax ? _nc_cap_hash_table : _nc_info_hash_table);
++				       _nc_get_hash_table(_nc_syntax));
+ 
+ 	    /*
+ 	     * Our kluge to handle aliasing.  The reason it's done
+@@ -300,7 +300,7 @@
+ 		    if (entryp->nuses != 0) {
+ 			BAD_TC_USAGE
+ 		    }
+-		    for (ap = _nc_capalias_table; ap->from; ap++)
++		    for (ap = _nc_get_alias_table(TRUE); ap->from; ap++)
+ 			if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
+ 			    if (ap->to == (char *) 0) {
+ 				_nc_warning("%s (%s termcap extension) ignored",
+@@ -308,14 +308,15 @@
+ 				goto nexttok;
+ 			    }
+ 
+-			    entry_ptr = _nc_find_entry(ap->to, _nc_cap_hash_table);
++			    entry_ptr = _nc_find_entry(ap->to,
++						       _nc_get_hash_table(TRUE));
+ 			    if (entry_ptr && !silent)
+ 				_nc_warning("%s (%s termcap extension) aliased to %s",
+ 					    ap->from, ap->source, ap->to);
+ 			    break;
+ 			}
+ 		} else {	/* if (_nc_syntax == SYN_TERMINFO) */
+-		    for (ap = _nc_infoalias_table; ap->from; ap++)
++		    for (ap = _nc_get_alias_table(FALSE); ap->from; ap++)
+ 			if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
+ 			    if (ap->to == (char *) 0) {
+ 				_nc_warning("%s (%s terminfo extension) ignored",
+@@ -323,7 +324,8 @@
+ 				goto nexttok;
+ 			    }
+ 
+-			    entry_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
++			    entry_ptr = _nc_find_entry(ap->to,
++						       _nc_get_hash_table(FALSE));
+ 			    if (entry_ptr && !silent)
+ 				_nc_warning("%s (%s terminfo extension) aliased to %s",
+ 					    ap->from, ap->source, ap->to);
+@@ -796,8 +798,8 @@
+ 
+ 	    /* now we know we found a match in ko_table, so... */
+ 
+-	    from_ptr = _nc_find_entry(ap->from, _nc_cap_hash_table);
+-	    to_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
++	    from_ptr = _nc_find_entry(ap->from, _nc_get_hash_table(TRUE));
++	    to_ptr = _nc_find_entry(ap->to, _nc_get_hash_table(FALSE));
+ 
+ 	    if (!from_ptr || !to_ptr)	/* should never happen! */
+ 		_nc_err_abort("ko translation table is invalid, I give up");
+Index: ncurses/tinfo/read_entry.c
+Prereq:  1.99 
+--- ncurses-5.6/ncurses/tinfo/read_entry.c	2006-08-19 15:58:50.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/read_entry.c	2007-11-17 23:56:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,7 +42,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: read_entry.c,v 1.99 2006/08/19 15:58:50 tom Exp $")
++MODULE_ID("$Id: read_entry.c,v 1.100 2007/11/17 23:56:50 tom Exp $")
+ 
+ #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+ 
+@@ -409,7 +409,7 @@
+ 	unsigned need = 4 + strlen(path) + strlen(name);
+ 
+ 	if (need <= limit) {
+-	    (void) sprintf(filename, "%s/%c/%s", path, *name, name);
++	    (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name);
+ 	    result = _nc_read_file_entry(filename, tp);
+ 	}
+     }
+Index: ncurses/tinfo/setbuf.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/tinfo/setbuf.c	2003-11-15 23:55:34.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/setbuf.c	2007-05-12 19:04:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: setbuf.c,v 1.12 2003/11/15 23:55:34 tom Exp $")
++MODULE_ID("$Id: setbuf.c,v 1.13 2007/05/12 19:04:02 tom Exp $")
+ 
+ /*
+  * If the output file descriptor is connected to a tty (the typical case) it
+@@ -102,7 +102,7 @@
+ {
+     /* optional optimization hack -- do before any output to ofp */
+ #if HAVE_SETVBUF || HAVE_SETBUFFER
+-    if (SP->_buffered != (int)buffered) {
++    if (SP->_buffered != buffered) {
+ 	unsigned buf_len;
+ 	char *buf_ptr;
+ 
+Index: ncurses/tinfo/strings.c
+Prereq:  1.5 
+--- ncurses-5.6/ncurses/tinfo/strings.c	2003-08-16 23:46:00.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/strings.c	2007-08-11 17:12:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000,2003 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -36,7 +36,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: strings.c,v 1.5 2003/08/16 23:46:00 tom Exp $")
++MODULE_ID("$Id: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $")
+ 
+ /****************************************************************************
+  * Useful string functions (especially for mvcur)
+@@ -52,7 +52,7 @@
+ 
+     while ((len1 != 0) && (len1-- >= len2)) {
+ 	if (!strncmp(haystack, needle, len2)) {
+-	    result = haystack;
++	    result = (char *) haystack;
+ 	    break;
+ 	}
+ 	haystack++;
+Index: ncurses/tinfo/trim_sgr0.c
+Prereq:  1.7 
+--- ncurses-5.6/ncurses/tinfo/trim_sgr0.c	2006-12-02 19:37:57.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/trim_sgr0.c	2007-04-07 17:14:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2005-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -37,7 +37,7 @@
+ #include <tic.h>
+ #include <term_entry.h>
+ 
+-MODULE_ID("$Id: trim_sgr0.c,v 1.7 2006/12/02 19:37:57 tom Exp $")
++MODULE_ID("$Id: trim_sgr0.c,v 1.8 2007/04/07 17:14:11 tom Exp $")
+ 
+ #undef CUR
+ #define CUR tp->
+@@ -247,9 +247,7 @@
+ 	if (!rewrite_sgr(on, enter_alt_charset_mode)
+ 	    || !rewrite_sgr(off, exit_alt_charset_mode)
+ 	    || !rewrite_sgr(end, exit_alt_charset_mode)) {
+-	    FreeIfNeeded(on);
+ 	    FreeIfNeeded(off);
+-	    FreeIfNeeded(end);
+ 	} else if (similar_sgr(off, end)
+ 		   && !similar_sgr(off, on)) {
+ 	    TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
+@@ -315,8 +313,8 @@
+ 	     */
+ 	    free(off);
+ 	}
+-	free(end);
+-	free(on);
++	FreeIfNeeded(end);
++	FreeIfNeeded(on);
+     } else {
+ 	/*
+ 	 * Possibly some applications are confused if sgr0 contains rmacs,
+Index: ncurses/tinfo/use_screen.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/use_screen.c	2007-10-20 22:46:13.000000000 +0000
+@@ -0,0 +1,60 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++
++/****************************************************************************
++ *     Author: Thomas E. Dickey                        2007                 *
++ ****************************************************************************/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: use_screen.c,v 1.2 2007/09/08 21:46:48 tom Exp $")
++
++NCURSES_EXPORT(int)
++use_screen(SCREEN *screen, NCURSES_CALLBACK func, void *data)
++{
++    SCREEN *save_SP;
++    int code = OK;
++
++    T((T_CALLED("use_screen(%p,%p,%p)"), screen, func, data));
++
++    /*
++     * FIXME - add a flag so a given thread can check if _it_ has already
++     * recurred through this point, return an error if so.
++     */
++    _nc_lock_global(use_screen);
++    save_SP = SP;
++    set_term(screen);
++
++    code = func(screen->_stdscr, data);
++
++    set_term(save_SP);
++    _nc_unlock_global(use_screen);
++    returnCode(code);
++
++    return 0;
++}
+Index: ncurses/tinfo/write_entry.c
+Prereq:  1.68 
+--- ncurses-5.6/ncurses/tinfo/write_entry.c	2006-10-14 20:45:16.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tinfo/write_entry.c	2007-11-17 23:38:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -54,7 +54,7 @@
+ #define TRACE_OUT(p)		/*nothing */
+ #endif
+ 
+-MODULE_ID("$Id: write_entry.c,v 1.68 2006/10/14 20:45:16 tom Exp $")
++MODULE_ID("$Id: write_entry.c,v 1.70 2007/11/17 23:38:28 tom Exp $")
+ 
+ static int total_written;
+ 
+@@ -97,17 +97,16 @@
+     static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+     static bool verified[sizeof(dirnames)];
+ 
+-    char dir[2];
++    char dir[sizeof(LEAF_FMT)];
+     char *s = 0;
+ 
+     if (code == 0 || (s = strchr(dirnames, code)) == 0)
+-	_nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
++	_nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code);
+ 
+     if (verified[s - dirnames])
+ 	return;
+ 
+-    dir[0] = code;
+-    dir[1] = '\0';
++    sprintf(dir, LEAF_FMT, code);
+     if (make_db_root(dir) < 0) {
+ 	_nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
+     }
+@@ -358,7 +357,7 @@
+     if (strlen(first_name) > sizeof(filename) - 3)
+ 	_nc_warning("terminal name too long.");
+ 
+-    sprintf(filename, "%c/%s", first_name[0], first_name);
++    sprintf(filename, LEAF_FMT "/%s", first_name[0], first_name);
+ 
+     /*
+      * Has this primary name been written since the first call to
+@@ -399,7 +398,7 @@
+ 	}
+ 
+ 	check_writeable(ptr[0]);
+-	sprintf(linkname, "%c/%s", ptr[0], ptr);
++	sprintf(linkname, LEAF_FMT "/%s", ptr[0], ptr);
+ 
+ 	if (strcmp(filename, linkname) == 0) {
+ 	    _nc_warning("self-synonym ignored");
+@@ -502,7 +501,8 @@
+ 	} else {
+ 	    offsets[i] = nextfree;
+ 	    nextfree += strlen(Strings[i]) + 1;
+-	    TRACE_OUT(("put Strings[%d]=%s(%d)", i, _nc_visbuf(Strings[i]), nextfree));
++	    TRACE_OUT(("put Strings[%d]=%s(%d)", (int) i,
++		       _nc_visbuf(Strings[i]), nextfree));
+ 	}
+     }
+     return nextfree;
+@@ -740,7 +740,7 @@
+ 	 */
+ 	for (i = 0; i < tp->ext_Strings; i++) {
+ 	    if (VALID_STRING(tp->Strings[i + STRCOUNT])) {
+-		TRACE_OUT(("WRITE ext_Strings[%d]=%s", i,
++		TRACE_OUT(("WRITE ext_Strings[%d]=%s", (int) i,
+ 			   _nc_visbuf(tp->Strings[i + STRCOUNT])));
+ 		if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
+ 		    return (ERR);
+@@ -751,7 +751,7 @@
+ 	 * Write the extended names
+ 	 */
+ 	for (i = 0; i < extcnt; i++) {
+-	    TRACE_OUT(("WRITE ext_Names[%d]=%s", i, tp->ext_Names[i]));
++	    TRACE_OUT(("WRITE ext_Names[%d]=%s", (int) i, tp->ext_Names[i]));
+ 	    if (!WRITE_STRING(tp->ext_Names[i]))
+ 		return (ERR);
+ 	}
+Index: ncurses/trace/lib_trace.c
+Prereq:  1.59 
+--- ncurses-5.6/ncurses/trace/lib_trace.c	2006-08-19 12:05:25.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_trace.c	2007-09-29 21:47:46.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -46,37 +46,69 @@
+ 
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: lib_trace.c,v 1.59 2006/08/19 12:05:25 tom Exp $")
++MODULE_ID("$Id: lib_trace.c,v 1.65 2007/09/29 21:47:46 tom Exp $")
+ 
+ NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
+ 
+ #ifdef TRACE
++
++#if USE_REENTRANT
++NCURSES_EXPORT(const char *)
++NCURSES_PUBLIC_VAR(_nc_tputs_trace) (void)
++{
++    return SP ? SP->_tputs_trace : _nc_prescreen._tputs_trace;
++}
++NCURSES_EXPORT(long)
++NCURSES_PUBLIC_VAR(_nc_outchars) (void)
++{
++    return SP ? SP->_outchars : _nc_prescreen._outchars;
++}
++NCURSES_EXPORT(void)
++_nc_set_tputs_trace(const char *s)
++{
++    if (SP)
++	SP->_tputs_trace = s;
++    else
++	_nc_prescreen._tputs_trace = s;
++}
++NCURSES_EXPORT(void)
++_nc_count_outchars(long increment)
++{
++    if (SP)
++	SP->_outchars += increment;
++    else
++	_nc_prescreen._outchars += increment;
++}
++#else
+ NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
+ NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
++#endif
+ 
+-static FILE *tracefp = 0;	/* default to writing to stderr */
++#define TraceFP		_nc_globals.trace_fp
++#define TracePath	_nc_globals.trace_fname
++#define TraceLevel	_nc_globals.trace_level
+ 
+ NCURSES_EXPORT(void)
+ trace(const unsigned int tracelevel)
+ {
+-    static bool been_here = FALSE;
+-    static char my_name[PATH_MAX];
+-
+-    if ((tracefp == 0) && tracelevel) {
+-	const char *mode = been_here ? "ab" : "wb";
++    if ((TraceFP == 0) && tracelevel) {
++	const char *mode = _nc_globals.init_trace ? "ab" : "wb";
+ 
+-	if (*my_name == '\0') {
+-	    if (getcwd(my_name, sizeof(my_name) - 10) == 0) {
++	if (TracePath[0] == '\0') {
++	    if (getcwd(TracePath, sizeof(TracePath) - 12) == 0) {
+ 		perror("curses: Can't get working directory");
+ 		exit(EXIT_FAILURE);
+ 	    }
+-	    strcat(my_name, "/trace");
++	    strcat(TracePath, "/trace");
++	    if (_nc_is_dir_path(TracePath)) {
++		strcat(TracePath, ".log");
++	    }
+ 	}
+ 
+-	been_here = TRUE;
++	_nc_globals.init_trace = TRUE;
+ 	_nc_tracing = tracelevel;
+-	if (_nc_access(my_name, W_OK) < 0
+-	    || (tracefp = fopen(my_name, mode)) == 0) {
++	if (_nc_access(TracePath, W_OK) < 0
++	    || (TraceFP = fopen(TracePath, mode)) == 0) {
+ 	    perror("curses: Can't open 'trace' file");
+ 	    exit(EXIT_FAILURE);
+ 	}
+@@ -85,18 +117,18 @@
+ 	 * end of each line.  This is useful in case the program dies. 
+ 	 */
+ #if HAVE_SETVBUF		/* ANSI */
+-	(void) setvbuf(tracefp, (char *) 0, _IOLBF, 0);
++	(void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0);
+ #elif HAVE_SETBUF		/* POSIX */
+-	(void) setbuffer(tracefp, (char *) 0);
++	(void) setbuffer(TraceFP, (char *) 0);
+ #endif
+ 	_tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)",
+ 		NCURSES_VERSION,
+ 		NCURSES_VERSION_PATCH,
+ 		tracelevel);
+     } else if (tracelevel == 0) {
+-	if (tracefp != 0) {
+-	    fclose(tracefp);
+-	    tracefp = 0;
++	if (TraceFP != 0) {
++	    fclose(TraceFP);
++	    TraceFP = 0;
+ 	}
+ 	_nc_tracing = tracelevel;
+     } else if (_nc_tracing != tracelevel) {
+@@ -105,13 +137,12 @@
+     }
+ }
+ 
+-NCURSES_EXPORT(void)
+-_tracef(const char *fmt,...)
++static void
++_nc_va_tracef(const char *fmt, va_list ap)
+ {
+     static const char Called[] = T_CALLED("");
+     static const char Return[] = T_RETURN("");
+-    static int level;
+-    va_list ap;
++
+     bool before = FALSE;
+     bool after = FALSE;
+     unsigned doit = _nc_tracing;
+@@ -120,12 +151,12 @@
+     if (strlen(fmt) >= sizeof(Called) - 1) {
+ 	if (!strncmp(fmt, Called, sizeof(Called) - 1)) {
+ 	    before = TRUE;
+-	    level++;
++	    TraceLevel++;
+ 	} else if (!strncmp(fmt, Return, sizeof(Return) - 1)) {
+ 	    after = TRUE;
+ 	}
+ 	if (before || after) {
+-	    if ((level <= 1)
++	    if ((TraceLevel <= 1)
+ 		|| (doit & TRACE_ICALLS) != 0)
+ 		doit &= (TRACE_CALLS | TRACE_CCALLS);
+ 	    else
+@@ -134,25 +165,34 @@
+     }
+ 
+     if (doit != 0) {
+-	if (tracefp == 0)
+-	    tracefp = stderr;
++	if (TraceFP == 0)
++	    TraceFP = stderr;
+ 	if (before || after) {
+ 	    int n;
+-	    for (n = 1; n < level; n++)
+-		fputs("+ ", tracefp);
++	    for (n = 1; n < TraceLevel; n++)
++		fputs("+ ", TraceFP);
+ 	}
+-	va_start(ap, fmt);
+-	vfprintf(tracefp, fmt, ap);
+-	fputc('\n', tracefp);
+-	va_end(ap);
+-	fflush(tracefp);
++	vfprintf(TraceFP, fmt, ap);
++	fputc('\n', TraceFP);
++	fflush(TraceFP);
+     }
+ 
+-    if (after && level)
+-	level--;
++    if (after && TraceLevel)
++	TraceLevel--;
++
+     errno = save_err;
+ }
+ 
++NCURSES_EXPORT(void)
++_tracef(const char *fmt,...)
++{
++    va_list ap;
++
++    va_start(ap, fmt);
++    _nc_va_tracef(fmt, ap);
++    va_end(ap);
++}
++
+ /* Trace 'bool' return-values */
+ NCURSES_EXPORT(NCURSES_BOOL)
+ _nc_retrace_bool(NCURSES_BOOL code)
+@@ -224,4 +264,53 @@
+     T((T_RETURN("%p"), code));
+     return code;
+ }
++
++#if USE_REENTRANT
++/*
++ * Check if the given trace-mask is enabled.
++ *
++ * This function may be called from within one of the functions that fills
++ * in parameters for _tracef(), but in that case we do not want to lock the
++ * mutex, since it is already locked.
++ */
++NCURSES_EXPORT(int)
++_nc_use_tracef(unsigned mask)
++{
++    bool result = FALSE;
++
++    _nc_lock_global(tst_tracef);
++    if (!_nc_globals.nested_tracef++) {
++	if ((result = (_nc_tracing & (mask))) != 0) {
++	    /* we will call _nc_locked_tracef(), no nesting so far */
++	    _nc_lock_global(tracef);
++	} else {
++	    /* we will not call _nc_locked_tracef() */
++	    _nc_globals.nested_tracef = 0;
++	}
++    } else {
++	/* we may call _nc_locked_tracef(), but with nested_tracef > 0 */
++	result = (_nc_tracing & (mask));
++    }
++    _nc_unlock_global(tst_tracef);
++    return result;
++}
++
++/*
++ * We call this if _nc_use_tracef() returns true, which means we must unlock
++ * the tracef mutex.
++ */
++NCURSES_EXPORT(void)
++_nc_locked_tracef(const char *fmt,...)
++{
++    va_list ap;
++
++    va_start(ap, fmt);
++    _nc_va_tracef(fmt, ap);
++    va_end(ap);
++
++    if (--(_nc_globals.nested_tracef) == 0)
++	_nc_unlock_global(tracef);
++}
++#endif /* USE_REENTRANT */
++
+ #endif /* TRACE */
+Index: ncurses/trace/lib_traceatr.c
+Prereq:  1.56 
+--- ncurses-5.6/ncurses/trace/lib_traceatr.c	2006-12-02 21:18:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_traceatr.c	2007-06-09 17:22:10.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,33 +39,37 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* acs_chars */
+ 
+-MODULE_ID("$Id: lib_traceatr.c,v 1.56 2006/12/02 21:18:28 tom Exp $")
++MODULE_ID("$Id: lib_traceatr.c,v 1.59 2007/06/09 17:22:10 tom Exp $")
+ 
+ #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
+ 
+ #ifdef TRACE
+ 
+-static const char l_brace[] = {L_BRACE, 0};
+-static const char r_brace[] = {R_BRACE, 0};
++static const char l_brace[] = StringOf(L_BRACE);
++static const char r_brace[] = StringOf(R_BRACE);
+ 
+ #ifndef USE_TERMLIB
++
++#define my_buffer _nc_globals.traceatr_color_buf
++#define my_select _nc_globals.traceatr_color_sel
++#define my_cached _nc_globals.traceatr_color_last
++
+ static char *
+ color_of(int c)
+ {
+-    static char buffer[2][80];
+-    static int sel;
+-    static int last = -1;
+-
+-    if (c != last) {
+-	last = c;
+-	sel = !sel;
++    if (c != my_cached) {
++	my_cached = c;
++	my_select = !my_select;
+ 	if (c == COLOR_DEFAULT)
+-	    strcpy(buffer[sel], "default");
++	    strcpy(my_buffer[my_select], "default");
+ 	else
+-	    sprintf(buffer[sel], "color%d", c);
++	    sprintf(my_buffer[my_select], "color%d", c);
+     }
+-    return buffer[sel];
++    return my_buffer[my_select];
+ }
++
++#undef my_buffer
++#undef my_select
+ #endif /* !USE_TERMLIB */
+ 
+ NCURSES_EXPORT(char *)
+@@ -173,17 +177,19 @@
+ const char *
+ _nc_altcharset_name(attr_t attr, chtype ch)
+ {
++    typedef struct {
++	unsigned int val;
++	const char *name;
++    } ALT_NAMES;
++
+     const char *result = 0;
+ 
+     if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
+ 	char *cp;
+ 	char *found = 0;
+-	static const struct {
+-	    unsigned int val;
+-	    const char *name;
+-	} names[] =
++	/* *INDENT-OFF* */
++	static const ALT_NAMES names[] =
+ 	{
+-	    /* *INDENT-OFF* */
+ 	    { 'l', "ACS_ULCORNER" },	/* upper left corner */
+ 	    { 'm', "ACS_LLCORNER" },	/* lower left corner */
+ 	    { 'k', "ACS_URCORNER" },	/* upper right corner */
+@@ -217,9 +223,9 @@
+ 	    { '|', "ACS_NEQUAL" },	/* not equal */
+ 	    { '}', "ACS_STERLING" },	/* UK pound sign */
+ 	    { '\0', (char *) 0 }
+-		/* *INDENT-OFF* */
+-	},
+-	    *sp;
++	};
++	/* *INDENT-OFF* */
++	const ALT_NAMES *sp;
+ 
+ 	for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
+ 	    if (ChCharOf(cp[1]) == ChCharOf(ch)) {
+Index: ncurses/trace/lib_tracebits.c
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/trace/lib_tracebits.c	2006-12-10 01:33:00.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_tracebits.c	2007-06-30 16:14:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,7 +35,7 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* cur_term */
+ 
+-MODULE_ID("$Id: lib_tracebits.c,v 1.13 2006/12/10 01:33:00 tom Exp $")
++MODULE_ID("$Id: lib_tracebits.c,v 1.15 2007/06/30 16:14:20 tom Exp $")
+ 
+ #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+ #define _POSIX_SOURCE
+@@ -53,10 +53,27 @@
+ #ifndef TOSTOP
+ #define TOSTOP 0
+ #endif
++
+ #ifndef IEXTEN
+ #define IEXTEN 0
+ #endif
+ 
++#ifndef ONLCR
++#define ONLCR 0
++#endif
++
++#ifndef OCRNL
++#define OCRNL 0
++#endif
++
++#ifndef ONOCR
++#define ONOCR 0
++#endif
++
++#ifndef ONLRET
++#define ONLRET 0
++#endif
++
+ #ifdef TRACE
+ 
+ typedef struct {
+@@ -108,8 +125,12 @@
+     {
+ 	{OPOST, "OPOST"},
+ 	{OFLAGS_TABS, "XTABS"},
++	{ONLCR, "ONLCR"},
++	{OCRNL, "OCRNL"},
++	{ONOCR, "ONOCR"},
++	{ONLRET, "ONLRET"},
+ 	{0, NULL}
+-#define ALLOUT	(OPOST)
++#define ALLOUT	(OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET)
+     }, cflags[] =
+     {
+ 	{CLOCAL, "CLOCAL"},
+Index: ncurses/trace/lib_tracechr.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/trace/lib_tracechr.c	2005-04-16 16:55:46.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_tracechr.c	2007-04-21 23:16:37.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,34 +39,35 @@
+ 
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: lib_tracechr.c,v 1.12 2005/04/16 16:55:46 tom Exp $")
++MODULE_ID("$Id: lib_tracechr.c,v 1.13 2007/04/21 23:16:37 tom Exp $")
+ 
+ #ifdef TRACE
++#define MyBuffer _nc_globals.tracechr_buf
++
+ NCURSES_EXPORT(char *)
+ _tracechar(int ch)
+ {
+-    static char result[40];
+     NCURSES_CONST char *name;
+ 
+     if (ch > KEY_MIN || ch < 0) {
+ 	name = keyname(ch);
+ 	if (name == 0 || *name == '\0')
+ 	    name = "NULL";
+-	(void) sprintf(result, "'%.30s' = %#03o", name, ch);
++	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
+     } else if (!is8bits(ch) || !isprint(UChar(ch))) {
+ 	/*
+ 	 * workaround for glibc bug:
+ 	 * sprintf changes the result from unctrl() to an empty string if it
+ 	 * does not correspond to a valid multibyte sequence.
+ 	 */
+-	(void) sprintf(result, "%#03o", ch);
++	(void) sprintf(MyBuffer, "%#03o", ch);
+     } else {
+ 	name = unctrl((chtype) ch);
+ 	if (name == 0 || *name == 0)
+ 	    name = "null";	/* shouldn't happen */
+-	(void) sprintf(result, "'%.30s' = %#03o", name, ch);
++	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
+     }
+-    return (result);
++    return (MyBuffer);
+ }
+ #else
+ empty_module(_nc_lib_tracechr)
+Index: ncurses/trace/lib_tracedmp.c
+Prereq:  1.27 
+--- ncurses-5.6/ncurses/trace/lib_tracedmp.c	2006-10-14 20:43:31.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_tracedmp.c	2007-06-30 23:01:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,15 +39,16 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: lib_tracedmp.c,v 1.27 2006/10/14 20:43:31 tom Exp $")
++MODULE_ID("$Id: lib_tracedmp.c,v 1.29 2007/06/30 23:01:19 tom Exp $")
+ 
+ #ifdef TRACE
++
++#define my_buffer _nc_globals.tracedmp_buf
++#define my_length _nc_globals.tracedmp_used
++
+ NCURSES_EXPORT(void)
+ _tracedump(const char *name, WINDOW *win)
+ {
+-    static char *buf = 0;
+-    static size_t used = 0;
+-
+     int i, j, n, width;
+ 
+     /* compute narrowest possible display width */
+@@ -66,13 +67,13 @@
+     }
+     if (width < win->_maxx)
+ 	++width;
+-    if (++width + 1 > (int) used) {
+-	used = 2 * (width + 1);
+-	buf = typeRealloc(char, used, buf);
++    if (++width + 1 > (int) my_length) {
++	my_length = 2 * (width + 1);
++	my_buffer = typeRealloc(char, my_length, my_buffer);
+     }
+ 
+     for (n = 0; n <= win->_maxy; ++n) {
+-	char *ep = buf;
++	char *ep = my_buffer;
+ 	bool haveattrs, havecolors;
+ 
+ 	/*
+@@ -99,6 +100,30 @@
+ 		(long) win->_line[n].lastchar,
+ 		ep);
+ 
++	/* if there are multi-column characters on the line, print them now */
++	if_WIDEC({
++	    bool multicolumn = FALSE;
++	    for (j = 0; j < width; ++j)
++		if (WidecExt(win->_line[n].text[j]) != 0) {
++		    multicolumn = TRUE;
++		    break;
++		}
++	    if (multicolumn) {
++		ep = my_buffer;
++		for (j = 0; j < width; ++j) {
++		    int test = WidecExt(win->_line[n].text[j]);
++		    if (test) {
++			ep[j] = test + '0';
++		    } else {
++			ep[j] = ' ';
++		    }
++		}
++		ep[j] = '\0';
++		_tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
++			"widec", n, 8, " ", my_buffer);
++	    }
++	});
++
+ 	/* dump A_COLOR part, will screw up if there are more than 96 */
+ 	havecolors = FALSE;
+ 	for (j = 0; j < width; ++j)
+@@ -107,7 +132,7 @@
+ 		break;
+ 	    }
+ 	if (havecolors) {
+-	    ep = buf;
++	    ep = my_buffer;
+ 	    for (j = 0; j < width; ++j) {
+ 		int pair = GetPair(win->_line[n].text[j]);
+ 		if (pair >= 52)
+@@ -123,7 +148,7 @@
+ 	    }
+ 	    ep[j] = '\0';
+ 	    _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
+-		    "colors", n, 8, " ", buf);
++		    "colors", n, 8, " ", my_buffer);
+ 	}
+ 
+ 	for (i = 0; i < 4; ++i) {
+@@ -137,20 +162,20 @@
+ 		    break;
+ 		}
+ 	    if (haveattrs) {
+-		ep = buf;
++		ep = my_buffer;
+ 		for (j = 0; j < width; ++j)
+ 		    ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >>
+ 				((i + 4) * 4)];
+ 		ep[j] = '\0';
+ 		_tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) -
+-			1, "attrs", i, n, 8, " ", buf);
++			1, "attrs", i, n, 8, " ", my_buffer);
+ 	    }
+ 	}
+     }
+ #if NO_LEAKS
+-    free(buf);
+-    buf = 0;
+-    used = 0;
++    free(my_buffer);
++    my_buffer = 0;
++    my_length = 0;
+ #endif
+ }
+ 
+Index: ncurses/trace/lib_tracemse.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/trace/lib_tracemse.c	2005-06-11 19:53:50.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/lib_tracemse.c	2007-04-21 21:23:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -38,30 +38,23 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_tracemse.c,v 1.12 2005/06/11 19:53:50 tom Exp $")
++MODULE_ID("$Id: lib_tracemse.c,v 1.13 2007/04/21 21:23:00 tom Exp $")
+ 
+ #ifdef TRACE
+ 
++#define my_buffer _nc_globals.tracemse_buf
++
+ NCURSES_EXPORT(char *)
+ _tracemouse(MEVENT const *ep)
+ {
+-    /*
+-     * hmm - format is no longer than 80 columns, there are 5 numbers that
+-     * could at most have 10 digits, and the mask contains no more than 32 bits
+-     * with each bit representing less than 15 characters.  Usually the whole
+-     * string is less than 80 columns, but this buffer size is an absolute
+-     * limit.
+-     */
+-    static char buf[80 + (5 * 10) + (32 * 15)];
+-
+-    (void) sprintf(buf, "id %2d  at (%2d, %2d, %2d) state %4lx = {",
++    (void) sprintf(my_buffer, TRACEMSE_FMT,
+ 		   ep->id,
+ 		   ep->x,
+ 		   ep->y,
+ 		   ep->z,
+ 		   (unsigned long) ep->bstate);
+ 
+-#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(buf, s), ", ")
++#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(my_buffer, s), ", ")
+ 
+     SHOW(BUTTON1_RELEASED, "release-1");
+     SHOW(BUTTON1_PRESSED, "press-1");
+@@ -115,10 +108,10 @@
+ 
+ #undef SHOW
+ 
+-    if (buf[strlen(buf) - 1] == ' ')
+-	buf[strlen(buf) - 2] = '\0';
+-    (void) strcat(buf, "}");
+-    return (buf);
++    if (my_buffer[strlen(my_buffer) - 1] == ' ')
++	my_buffer[strlen(my_buffer) - 2] = '\0';
++    (void) strcat(my_buffer, "}");
++    return (my_buffer);
+ }
+ 
+ #else /* !TRACE */
+Index: ncurses/trace/trace_buf.c
+Prereq:  1.12 
+--- ncurses-5.6/ncurses/trace/trace_buf.c	2003-03-15 21:21:36.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/trace_buf.c	2007-04-21 22:50:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,46 +35,42 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: trace_buf.c,v 1.12 2003/03/15 21:21:36 tom Exp $")
++MODULE_ID("$Id: trace_buf.c,v 1.13 2007/04/21 22:50:08 tom Exp $")
+ 
+-typedef struct {
+-    char *text;
+-    size_t size;
+-} LIST;
++#define MyList _nc_globals.tracebuf_ptr
++#define MySize _nc_globals.tracebuf_used
+ 
+ static char *
+ _nc_trace_alloc(int bufnum, size_t want)
+ {
+     char *result = 0;
+-    static LIST *list;
+-    static size_t have;
+ 
+     if (bufnum >= 0) {
+-	if ((size_t) (bufnum + 1) > have) {
++	if ((size_t) (bufnum + 1) > MySize) {
+ 	    size_t need = (bufnum + 1) * 2;
+-	    if ((list = typeRealloc(LIST, need, list)) == 0)
++	    if ((MyList = typeRealloc(TRACEBUF, need, MyList)) == 0)
+ 		return (0);
+-	    while (need > have)
+-		list[have++].text = 0;
++	    while (need > MySize)
++		MyList[MySize++].text = 0;
+ 	}
+ 
+-	if (list[bufnum].text == 0
+-	    || want > list[bufnum].size) {
+-	    if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text))
+-		!= 0)
+-		  list[bufnum].size = want;
++	if (MyList[bufnum].text == 0
++	    || want > MyList[bufnum].size) {
++	    MyList[bufnum].text = typeRealloc(char, want, MyList[bufnum].text);
++	    if (MyList[bufnum].text != 0)
++		MyList[bufnum].size = want;
+ 	}
+ 
+-	result = list[bufnum].text;
++	result = MyList[bufnum].text;
+     }
+ #if NO_LEAKS
+     else {
+-	if (have) {
+-	    while (have--) {
+-		if (list[have].text != 0)
+-		    free(list[have].text);
++	if (MySize) {
++	    while (MySize--) {
++		if (MyList[MySize].text != 0)
++		    free(MyList[MySize].text);
+ 	    }
+-	    free(list);
++	    free(MyList);
+ 	}
+     }
+ #endif
+Index: ncurses/trace/trace_tries.c
+Prereq:  1.10 
+--- ncurses-5.6/ncurses/trace/trace_tries.c	2001-10-20 22:42:51.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/trace_tries.c	2007-04-21 21:55:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc.              *
++ * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,25 +35,27 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: trace_tries.c,v 1.10 2001/10/20 22:42:51 tom Exp $")
++MODULE_ID("$Id: trace_tries.c,v 1.12 2007/04/21 21:55:41 tom Exp $")
+ 
+ #ifdef TRACE
+-static unsigned char *buffer;
+-static unsigned len;
++#define my_buffer _nc_globals.tracetry_buf
++#define my_length _nc_globals.tracetry_used
+ 
+ static void
+-recur_tries(struct tries *tree, unsigned level)
++recur_tries(TRIES * tree, unsigned level)
+ {
+-    if (level > len)
+-	buffer = (unsigned char *) realloc(buffer, len = (level + 1) * 4);
++    if (level > my_length) {
++	my_length = (level + 1) * 4;
++	my_buffer = (unsigned char *) realloc(my_buffer, my_length);
++    }
+ 
+     while (tree != 0) {
+-	if ((buffer[level] = tree->ch) == 0)
+-	    buffer[level] = 128;
+-	buffer[level + 1] = 0;
++	if ((my_buffer[level] = tree->ch) == 0)
++	    my_buffer[level] = 128;
++	my_buffer[level + 1] = 0;
+ 	if (tree->value != 0) {
+ 	    _tracef("%5d: %s (%s)", tree->value,
+-		    _nc_visbuf((char *) buffer), keyname(tree->value));
++		    _nc_visbuf((char *) my_buffer), keyname(tree->value));
+ 	}
+ 	if (tree->child)
+ 	    recur_tries(tree->child, level + 1);
+@@ -62,13 +64,13 @@
+ }
+ 
+ NCURSES_EXPORT(void)
+-_nc_trace_tries(struct tries *tree)
++_nc_trace_tries(TRIES * tree)
+ {
+-    buffer = typeMalloc(unsigned char, len = 80);
++    my_buffer = typeMalloc(unsigned char, my_length = 80);
+     _tracef("BEGIN tries %p", tree);
+     recur_tries(tree, 0);
+     _tracef(". . . tries %p", tree);
+-    free(buffer);
++    free(my_buffer);
+ }
+ 
+ #else
+Index: ncurses/trace/varargs.c
+Prereq:  1.4 
+--- ncurses-5.6/ncurses/trace/varargs.c	2003-05-24 21:10:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/varargs.c	2007-07-14 15:51:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2002,2003 Free Software Foundation, Inc.              *
++ * Copyright (c) 2001-2003,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+ 
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: varargs.c,v 1.4 2003/05/24 21:10:28 tom Exp $")
++MODULE_ID("$Id: varargs.c,v 1.6 2007/07/14 15:51:27 tom Exp $")
+ 
+ #ifdef TRACE
+ 
+@@ -49,6 +49,9 @@
+ #define VA_PTR(type) pval = (char *)va_arg(ap, type)
+ #define VA_STR(type) sval = va_arg(ap, type)
+ 
++#define MyBuffer _nc_globals.tracearg_buf
++#define MyLength _nc_globals.tracearg_used
++
+ /*
+  * Returns a string that represents the parameter list of a printf-style call.
+  */
+@@ -56,8 +59,6 @@
+ _nc_varargs(const char *fmt, va_list ap)
+ {
+     static char dummy[] = "";
+-    static char *result_buf;
+-    static size_t result_len;
+ 
+     char buffer[BUFSIZ];
+     const char *param;
+@@ -65,11 +66,11 @@
+ 
+     if (fmt == 0 || *fmt == '\0')
+ 	return dummy;
+-    if (result_len == 0)
+-	result_buf = typeMalloc(char, result_len = BUFSIZ);
+-    if (result_buf == 0)
++    if (MyLength == 0)
++	MyBuffer = typeMalloc(char, MyLength = BUFSIZ);
++    if (MyBuffer == 0)
+ 	return dummy;
+-    *result_buf = '\0';
++    *MyBuffer = '\0';
+ 
+     while (*fmt != '\0') {
+ 	if (*fmt == '%') {
+@@ -159,13 +160,14 @@
+ 			case atString:
+ 			    param = _nc_visbuf2(1, sval);
+ 			    break;
++			case atUnknown:
+ 			default:
+ 			    strcpy(buffer, "?");
+ 			    break;
+ 			}
+-			result_len += strlen(param) + 2;
+-			result_buf = typeRealloc(char, result_len, result_buf);
+-			sprintf(result_buf + strlen(result_buf), ", %s", param);
++			MyLength += strlen(param) + 2;
++			MyBuffer = typeRealloc(char, MyLength, MyBuffer);
++			sprintf(MyBuffer + strlen(MyBuffer), ", %s", param);
+ 		    }
+ 		}
+ 		used = atUnknown;
+@@ -175,7 +177,7 @@
+ 	}
+     }
+ 
+-    return (result_buf);
++    return (MyBuffer);
+ }
+ #else
+ empty_module(_nc_varargs)
+Index: ncurses/trace/visbuf.c
+Prereq:  1.21 
+--- ncurses-5.6/ncurses/trace/visbuf.c	2006-12-02 21:20:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/trace/visbuf.c	2007-06-09 17:21:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2001-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,11 +42,16 @@
+ #include <tic.h>
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: visbuf.c,v 1.21 2006/12/02 21:20:28 tom Exp $")
++MODULE_ID("$Id: visbuf.c,v 1.26 2007/06/09 17:21:53 tom Exp $")
+ 
+-static const char d_quote[] = {D_QUOTE, 0};
+-static const char l_brace[] = {L_BRACE, 0};
+-static const char r_brace[] = {R_BRACE, 0};
++#define NormalLen(len) (unsigned) ((len + 1) * 4)
++#define WideLen(len)   (unsigned) ((len + 1) * 4 * MB_CUR_MAX)
++
++#ifdef TRACE
++static const char d_quote[] = StringOf(D_QUOTE);
++static const char l_brace[] = StringOf(L_BRACE);
++static const char r_brace[] = StringOf(R_BRACE);
++#endif
+ 
+ static char *
+ _nc_vischar(char *tp, unsigned c)
+@@ -68,6 +73,10 @@
+     } else if (c == '\033') {
+ 	*tp++ = '\\';
+ 	*tp++ = 'e';
++    } else if (UChar(c) == 0x7f) {
++	*tp++ = '\\';
++	*tp++ = '^';
++	*tp++ = '?';
+     } else if (is7bits(c) && iscntrl(UChar(c))) {
+ 	*tp++ = '\\';
+ 	*tp++ = '^';
+@@ -96,11 +105,11 @@
+ 	len = strlen(buf);
+ 
+ #ifdef TRACE
+-    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
++    tp = vbuf = _nc_trace_buf(bufnum, NormalLen(len));
+ #else
+     {
+-	static char *mybuf[2];
+-	mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
++	static char *mybuf[4];
++	mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]);
+ 	tp = vbuf = mybuf[bufnum];
+     }
+ #endif
+@@ -161,11 +170,11 @@
+ 	len = wcslen(buf);
+ 
+ #ifdef TRACE
+-    tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5);
++    tp = vbuf = _nc_trace_buf(bufnum, WideLen(len));
+ #else
+     {
+ 	static char *mybuf[2];
+-	mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]);
++	mybuf[bufnum] = typeRealloc(char, WideLen(len), mybuf[bufnum]);
+ 	tp = vbuf = mybuf[bufnum];
+     }
+ #endif
+@@ -259,7 +268,8 @@
+ 	result = _nc_trace_bufcat(bufnum, l_brace);
+ 	result = _nc_trace_bufcat(bufnum, d_quote);
+ 	for (j = first; j <= last; ++j) {
+-	    if ((found = _nc_altcharset_name(attr, (chtype) CharOf(buf[j]))) != 0) {
++	    found = _nc_altcharset_name(attr, (chtype) CharOf(buf[j]));
++	    if (found != 0) {
+ 		result = _nc_trace_bufcat(bufnum, found);
+ 		attr &= ~A_ALTCHARSET;
+ 	    } else
+Index: ncurses/tty/hardscroll.c
+Prereq:  1.36 
+--- ncurses-5.6/ncurses/tty/hardscroll.c	2001-01-14 00:17:28.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/hardscroll.c	2007-09-29 21:48:36.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -145,7 +145,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: hardscroll.c,v 1.36 2001/01/14 00:17:28 tom Exp $")
++MODULE_ID("$Id: hardscroll.c,v 1.41 2007/09/29 21:48:36 tom Exp $")
+ 
+ #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
+ 
+@@ -158,22 +158,25 @@
+ # undef TR
+ # define TR(n, a)	if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
+ 
++extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
++
+ #else /* no debug */
+ 
+ /* OLDNUM(n) indicates which line will be shifted to the position n.
+    if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
+    somewhere. */
+ NCURSES_EXPORT_VAR(int *)
+-_nc_oldnums = 0;
++_nc_oldnums = 0;		/* obsolete: keep for ABI compat */
+ 
+ # if USE_HASHMAP
+-     static int oldnums_allocated = 0;
+-#  define oldnums       _nc_oldnums
++#  define oldnums       SP->_oldnum_list
+ #  define OLDNUM(n)	oldnums[n]
+ # else				/* !USE_HASHMAP */
+ #  define OLDNUM(n)	newscr->_line[n].oldindex
+ # endif				/* !USE_HASHMAP */
+ 
++#define OLDNUM_SIZE     SP->_oldnum_size
++
+ #endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
+ 
+ NCURSES_EXPORT(void)
+@@ -183,17 +186,17 @@
+     int i;
+     int start, end, shift;
+ 
+-    TR(TRACE_ICALLS, ("_nc_scroll_optimize() begins"));
++    TR(TRACE_ICALLS, (T_CALLED("_nc_scroll_optimize")));
+ 
+ #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
+ #if USE_HASHMAP
+     /* get enough storage */
+-    if (oldnums_allocated < screen_lines) {
++    if (OLDNUM_SIZE < screen_lines) {
+ 	int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
+ 	if (!new_oldnums)
+ 	    return;
+ 	oldnums = new_oldnums;
+-	oldnums_allocated = screen_lines;
++	OLDNUM_SIZE = screen_lines;
+     }
+     /* calculate the indices */
+     _nc_hash_map();
+@@ -201,8 +204,10 @@
+ #endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
+ 
+ #ifdef TRACE
+-    if (_nc_tracing & (TRACE_UPDATE | TRACE_MOVE))
++    if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
+ 	_nc_linedump();
++	_nc_unlock_global(tracef);
++    }
+ #endif /* TRACE */
+ 
+     /* pass 1 - from top to bottom scrolling up */
+@@ -253,6 +258,7 @@
+ 	}
+ #endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
+     }
++    TR(TRACE_ICALLS, (T_RETURN("")));
+ }
+ 
+ #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
+@@ -260,23 +266,17 @@
+ _nc_linedump(void)
+ /* dump the state of the real and virtual oldnum fields */
+ {
+-    static size_t have;
+-    static char *buf;
+-
+     int n;
++    char *buf = 0;
+     size_t want = (screen_lines + 1) * 4;
+ 
+-    if (have < want)
+-	buf = typeMalloc(char, have = want);
++    buf = typeMalloc(char, want);
+ 
+     (void) strcpy(buf, "virt");
+     for (n = 0; n < screen_lines; n++)
+ 	(void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n));
+     TR(TRACE_UPDATE | TRACE_MOVE, (buf));
+-#if NO_LEAKS
+     free(buf);
+-    have = 0;
+-#endif
+ }
+ #endif /* defined(TRACE) || defined(SCROLLDEBUG) */
+ 
+Index: ncurses/tty/hashmap.c
+Prereq:  1.49 
+--- ncurses-5.6/ncurses/tty/hashmap.c	2006-03-11 19:33:49.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/hashmap.c	2007-10-13 18:47:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                   *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -70,7 +70,7 @@
+ #include <curses.priv.h>
+ #include <term.h>		/* for back_color_erase */
+ 
+-MODULE_ID("$Id: hashmap.c,v 1.49 2006/03/11 19:33:49 tom Exp $")
++MODULE_ID("$Id: hashmap.c,v 1.56 2007/10/13 18:47:25 Miroslav.Lichvar Exp $")
+ 
+ #ifdef HASHDEBUG
+ 
+@@ -81,7 +81,8 @@
+ # define screen_lines MAXLINES
+ # define TEXTWIDTH	1
+ int oldnums[MAXLINES], reallines[MAXLINES];
+-static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH];
++static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH];
++static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH];
+ # define OLDNUM(n)	oldnums[n]
+ # define OLDTEXT(n)	oldtext[n]
+ # define NEWTEXT(m)	newtext[m]
+@@ -89,7 +90,7 @@
+ 
+ #else /* !HASHDEBUG */
+ 
+-# define OLDNUM(n)	_nc_oldnums[n]
++# define OLDNUM(n)	SP->_oldnum_list[n]
+ # define OLDTEXT(n)	curscr->_line[n].text
+ # define NEWTEXT(m)	newscr->_line[m].text
+ # define TEXTWIDTH	(curscr->_maxx+1)
+@@ -130,8 +131,8 @@
+     int cost = 0;
+     int i;
+ 
+-    for (i = TEXTWIDTH; i > 0; i--)
+-	if (!(CharEq(*from++, *to++)))
++    for (i = TEXTWIDTH; i > 0; i--, from++, to++)
++	if (!(CharEq(*from, *to)))
+ 	    cost++;
+ 
+     return cost;
+@@ -147,8 +148,8 @@
+     if (back_color_erase)
+ 	SetPair(blank, GetPair(stdscr->_nc_bkgd));
+ 
+-    for (i = TEXTWIDTH; i > 0; i--)
+-	if (!(CharEq(blank, *to++)))
++    for (i = TEXTWIDTH; i > 0; i--, to++)
++	if (!(CharEq(blank, *to)))
+ 	    cost++;
+ 
+     return cost;
+@@ -446,11 +447,14 @@
+     char line[BUFSIZ], *st;
+     int n;
+ 
+-    SP = typeCalloc(SCREEN, 1);
++    if (setupterm(NULL, fileno(stdout), (int *) 0) == ERR)
++	return EXIT_FAILURE;
++    (void) _nc_alloc_screen();
++
+     for (n = 0; n < screen_lines; n++) {
+ 	reallines[n] = n;
+ 	oldnums[n] = _NEWINDEX;
+-	oldtext[n][0] = newtext[n][0] = '.';
++	CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.';
+     }
+ 
+     if (isatty(fileno(stdin)))
+@@ -462,7 +466,7 @@
+     for (;;) {
+ 	/* grab a test command */
+ 	if (fgets(line, sizeof(line), stdin) == (char *) NULL)
+-	    exit(EXIT_SUCCESS);
++	    break;
+ 
+ 	switch (line[0]) {
+ 	case '#':		/* comment */
+@@ -484,22 +488,22 @@
+ 
+ 	case 'n':		/* use following letters as text of new lines */
+ 	    for (n = 0; n < screen_lines; n++)
+-		newtext[n][0] = '.';
++		CharOf(newtext[n][0]) = '.';
+ 	    for (n = 0; n < screen_lines; n++)
+ 		if (line[n + 1] == '\n')
+ 		    break;
+ 		else
+-		    newtext[n][0] = line[n + 1];
++		    CharOf(newtext[n][0]) = line[n + 1];
+ 	    break;
+ 
+ 	case 'o':		/* use following letters as text of old lines */
+ 	    for (n = 0; n < screen_lines; n++)
+-		oldtext[n][0] = '.';
++		CharOf(oldtext[n][0]) = '.';
+ 	    for (n = 0; n < screen_lines; n++)
+ 		if (line[n + 1] == '\n')
+ 		    break;
+ 		else
+-		    oldtext[n][0] = line[n + 1];
++		    CharOf(oldtext[n][0]) = line[n + 1];
+ 	    break;
+ 
+ 	case 'd':		/* dump state of test arrays */
+@@ -508,12 +512,12 @@
+ #endif
+ 	    (void) fputs("Old lines: [", stdout);
+ 	    for (n = 0; n < screen_lines; n++)
+-		putchar(oldtext[n][0]);
++		putchar(CharOf(oldtext[n][0]));
+ 	    putchar(']');
+ 	    putchar('\n');
+ 	    (void) fputs("New lines: [", stdout);
+ 	    for (n = 0; n < screen_lines; n++)
+-		putchar(newtext[n][0]);
++		putchar(CharOf(newtext[n][0]));
+ 	    putchar(']');
+ 	    putchar('\n');
+ 	    break;
+@@ -527,12 +531,17 @@
+ 	    _nc_scroll_optimize();
+ 	    (void) fputs("Done.\n", stderr);
+ 	    break;
++	default:
+ 	case '?':
+ 	    usage();
+ 	    break;
+ 	}
+     }
++#if NO_LEAKS
++    _nc_free_and_exit(EXIT_SUCCESS);
++#else
+     return EXIT_SUCCESS;
++#endif
+ }
+ 
+ #endif /* HASHDEBUG */
+Index: ncurses/tty/lib_mvcur.c
+Prereq:  1.107 
+--- ncurses-5.6/ncurses/tty/lib_mvcur.c	2006-11-25 22:31:59.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/lib_mvcur.c	2007-08-11 16:15:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -155,7 +155,7 @@
+ #include <term.h>
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: lib_mvcur.c,v 1.107 2006/11/25 22:31:59 tom Exp $")
++MODULE_ID("$Id: lib_mvcur.c,v 1.110 2007/08/11 16:15:57 tom Exp $")
+ 
+ #define WANT_CHAR(y, x)	SP->_newscr->_line[y].text[x]	/* desired state */
+ #define BAUDRATE	cur_term->_baudrate	/* bits per second */
+@@ -959,6 +959,7 @@
+ 
+ #include <tic.h>
+ #include <dump_entry.h>
++#include <time.h>
+ 
+ NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
+ 
+@@ -1017,7 +1018,7 @@
+ int
+ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+ {
+-    (void) strcpy(tname, termname());
++    strcpy(tname, getenv("TERM"));
+     load_term();
+     _nc_setupscreen(lines, columns, stdout, FALSE, 0);
+     baudrate();
+@@ -1088,7 +1089,7 @@
+ 	    load_term();
+ 	} else if (sscanf(buf, "d %s", capname) == 1) {
+ 	    struct name_table_entry const *np = _nc_find_entry(capname,
+-							       _nc_info_hash_table);
++							       _nc_get_hash_table(FALSE));
+ 
+ 	    if (np == NULL)
+ 		(void) printf("No such capability as \"%s\"\n", capname);
+@@ -1116,7 +1117,7 @@
+ 	    }
+ 	} else if (buf[0] == 'i') {
+ 	    dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
+-	    dump_entry(&cur_term->type, FALSE, TRUE, 0, 0, 0);
++	    dump_entry(&cur_term->type, FALSE, TRUE, 0, 0);
+ 	    putchar('\n');
+ 	} else if (buf[0] == 'o') {
+ 	    if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
+Index: ncurses/tty/lib_tstp.c
+Prereq:  1.32 
+--- ncurses-5.6/ncurses/tty/lib_tstp.c	2006-04-01 19:31:34.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/lib_tstp.c	2007-04-21 19:51:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -46,7 +46,7 @@
+ #define _POSIX_SOURCE
+ #endif
+ 
+-MODULE_ID("$Id: lib_tstp.c,v 1.32 2006/04/01 19:31:34 tom Exp $")
++MODULE_ID("$Id: lib_tstp.c,v 1.36 2007/04/21 19:51:29 tom Exp $")
+ 
+ #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
+ #define USE_SIGTSTP 1
+@@ -234,14 +234,12 @@
+ static void
+ cleanup(int sig)
+ {
+-    static int nested;
+-
+     /*
+      * Actually, doing any sort of I/O from within an signal handler is
+      * "unsafe".  But we'll _try_ to clean up the screen and terminal
+      * settings on the way out.
+      */
+-    if (!nested++
++    if (!_nc_globals.cleanup_nested++
+ 	&& (sig == SIGINT
+ 	    || sig == SIGQUIT)) {
+ #if HAVE_SIGACTION || HAVE_SIGVEC
+@@ -277,7 +275,7 @@
+ static void
+ sigwinch(int sig GCC_UNUSED)
+ {
+-    _nc_handle_sigwinch(-1);
++    _nc_globals.have_sigwinch = 1;
+ }
+ #endif /* USE_SIGWINCH */
+ 
+@@ -351,29 +349,27 @@
+ NCURSES_EXPORT(void)
+ _nc_signal_handler(bool enable)
+ {
+-    static bool initialized = FALSE;
+-
+     T((T_CALLED("_nc_signal_handler(%d)"), enable));
+ #if USE_SIGTSTP			/* Xenix 2.x doesn't have SIGTSTP, for example */
+     {
+ 	static bool ignore_tstp = FALSE;
+ 
+ 	if (!ignore_tstp) {
+-	    static sigaction_t act, oact;
++	    static sigaction_t new_sigaction, old_sigaction;
+ 
+ 	    if (!enable) {
+-		act.sa_handler = SIG_IGN;
+-		sigaction(SIGTSTP, &act, &oact);
+-	    } else if (act.sa_handler != SIG_DFL) {
+-		sigaction(SIGTSTP, &oact, NULL);
+-	    } else if (sigaction(SIGTSTP, NULL, &oact) == 0
+-		       && (oact.sa_handler == SIG_DFL)) {
+-		sigemptyset(&act.sa_mask);
++		new_sigaction.sa_handler = SIG_IGN;
++		sigaction(SIGTSTP, &new_sigaction, &old_sigaction);
++	    } else if (new_sigaction.sa_handler != SIG_DFL) {
++		sigaction(SIGTSTP, &old_sigaction, NULL);
++	    } else if (sigaction(SIGTSTP, NULL, &old_sigaction) == 0
++		       && (old_sigaction.sa_handler == SIG_DFL)) {
++		sigemptyset(&new_sigaction.sa_mask);
+ #ifdef SA_RESTART
+-		act.sa_flags |= SA_RESTART;
++		new_sigaction.sa_flags |= SA_RESTART;
+ #endif /* SA_RESTART */
+-		act.sa_handler = tstp;
+-		(void) sigaction(SIGTSTP, &act, NULL);
++		new_sigaction.sa_handler = tstp;
++		(void) sigaction(SIGTSTP, &new_sigaction, NULL);
+ 	    } else {
+ 		ignore_tstp = TRUE;
+ 	    }
+@@ -381,14 +377,14 @@
+     }
+ #endif /* !USE_SIGTSTP */
+ 
+-    if (!initialized) {
++    if (!_nc_globals.init_signals) {
+ 	if (enable) {
+ 	    CatchIfDefault(SIGINT, cleanup);
+ 	    CatchIfDefault(SIGTERM, cleanup);
+ #if USE_SIGWINCH
+ 	    CatchIfDefault(SIGWINCH, sigwinch);
+ #endif
+-	    initialized = TRUE;
++	    _nc_globals.init_signals = TRUE;
+ 	}
+     }
+     returnVoid;
+Index: ncurses/tty/lib_twait.c
+Prereq:  1.51 
+--- ncurses-5.6/ncurses/tty/lib_twait.c	2006-05-27 21:57:43.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/lib_twait.c	2007-08-11 16:32:48.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,6 +29,7 @@
+ /****************************************************************************
+  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
+  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
++ *     and: Thomas E. Dickey                        1996-on                 *
+  ****************************************************************************/
+ 
+ /*
+@@ -61,38 +62,42 @@
+ # endif
+ #endif
+ 
+-MODULE_ID("$Id: lib_twait.c,v 1.51 2006/05/27 21:57:43 tom Exp $")
++MODULE_ID("$Id: lib_twait.c,v 1.54 2007/08/11 16:32:48 tom Exp $")
++
++#if HAVE_GETTIMEOFDAY
++# define PRECISE_GETTIME 1
++# define TimeType struct timeval
++#else
++# define PRECISE_GETTIME 0
++# define TimeType time_t
++#endif
+ 
+ static long
+-_nc_gettime(bool first)
++_nc_gettime(TimeType * t0, bool first)
+ {
+     long res;
+ 
+-#if HAVE_GETTIMEOFDAY
+-# define PRECISE_GETTIME 1
+-    static struct timeval t0;
+-    struct timeval t1;
++#if PRECISE_GETTIME
++    TimeType t1;
+     gettimeofday(&t1, (struct timezone *) 0);
+     if (first) {
+-	t0 = t1;
++	*t0 = t1;
+ 	res = 0;
+     } else {
+ 	/* .tv_sec and .tv_usec are unsigned, be careful when subtracting */
+-	if (t0.tv_usec > t1.tv_usec) {	/* Convert 1s in 1e6 microsecs */
+-	    t1.tv_usec += 1000000;
++	if (t0->tv_usec > t1.tv_usec) {
++	    t1.tv_usec += 1000000;	/* Convert 1s in 1e6 microsecs */
+ 	    t1.tv_sec--;
+ 	}
+-	res = (t1.tv_sec - t0.tv_sec) * 1000
+-	    + (t1.tv_usec - t0.tv_usec) / 1000;
++	res = (t1.tv_sec - t0->tv_sec) * 1000
++	    + (t1.tv_usec - t0->tv_usec) / 1000;
+     }
+ #else
+-# define PRECISE_GETTIME 0
+-    static time_t t0;
+     time_t t1 = time((time_t *) 0);
+     if (first) {
+-	t0 = t1;
++	*t0 = t1;
+     }
+-    res = (t1 - t0) * 1000;
++    res = (t1 - *t0) * 1000;
+ #endif
+     TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res));
+     return res;
+@@ -147,7 +152,8 @@
+ {
+     int fd;
+     int count;
+-    int result;
++    int result = 0;
++    TimeType t0;
+ 
+ #ifdef NCURSES_WGETCH_EVENTS
+     int timeout_is_event = 0;
+@@ -160,7 +166,7 @@
+     struct pollfd *fds = fd_list;
+ #elif defined(__BEOS__)
+ #elif HAVE_SELECT
+-    static fd_set set;
++    fd_set set;
+ #endif
+ 
+     long starttime, returntime;
+@@ -180,10 +186,10 @@
+     }
+ #endif
+ 
+-#if PRECISE_GETTIME
++#if PRECISE_GETTIME && HAVE_NANOSLEEP
+   retry:
+ #endif
+-    starttime = _nc_gettime(TRUE);
++    starttime = _nc_gettime(&t0, TRUE);
+ 
+     count = 0;
+ 
+@@ -362,7 +368,7 @@
+ 
+ #endif /* USE_FUNC_POLL, etc */
+ 
+-    returntime = _nc_gettime(FALSE);
++    returntime = _nc_gettime(&t0, FALSE);
+ 
+     if (milliseconds >= 0)
+ 	milliseconds -= (returntime - starttime);
+Index: ncurses/tty/lib_vidattr.c
+Prereq:  1.46 
+--- ncurses-5.6/ncurses/tty/lib_vidattr.c	2006-01-21 23:39:40.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/lib_vidattr.c	2007-06-30 21:58:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -65,7 +65,7 @@
+ #include <curses.priv.h>
+ #include <term.h>
+ 
+-MODULE_ID("$Id: lib_vidattr.c,v 1.46 2006/01/21 23:39:40 tom Exp $")
++MODULE_ID("$Id: lib_vidattr.c,v 1.49 2007/06/30 21:58:04 tom Exp $")
+ 
+ #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+ 
+@@ -87,10 +87,11 @@
+ 		} \
+ 	}
+ 
++#define PreviousAttr _nc_prescreen.previous_attr
++
+ NCURSES_EXPORT(int)
+ vidputs(chtype newmode, int (*outc) (int))
+ {
+-    static attr_t previous_attr = A_NORMAL;
+     attr_t turn_on, turn_off;
+     int pair;
+     bool reverse = FALSE;
+@@ -101,18 +102,19 @@
+ #define fix_pair0 FALSE
+ #endif
+ 
++    newmode &= A_ATTRIBUTES;
+     T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
+ 
+     /* this allows us to go on whether or not newterm() has been called */
+     if (SP)
+-	previous_attr = AttrOf(SCREEN_ATTRS(SP));
++	PreviousAttr = AttrOf(SCREEN_ATTRS(SP));
+ 
+-    TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
++    TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr)));
+ 
+     if ((SP != 0)
+ 	&& (magic_cookie_glitch > 0)) {
+ #if USE_XMC_SUPPORT
+-	static chtype table[] =
++	static const chtype table[] =
+ 	{
+ 	    A_STANDOUT,
+ 	    A_UNDERLINE,
+@@ -183,7 +185,7 @@
+ 	newmode &= ~mask;
+     }
+ 
+-    if (newmode == previous_attr)
++    if (newmode == PreviousAttr)
+ 	returnCode(OK);
+ 
+     pair = PAIR_NUMBER(newmode);
+@@ -192,17 +194,17 @@
+ 	newmode &= ~A_REVERSE;
+     }
+ 
+-    turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
+-    turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
++    turn_off = (~newmode & PreviousAttr) & ALL_BUT_COLOR;
++    turn_on = (newmode & ~PreviousAttr) & ALL_BUT_COLOR;
+ 
+-    SetColorsIf(((pair == 0) && !fix_pair0), previous_attr);
++    SetColorsIf(((pair == 0) && !fix_pair0), PreviousAttr);
+ 
+     if (newmode == A_NORMAL) {
+-	if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
++	if ((PreviousAttr & A_ALTCHARSET) && exit_alt_charset_mode) {
+ 	    doPut(exit_alt_charset_mode);
+-	    previous_attr &= ~A_ALTCHARSET;
++	    PreviousAttr &= ~A_ALTCHARSET;
+ 	}
+-	if (previous_attr) {
++	if (PreviousAttr) {
+ 	    if (exit_attribute_mode) {
+ 		doPut(exit_attribute_mode);
+ 	    } else {
+@@ -213,10 +215,10 @@
+ 		    TurnOff(A_STANDOUT, exit_standout_mode);
+ 		}
+ 	    }
+-	    previous_attr &= ALL_BUT_COLOR;
++	    PreviousAttr &= ALL_BUT_COLOR;
+ 	}
+ 
+-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
++	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
+     } else if (set_attributes) {
+ 	if (turn_on || turn_off) {
+ 	    TPUTS_TRACE("set_attributes");
+@@ -230,9 +232,9 @@
+ 			(newmode & A_INVIS) != 0,
+ 			(newmode & A_PROTECT) != 0,
+ 			(newmode & A_ALTCHARSET) != 0), 1, outc);
+-	    previous_attr &= ALL_BUT_COLOR;
++	    PreviousAttr &= ALL_BUT_COLOR;
+ 	}
+-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
++	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
+     } else {
+ 
+ 	TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
+@@ -250,9 +252,9 @@
+ 	if (turn_off && exit_attribute_mode) {
+ 	    doPut(exit_attribute_mode);
+ 	    turn_on |= (newmode & ALL_BUT_COLOR);
+-	    previous_attr &= ALL_BUT_COLOR;
++	    PreviousAttr &= ALL_BUT_COLOR;
+ 	}
+-	SetColorsIf((pair != 0) || fix_pair0, previous_attr);
++	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
+ 
+ 	TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
+ 	/* *INDENT-OFF* */
+@@ -283,7 +285,7 @@
+     if (SP)
+ 	SetAttr(SCREEN_ATTRS(SP), newmode);
+     else
+-	previous_attr = newmode;
++	PreviousAttr = newmode;
+ 
+     returnCode(OK);
+ }
+Index: ncurses/tty/tty_update.c
+Prereq:  1.238 
+--- ncurses-5.6/ncurses/tty/tty_update.c	2006-11-25 22:33:21.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/tty/tty_update.c	2007-10-13 20:03:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -74,7 +74,7 @@
+ #include <ctype.h>
+ #include <term.h>
+ 
+-MODULE_ID("$Id: tty_update.c,v 1.238 2006/11/25 22:33:21 tom Exp $")
++MODULE_ID("$Id: tty_update.c,v 1.243 2007/10/13 20:03:32 tom Exp $")
+ 
+ /*
+  * This define controls the line-breakout optimization.  Every once in a
+@@ -289,7 +289,7 @@
+ #endif
+     {
+ 	PUTC(CHDEREF(ch), SP->_ofp);	/* macro's fastest... */
+-	TRACE_OUTCHARS(1);
++	COUNT_OUTCHARS(1);
+     }
+     SP->_curscol += chlen;
+     if (char_padding) {
+@@ -624,13 +624,18 @@
+ 
+     T((T_CALLED("doupdate()")));
+ 
++    if (curscr == 0
++	|| newscr == 0)
++	returnCode(ERR);
++
+ #ifdef TRACE
+-    if (_nc_tracing & TRACE_UPDATE) {
++    if (USE_TRACEF(TRACE_UPDATE)) {
+ 	if (curscr->_clear)
+ 	    _tracef("curscr is clear");
+ 	else
+ 	    _tracedump("curscr", curscr);
+ 	_tracedump("newscr", newscr);
++	_nc_unlock_global(tracef);
+     }
+ #endif /* TRACE */
+ 
+@@ -640,7 +645,7 @@
+ 	SP->_fifohold--;
+ 
+ #if USE_SIZECHANGE
+-    if (SP->_endwin || SP->_sig_winch) {
++    if (SP->_endwin || _nc_handle_sigwinch(FALSE)) {
+ 	/*
+ 	 * This is a transparent extension:  XSI does not address it,
+ 	 * and applications need not know that ncurses can do it.
+@@ -666,7 +671,7 @@
+     }
+ #if USE_TRACE_TIMES
+     /* zero the metering machinery */
+-    _nc_outchars = 0;
++    RESET_OUTCHARS();
+     (void) times(&before);
+ #endif /* USE_TRACE_TIMES */
+ 
+@@ -826,9 +831,10 @@
+ 
+ #ifdef TRACE
+ 	/* show altered highlights after magic-cookie check */
+-	if (_nc_tracing & TRACE_UPDATE) {
++	if (USE_TRACEF(TRACE_UPDATE)) {
+ 	    _tracef("After magic-cookie check...");
+ 	    _tracedump("newscr", newscr);
++	    _nc_unlock_global(tracef);
+ 	}
+ #endif /* TRACE */
+     }
+@@ -836,7 +842,6 @@
+ 
+     nonempty = 0;
+     if (curscr->_clear || newscr->_clear) {	/* force refresh ? */
+-	TR(TRACE_UPDATE, ("clearing and updating from scratch"));
+ 	ClrUpdate();
+ 	curscr->_clear = FALSE;	/* reset flag */
+ 	newscr->_clear = FALSE;	/* reset flag */
+@@ -967,7 +972,7 @@
+     NCURSES_CH_T blank = ClrBlank(stdscr);
+     int nonempty = min(screen_lines, newscr->_maxy + 1);
+ 
+-    TR(TRACE_UPDATE, ("ClrUpdate() called"));
++    TR(TRACE_UPDATE, (T_CALLED("ClrUpdate")));
+ 
+     ClearScreen(blank);
+ 
+@@ -977,6 +982,8 @@
+ 
+     for (i = 0; i < nonempty; i++)
+ 	TransformLine(i);
++
++    TR(TRACE_UPDATE, (T_RETURN("")));
+ }
+ 
+ /*
+Index: ncurses/widechar/lib_cchar.c
+Prereq:  1.11 
+--- ncurses-5.6/ncurses/widechar/lib_cchar.c	2005-01-29 21:29:16.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_cchar.c	2007-05-12 19:03:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,7 +35,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_cchar.c,v 1.11 2005/01/29 21:29:16 tom Exp $")
++MODULE_ID("$Id: lib_cchar.c,v 1.12 2007/05/12 19:03:06 tom Exp $")
+ 
+ /* 
+  * The SuSv2 description leaves some room for interpretation.  We'll assume wch
+@@ -54,8 +54,9 @@
+     int len;
+     int code = OK;
+ 
+-    TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%ld,%d,%p)"),
+-		      wcval, _nc_viswbuf(wch), attrs, color_pair, opts));
++    TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"),
++		      wcval, _nc_viswbuf(wch),
++		      (unsigned long) attrs, color_pair, opts));
+ 
+     len = wcslen(wch);
+     if (opts != NULL
+Index: ncurses/widechar/lib_get_wch.c
+Prereq:  1.13 
+--- ncurses-5.6/ncurses/widechar/lib_get_wch.c	2006-06-03 17:27:57.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_get_wch.c	2007-05-12 19:03:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+ 
+-MODULE_ID("$Id: lib_get_wch.c,v 1.13 2006/06/03 17:27:57 tom Exp $")
++MODULE_ID("$Id: lib_get_wch.c,v 1.14 2007/05/12 19:03:16 tom Exp $")
+ 
+ #if HAVE_MBTOWC && HAVE_MBLEN
+ #define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
+@@ -77,7 +77,7 @@
+      * _nc_wgetch(), while we want to return a wide character or KEY_xxx code.
+      */
+     for (;;) {
+-	T(("reading %d of %d", count + 1, sizeof(buffer)));
++	T(("reading %d of %d", (int) count + 1, (int) sizeof(buffer)));
+ 	code = _nc_wgetch(win, &value, TRUE EVENTLIST_2nd((_nc_eventlist *) 0));
+ 	if (code == ERR) {
+ 	    break;
+Index: ncurses/widechar/lib_in_wchnstr.c
+Prereq:  1.3 
+--- ncurses-5.6/ncurses/widechar/lib_in_wchnstr.c	2004-05-16 00:12:30.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_in_wchnstr.c	2007-02-11 01:00:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002,2004 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2002-2004-2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -27,7 +27,7 @@
+  ****************************************************************************/
+ 
+ /****************************************************************************
+- * Author: Thomas Dickey 2002,2004                                          *
++ * Author: Thomas Dickey                                                    *
+  ****************************************************************************/
+ 
+ /*
+@@ -39,27 +39,35 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.3 2004/05/16 00:12:30 tom Exp $")
++MODULE_ID("$Id: lib_in_wchnstr.c,v 1.7 2007/02/11 01:00:00 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+-win_wchnstr(WINDOW *win, cchar_t * wchstr, int n)
++win_wchnstr(WINDOW *win, cchar_t *wchstr, int n)
+ {
+     int code = OK;
+ 
+-    TR(TRACE_CALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
++    T((T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
+     if (win != 0
+ 	&& wchstr != 0) {
++	NCURSES_CH_T *src;
+ 	int row, col;
+-	int j;
++	int j, k, limit;
+ 
+ 	getyx(win, row, col);
++	limit = getmaxx(win) - col;
++	src = &(win->_line[row].text[col]);
+ 
+ 	if (n < 0) {
+-	    n = getmaxx(win) + 1 - getcurx(win);
++	    n = limit;
++	} else if (n > limit) {
++	    n = limit;
+ 	}
+-	for (j = 0; j < n; ++j) {
+-	    wchstr[j] = win->_line[row].text[col + j];
++	for (j = k = 0; j < n; ++j) {
++	    if (j == 0 || !WidecExt(src[j]) || isWidecBase(src[j])) {
++		wchstr[k++] = src[j];
++	    }
+ 	}
++	memset(&(wchstr[k]), 0, sizeof(*wchstr));
+ 	T(("result = %s", _nc_viscbuf(wchstr, n)));
+     } else {
+ 	code = ERR;
+Index: ncurses/widechar/lib_key_name.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_key_name.c	2007-06-12 21:01:13.000000000 +0000
+@@ -0,0 +1,62 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free 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.                                                           *
++ ****************************************************************************/
++
++/*
++**	lib_key_name.c
++**
++**	The routine key_name().
++**
++*/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: lib_key_name.c,v 1.2 2007/06/12 21:01:13 tom Exp $")
++
++NCURSES_EXPORT(NCURSES_CONST char *)
++key_name(wchar_t c)
++{
++    cchar_t my_cchar;
++    wchar_t *my_wchars;
++    size_t len;
++
++    /* FIXME: move to _nc_globals */
++    static char result[MB_LEN_MAX + 1];
++
++    memset(&my_cchar, 0, sizeof(my_cchar));
++    my_cchar.chars[0] = c;
++    my_cchar.chars[1] = L'\0';
++
++    my_wchars = wunctrl(&my_cchar);
++    len = wcstombs(result, my_wchars, sizeof(result) - 1);
++    if (isEILSEQ(len) || (len == 0)) {
++	return "UNKNOWN KEY";
++    }
++
++    result[len] = '\0';
++    return result;
++}
+Index: ncurses/widechar/lib_unget_wch.c
+Prereq:  1.7 
+--- ncurses-5.6/ncurses/widechar/lib_unget_wch.c	2004-12-05 01:21:31.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_unget_wch.c	2007-11-25 00:57:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2004,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,26 +39,30 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_unget_wch.c,v 1.7 2004/12/05 01:21:31 tom Exp $")
++MODULE_ID("$Id: lib_unget_wch.c,v 1.9 2007/11/25 00:57:00 tom Exp $")
+ 
+-#ifdef linux
+ /*
+- * glibc's wcrtomb() function is broken - does not return the proper value
+- * when target is null (noted for glibc 2.3.2).  This is a workaround.
++ * Wrapper for wcrtomb() which obtains the length needed for the given
++ * wide-character 'source'.
+  */
+ NCURSES_EXPORT(size_t)
+ _nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
+ {
++    int result;
++
+     if (target == 0) {
+ 	wchar_t temp[2];
+ 	const wchar_t *tempp = temp;
+ 	temp[0] = source;
+ 	temp[1] = 0;
+-	return wcsrtombs(NULL, &tempp, 0, state);
++	result = wcsrtombs(NULL, &tempp, 0, state);
++    } else {
++	result = wcrtomb(target, source, state);
+     }
+-    return wcrtomb(target, source, state);
++    if (!isEILSEQ(result) && (result == 0))
++	result = 1;
++    return result;
+ }
+-#endif
+ 
+ NCURSES_EXPORT(int)
+ unget_wch(const wchar_t wch)
+Index: ncurses/widechar/lib_vid_attr.c
+Prereq:  1.4 
+--- ncurses-5.6/ncurses/widechar/lib_vid_attr.c	2006-11-26 00:26:00.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_vid_attr.c	2007-06-30 22:03:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -33,7 +33,7 @@
+ #include <curses.priv.h>
+ #include <term.h>
+ 
+-MODULE_ID("$Id: lib_vid_attr.c,v 1.4 2006/11/26 00:26:00 tom Exp $")
++MODULE_ID("$Id: lib_vid_attr.c,v 1.5 2007/06/30 22:03:02 tom Exp $")
+ 
+ #define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+ 
+@@ -72,6 +72,7 @@
+ #define fix_pair0 FALSE
+ #endif
+ 
++    newmode &= A_ATTRIBUTES;
+     T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
+ 
+     /* this allows us to go on whether or not newterm() has been called */
+Index: ncurses/widechar/lib_wunctrl.c
+Prereq:  1.8 
+--- ncurses-5.6/ncurses/widechar/lib_wunctrl.c	2005-04-16 18:10:44.000000000 +0000
++++ ncurses-5.6-20071201/ncurses/widechar/lib_wunctrl.c	2007-06-12 20:22:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,23 +35,21 @@
+ 
+ #include <curses.priv.h>
+ 
+-#if USE_WIDEC_SUPPORT
+-
+-MODULE_ID("$Id: lib_wunctrl.c,v 1.8 2005/04/16 18:10:44 tom Exp $")
++MODULE_ID("$Id: lib_wunctrl.c,v 1.12 2007/06/12 20:22:32 tom Exp $")
+ 
+ NCURSES_EXPORT(wchar_t *)
+ wunctrl(cchar_t *wc)
+ {
+-    static wchar_t str[5], *sp;
++    static wchar_t str[CCHARW_MAX + 1], *sp;
+ 
+     if (Charable(*wc)) {
+ 	const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
+ 
+-	for (sp = str; *p;)
+-	    *sp++ = _nc_to_widechar(*p++);
++	for (sp = str; *p; ++p) {
++	    *sp++ = _nc_to_widechar(*p);
++	}
++	*sp = 0;
+ 	return str;
+     } else
+ 	return wc->chars;
+ }
+-
+-#endif
+Index: panel/Makefile.in
+Prereq:  1.47 
+--- ncurses-5.6/panel/Makefile.in	2006-10-14 20:40:36.000000000 +0000
++++ ncurses-5.6-20071201/panel/Makefile.in	2007-04-28 14:56:11.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.47 2006/10/14 20:40:36 tom Exp $
++# $Id: Makefile.in,v 1.52 2007/04/28 14:56:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -27,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey 1996-2002
++# Author: Thomas E. Dickey 1996-on
+ #
+ # Makefile for panels source code.
+ #
+@@ -92,7 +92,7 @@
+ 
+ CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
+ 
+-LINK		= $(LIBTOOL_LINK) $(CC)
++LINK		= $(LIBTOOL_LINK)
+ LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
+ 
+ SHLIB_DIRS	= -L../lib
+@@ -107,8 +107,6 @@
+ 
+ RANLIB		= @LIB_PREP@
+ 
+-IMPORT_LIB	= @IMPORT_LIB@
+-SHARED_LIB	= @SHARED_LIB@
+ LIBRARIES	= @LIBS_TO_MAKE@
+ 
+ LINT		= @LINT@
+@@ -127,7 +125,7 @@
+ 
+ $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(libdir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ # make a copy to simplify include-paths while still keeping panel's include
+ # file in this directory.
+Index: panel/headers
+--- ncurses-5.6/panel/headers	1998-02-11 12:14:01.000000000 +0000
++++ ncurses-5.6-20071201/panel/headers	2006-12-24 16:25:45.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -29,3 +29,4 @@
+ # Author: Thomas E. Dickey <dickey@clark.net> 1996
+ #
+ $(srcdir)/panel.h
++# vile:makemode
+Index: panel/modules
+--- ncurses-5.6/panel/modules	1998-02-11 12:14:02.000000000 +0000
++++ ncurses-5.6-20071201/panel/modules	2006-12-24 00:53:17.000000000 +0000
+@@ -1,5 +1,6 @@
++# $Id: modules,v 1.9 2006/12/24 00:53:17 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
++# Copyright (c) 1998,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"), #
+@@ -26,7 +27,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
++# Author: Thomas E. Dickey	1995-on
+ #
+ 
+ @ base
+@@ -47,3 +48,4 @@
+ p_user		lib		$(srcdir)	$(PANEL_PRIV_H)
+ p_win		lib		$(srcdir)	$(PANEL_PRIV_H)
+ 
++# vile:makemode
+Index: progs/Makefile.in
+Prereq:  1.70 
+--- ncurses-5.6/progs/Makefile.in	2006-12-17 15:55:48.000000000 +0000
++++ ncurses-5.6-20071201/progs/Makefile.in	2007-10-13 22:25:53.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.70 2006/12/17 15:55:48 tom Exp $
++# $Id: Makefile.in,v 1.77 2007/10/13 22:25:53 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -98,9 +98,8 @@
+ LOCAL_LIBDIR	= @top_builddir@/lib
+ 
+ LD		= @LD@
+-LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
+-LDFLAGS		= @EXTRA_LDFLAGS@ \
+-		@TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
++LINK		= @LINK_PROGS@ $(LIBTOOL_LINK)
++LDFLAGS		= @EXTRA_LDFLAGS@ @LDFLAGS@
+ 
+ LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LIBTOOL)
+ LDFLAGS_NORMAL	= $(LDFLAGS) $(CFLAGS_NORMAL)
+@@ -110,6 +109,12 @@
+ 
+ LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@)
+ 
++LIBS_TIC	= @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
++LDFLAGS_TIC	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
++
++LIBS_TINFO	= @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
++LDFLAGS_TINFO	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
++
+ LINT		= @LINT@
+ LINT_OPTS	= @LINT_OPTS@
+ LINT_LIBS	= -lncurses @LIBS@
+@@ -200,7 +205,7 @@
+ 	-@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
+ 
+ $(DESTDIR)$(bindir) :
+-	sh $(srcdir)/../mkinstalldirs $@
++	sh $(srcdir)/../mkdirs.sh $@
+ 
+ #
+ # Utilities normally built by make all start here
+@@ -211,40 +216,38 @@
+ 	$(MODEL)/dump_entry$o
+ 
+ tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
+-	@ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
+ 
+ DEPS_TOE = \
+-	$(MODEL)/toe$o \
+-	$(MODEL)/dump_entry$o
++	$(MODEL)/toe$o
+ 
+ toe$x: $(DEPS_TOE) $(DEPS_CURSES)
+-	@ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
+ 
+ DEPS_CLEAR = \
+ 	$(MODEL)/clear$o
+ 
+ clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
+-	@ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
+ 
+ DEPS_TPUT = \
+ 	$(MODEL)/tput$o
+ 
+ tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
+-	@ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
+ 
+ DEPS_INFOCMP = \
+ 	$(MODEL)/infocmp$o \
+ 	$(MODEL)/dump_entry$o
+ 
+ infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
+-	@ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
+ 
+ DEPS_TSET = \
+-	$(MODEL)/tset$o \
+-	$(MODEL)/dump_entry$o
++	$(MODEL)/tset$o
+ 
+ tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
+-	@ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
++	@ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
+ 
+ termsort.c: $(srcdir)/MKtermsort.sh
+ 	sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
+Index: progs/clear.c
+Prereq:  1.10 
+--- ncurses-5.6/progs/clear.c	2006-05-20 17:47:47.000000000 +0000
++++ ncurses-5.6-20071201/progs/clear.c	2007-10-13 22:16:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -36,9 +36,10 @@
+  * clear.c --  clears the terminal's screen
+  */
+ 
++#define USE_LIBTINFO
+ #include <progs.priv.h>
+ 
+-MODULE_ID("$Id: clear.c,v 1.10 2006/05/20 17:47:47 tom Exp $")
++MODULE_ID("$Id: clear.c,v 1.11 2007/10/13 22:16:02 tom Exp $")
+ 
+ static int
+ putch(int c)
+Index: progs/dump_entry.c
+Prereq:  1.79 
+--- ncurses-5.6/progs/dump_entry.c	2006-09-30 20:18:15.000000000 +0000
++++ ncurses-5.6-20071201/progs/dump_entry.c	2007-08-25 20:05:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,7 +39,7 @@
+ #include "termsort.c"		/* this C file is generated */
+ #include <parametrized.h>	/* so is this */
+ 
+-MODULE_ID("$Id: dump_entry.c,v 1.79 2006/09/30 20:18:15 tom Exp $")
++MODULE_ID("$Id: dump_entry.c,v 1.81 2007/08/25 20:05:35 tom Exp $")
+ 
+ #define INDENT			8
+ #define DISCARD(string) string = ABSENT_STRING
+@@ -352,14 +352,17 @@
+ 	}
+ 	break;
+ 
++#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \
++			  type##_from_termcap[idx])
++
+     case V_BSD:		/* BSD */
+ 	switch (type) {
+ 	case BOOLEAN:
+-	    return bool_from_termcap[idx];
++	    return is_termcap(bool);
+ 	case NUMBER:
+-	    return num_from_termcap[idx];
++	    return is_termcap(num);
+ 	case STRING:
+-	    return str_from_termcap[idx];
++	    return is_termcap(str);
+ 	}
+ 	break;
+     }
+@@ -788,11 +791,11 @@
+      * Much more work should be done on this to support dumping termcaps.
+      */
+     if (tversion == V_HPUX) {
+-	if (memory_lock) {
++	if (VALID_STRING(memory_lock)) {
+ 	    (void) sprintf(buffer, "meml=%s", memory_lock);
+ 	    WRAP_CONCAT;
+ 	}
+-	if (memory_unlock) {
++	if (VALID_STRING(memory_unlock)) {
+ 	    (void) sprintf(buffer, "memu=%s", memory_unlock);
+ 	    WRAP_CONCAT;
+ 	}
+@@ -1223,7 +1226,7 @@
+ 	bool fix_needed = FALSE;
+ 
+ 	for (n = 0, source = 0; acs_chars[n] != 0; n++) {
+-	    target = acs_chars[n];
++	    target = UChar(acs_chars[n]);
+ 	    if (source >= target) {
+ 		fix_needed = TRUE;
+ 		break;
+@@ -1235,7 +1238,7 @@
+ 	if (fix_needed) {
+ 	    memset(mapped, 0, sizeof(mapped));
+ 	    for (n = 0; acs_chars[n] != 0; n++) {
+-		source = acs_chars[n];
++		source = UChar(acs_chars[n]);
+ 		if ((target = (unsigned char) acs_chars[n + 1]) != 0) {
+ 		    mapped[source] = target;
+ 		    n++;
+Index: progs/infocmp.c
+Prereq:  1.85 
+--- ncurses-5.6/progs/infocmp.c	2006-08-19 21:20:37.000000000 +0000
++++ ncurses-5.6-20071201/progs/infocmp.c	2007-11-17 23:34:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -35,18 +35,18 @@
+ /*
+  *	infocmp.c -- decompile an entry, or compare two entries
+  *		written by Eric S. Raymond
++ *		and Thomas E Dickey
+  */
+ 
+ #include <progs.priv.h>
+ 
+ #include <dump_entry.h>
+ 
+-MODULE_ID("$Id: infocmp.c,v 1.85 2006/08/19 21:20:37 tom Exp $")
++MODULE_ID("$Id: infocmp.c,v 1.94 2007/11/17 23:34:26 tom Exp $")
+ 
+ #define L_CURL "{"
+ #define R_CURL "}"
+ 
+-#define MAXTERMS	32	/* max # terminal arguments we can handle */
+ #define MAX_STRING	1024	/* maximum formatted string */
+ 
+ const char *_nc_progname = "infocmp";
+@@ -60,8 +60,7 @@
+  *
+  ***************************************************************************/
+ 
+-static char *tname[MAXTERMS];	/* terminal type names */
+-static ENTRY entries[MAXTERMS];	/* terminfo entries */
++static ENTRY *entries;		/* terminfo entries */
+ static int termcount;		/* count of terminal entries */
+ 
+ static bool limited = TRUE;	/* "-r" option is not set */
+@@ -96,7 +95,8 @@
+     while (termcount-- > 0)
+ 	_nc_free_termtype(&entries[termcount].tterm);
+     _nc_leaks_dump_entry();
+-    _nc_free_and_exit(code);
++    free(entries);
++    _nc_free_tic(code);
+ }
+ #endif
+ 
+@@ -932,7 +932,8 @@
+ 		case C_DIFFERENCE:
+ 		    if (itrace)
+ 			(void) fprintf(stderr,
+-				       "infocmp: dumping differences\n");
++				       "%s: dumping differences\n",
++				       _nc_progname);
+ 		    (void) printf("comparing %s to %s.\n", name1, name2);
+ 		    compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		    break;
+@@ -940,7 +941,8 @@
+ 		case C_COMMON:
+ 		    if (itrace)
+ 			(void) fprintf(stderr,
+-				       "infocmp: dumping common capabilities\n");
++				       "%s: dumping common capabilities\n",
++				       _nc_progname);
+ 		    (void) printf("comparing %s to %s.\n", name1, name2);
+ 		    compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		    break;
+@@ -948,7 +950,8 @@
+ 		case C_NAND:
+ 		    if (itrace)
+ 			(void) fprintf(stderr,
+-				       "infocmp: dumping differences\n");
++				       "%s: dumping differences\n",
++				       _nc_progname);
+ 		    (void) printf("comparing %s to %s.\n", name1, name2);
+ 		    compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		    break;
+@@ -1083,7 +1086,6 @@
+ 	    }
+ 	    *tp++ = '"';
+ 	    *tp = '\0';
+-	    size += (strlen(term->Strings[n]) + 1);
+ 	    (void) printf("static char %-20s[] = %s;\n",
+ 			  string_variable(ExtStrname(term, n, strnames)), buf);
+ 	}
+@@ -1237,7 +1239,8 @@
+ 
+     if ((terminal = getenv("TERM")) == 0) {
+ 	(void) fprintf(stderr,
+-		       "infocmp: environment variable TERM not set\n");
++		       "%s: environment variable TERM not set\n",
++		       _nc_progname);
+ 	exit(EXIT_FAILURE);
+     }
+     return terminal;
+@@ -1252,10 +1255,15 @@
+ int
+ main(int argc, char *argv[])
+ {
+-    char *firstdir, *restdir;
+     /* Avoid "local data >32k" error with mwcc */
+     /* Also avoid overflowing smaller stacks on systems like AmigaOS */
+-    path *tfile = (path *) malloc(sizeof(path) * MAXTERMS);
++    path *tfile = 0;
++    char **tname = 0;
++    int maxterms;
++
++    char **myargv;
++
++    char *firstdir, *restdir;
+     int c, i, len;
+     bool formatted = FALSE;
+     bool filecompare = FALSE;
+@@ -1270,9 +1278,16 @@
+     use_extended_names(FALSE);
+ #endif
+ 
++    _nc_progname = _nc_rootname(argv[0]);
++
++    /* make sure we have enough space to add two terminal entries */
++    myargv = typeCalloc(char *, argc + 3);
++    memcpy(myargv, argv, sizeof(char *) * argc);
++    argv = myargv;
++
+     while ((c = getopt(argc,
+ 		       argv,
+-		       "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != EOF) {
++		       "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) {
+ 	switch (c) {
+ 	case '1':
+ 	    mwidth = 0;
+@@ -1373,7 +1388,6 @@
+ 
+ 	case 'r':
+ 	    tversion = 0;
+-	    limited = FALSE;
+ 	    break;
+ 
+ 	case 's':
+@@ -1387,7 +1401,8 @@
+ 		sortmode = S_TERMCAP;
+ 	    else {
+ 		(void) fprintf(stderr,
+-			       "infocmp: unknown sort mode\n");
++			       "%s: unknown sort mode\n",
++			       _nc_progname);
+ 		ExitProgram(EXIT_FAILURE);
+ 	    }
+ 	    break;
+@@ -1435,6 +1450,18 @@
+ 	}
+     }
+ 
++    maxterms = (argc + 1 - optind);
++    tfile = typeMalloc(path, maxterms);
++    tname = typeCalloc(char *, maxterms);
++    entries = typeCalloc(ENTRY, maxterms);
++
++    if (tfile == 0
++	|| tname == 0
++	|| entries == 0) {
++	fprintf(stderr, "%s: not enough memory\n", _nc_progname);
++	ExitProgram(EXIT_FAILURE);
++    }
++
+     /* by default, sort by terminfo name */
+     if (sortmode == S_DEFAULT)
+ 	sortmode = S_TERMINFO;
+@@ -1458,53 +1485,56 @@
+ 	/* grab the entries */
+ 	termcount = 0;
+ 	for (; optind < argc; optind++) {
+-	    if (termcount >= MAXTERMS) {
+-		(void) fprintf(stderr,
+-			       "infocmp: too many terminal type arguments\n");
+-		ExitProgram(EXIT_FAILURE);
+-	    } else {
+-		const char *directory = termcount ? restdir : firstdir;
+-		int status;
++	    const char *directory = termcount ? restdir : firstdir;
++	    int status;
+ 
+-		tname[termcount] = argv[optind];
++	    tname[termcount] = argv[optind];
+ 
+-		if (directory) {
++	    if (directory) {
+ #if USE_DATABASE
+-		    (void) sprintf(tfile[termcount], "%s/%c/%s",
+-				   directory,
+-				   *argv[optind], argv[optind]);
+-		    if (itrace)
+-			(void) fprintf(stderr,
+-				       "infocmp: reading entry %s from file %s\n",
+-				       argv[optind], tfile[termcount]);
+-
+-		    status = _nc_read_file_entry(tfile[termcount],
+-						 &entries[termcount].tterm);
++#if MIXEDCASE_FILENAMES
++#define LEAF_FMT "%c"
+ #else
+-		    (void) fprintf(stderr, "terminfo files not supported\n");
+-		    ExitProgram(EXIT_FAILURE);
++#define LEAF_FMT "%02x"
+ #endif
+-		} else {
+-		    if (itrace)
+-			(void) fprintf(stderr,
+-				       "infocmp: reading entry %s from database\n",
+-				       tname[termcount]);
+-
+-		    status = _nc_read_entry(tname[termcount],
+-					    tfile[termcount],
+-					    &entries[termcount].tterm);
+-		    directory = TERMINFO;	/* for error message */
+-		}
++		(void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s",
++			       directory,
++			       UChar(*argv[optind]), argv[optind]);
++		if (itrace)
++		    (void) fprintf(stderr,
++				   "%s: reading entry %s from file %s\n",
++				   _nc_progname,
++				   argv[optind], tfile[termcount]);
+ 
+-		if (status <= 0) {
++		status = _nc_read_file_entry(tfile[termcount],
++					     &entries[termcount].tterm);
++#else
++		(void) fprintf(stderr, "%s: terminfo files not supported\n",
++			       _nc_progname);
++		ExitProgram(EXIT_FAILURE);
++#endif
++	    } else {
++		if (itrace)
+ 		    (void) fprintf(stderr,
+-				   "infocmp: couldn't open terminfo file %s.\n",
+-				   tfile[termcount]);
+-		    ExitProgram(EXIT_FAILURE);
+-		}
+-		repair_acsc(&entries[termcount].tterm);
+-		termcount++;
++				   "%s: reading entry %s from database\n",
++				   _nc_progname,
++				   tname[termcount]);
++
++		status = _nc_read_entry(tname[termcount],
++					tfile[termcount],
++					&entries[termcount].tterm);
++		directory = TERMINFO;	/* for error message */
++	    }
++
++	    if (status <= 0) {
++		(void) fprintf(stderr,
++			       "%s: couldn't open terminfo file %s.\n",
++			       _nc_progname,
++			       tfile[termcount]);
++		ExitProgram(EXIT_FAILURE);
+ 	    }
++	    repair_acsc(&entries[termcount].tterm);
++	    termcount++;
+ 	}
+ 
+ #if NCURSES_XNAMES
+@@ -1542,7 +1572,8 @@
+ 	    case C_DEFAULT:
+ 		if (itrace)
+ 		    (void) fprintf(stderr,
+-				   "infocmp: about to dump %s\n",
++				   "%s: about to dump %s\n",
++				   _nc_progname,
+ 				   tname[0]);
+ 		(void) printf("#\tReconstructed via infocmp from file: %s\n",
+ 			      tfile[0]);
+@@ -1553,12 +1584,12 @@
+ 			   NULL);
+ 		len = show_entry();
+ 		if (itrace)
+-		    (void) fprintf(stderr, "infocmp: length %d\n", len);
++		    (void) fprintf(stderr, "%s: length %d\n", _nc_progname, len);
+ 		break;
+ 
+ 	    case C_DIFFERENCE:
+ 		if (itrace)
+-		    (void) fprintf(stderr, "infocmp: dumping differences\n");
++		    (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
+ 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
+ 		compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		break;
+@@ -1566,7 +1597,8 @@
+ 	    case C_COMMON:
+ 		if (itrace)
+ 		    (void) fprintf(stderr,
+-				   "infocmp: dumping common capabilities\n");
++				   "%s: dumping common capabilities\n",
++				   _nc_progname);
+ 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
+ 		compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		break;
+@@ -1574,14 +1606,15 @@
+ 	    case C_NAND:
+ 		if (itrace)
+ 		    (void) fprintf(stderr,
+-				   "infocmp: dumping differences\n");
++				   "%s: dumping differences\n",
++				   _nc_progname);
+ 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
+ 		compare_entry(compare_predicate, &entries->tterm, quiet);
+ 		break;
+ 
+ 	    case C_USEALL:
+ 		if (itrace)
+-		    (void) fprintf(stderr, "infocmp: dumping use entry\n");
++		    (void) fprintf(stderr, "%s: dumping use entry\n", _nc_progname);
+ 		dump_entry(&entries[0].tterm,
+ 			   suppress_untranslatable,
+ 			   limited,
+@@ -1592,7 +1625,7 @@
+ 					  || outform == F_TCONVERR));
+ 		len = show_entry();
+ 		if (itrace)
+-		    (void) fprintf(stderr, "infocmp: length %d\n", len);
++		    (void) fprintf(stderr, "%s: length %d\n", _nc_progname, len);
+ 		break;
+ 	    }
+ 	}
+@@ -1606,7 +1639,11 @@
+     else
+ 	file_comparison(argc - optind, argv + optind);
+ 
++#if NO_LEAKS
++    free(myargv);
+     free(tfile);
++    free(tname);
++#endif
+     ExitProgram(EXIT_SUCCESS);
+ }
+ 
+Index: progs/modules
+Prereq:  1.12 
+--- ncurses-5.6/progs/modules	2005-09-25 00:54:22.000000000 +0000
++++ ncurses-5.6-20071201/progs/modules	2006-12-24 00:53:21.000000000 +0000
+@@ -1,7 +1,7 @@
+-# $Id: modules,v 1.12 2005/09/25 00:54:22 tom Exp $
++# $Id: modules,v 1.13 2006/12/24 00:53:21 tom Exp $
+ # Program modules (some are in ncurses lib!)
+ ##############################################################################
+-# Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2005,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"), #
+@@ -28,7 +28,7 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
++# Author: Thomas E. Dickey	1995-on
+ #
+ 
+ @ base
+@@ -39,3 +39,5 @@
+ infocmp		progs		$(srcdir)	$(HEADER_DEPS)             $(srcdir)/dump_entry.h
+ tput		progs		$(srcdir)	$(HEADER_DEPS) transform.h termsort.c
+ tset		progs		$(srcdir)	$(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
++
++# vile:makemode
+Index: progs/progs.priv.h
+Prereq:  1.30 
+--- ncurses-5.6/progs/progs.priv.h	2006-11-26 00:28:01.000000000 +0000
++++ ncurses-5.6-20071201/progs/progs.priv.h	2007-10-13 20:33:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -30,7 +30,7 @@
+  *  Author: Thomas E. Dickey                    1997-on                     *
+  ****************************************************************************/
+ /*
+- * $Id: progs.priv.h,v 1.30 2006/11/26 00:28:01 tom Exp $
++ * $Id: progs.priv.h,v 1.33 2007/10/13 20:33:53 tom Exp $
+  *
+  *	progs.priv.h
+  *
+@@ -110,7 +110,16 @@
+ #include <term_entry.h>
+ #include <tic.h>
+ #include <nc_tparm.h>
++
+ #include <nc_alloc.h>
++#if HAVE_NC_FREEALL
++#undef ExitProgram
++#ifdef USE_LIBTINFO
++#define ExitProgram(code) _nc_free_tinfo(code)
++#else
++#define ExitProgram(code) _nc_free_tic(code)
++#endif
++#endif
+ 
+ /* usually in <unistd.h> */
+ #ifndef STDOUT_FILENO
+Index: progs/tic.c
+Prereq:  1.131 
+--- ncurses-5.6/progs/tic.c	2006-12-02 22:13:17.000000000 +0000
++++ ncurses-5.6-20071201/progs/tic.c	2007-07-21 17:45:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -44,7 +44,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: tic.c,v 1.131 2006/12/02 22:13:17 tom Exp $")
++MODULE_ID("$Id: tic.c,v 1.133 2007/07/21 17:45:59 tom Exp $")
+ 
+ const char *_nc_progname = "tic";
+ 
+@@ -353,11 +353,24 @@
+     return fp;
+ }
+ 
++#if NO_LEAKS
++static void
++free_namelist(char **src)
++{
++    if (src != 0) {
++	int n;
++	for (n = 0; src[n] != 0; ++n)
++	    free(src[n]);
++	free(src);
++    }
++}
++#endif
++
+ /* Parse the "-e" option-value into a list of names */
+-static const char **
++static char **
+ make_namelist(char *src)
+ {
+-    const char **dst = 0;
++    char **dst = 0;
+ 
+     char *s, *base;
+     unsigned pass, n, nn;
+@@ -374,11 +387,13 @@
+ 		if ((s = stripped(buffer)) != 0) {
+ 		    if (dst != 0)
+ 			dst[nn] = s;
++		    else
++			free(s);
+ 		    nn++;
+ 		}
+ 	    }
+ 	    if (pass == 1) {
+-		dst = typeCalloc(const char *, nn + 1);
++		dst = typeCalloc(char *, nn + 1);
+ 		rewind(fp);
+ 	    }
+ 	}
+@@ -401,10 +416,10 @@
+ 		    break;
+ 	    }
+ 	    if (pass == 1)
+-		dst = typeCalloc(const char *, nn + 1);
++		dst = typeCalloc(char *, nn + 1);
+ 	}
+     }
+-    if (showsummary) {
++    if (showsummary && (dst != 0)) {
+ 	fprintf(log_fp, "Entries that will be compiled:\n");
+ 	for (n = 0; dst[n] != 0; n++)
+ 	    fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
+@@ -413,7 +428,7 @@
+ }
+ 
+ static bool
+-matches(const char **needle, const char *haystack)
++matches(char **needle, const char *haystack)
+ /* does entry in needle list match |-separated field in haystack? */
+ {
+     bool code = FALSE;
+@@ -468,7 +483,7 @@
+     bool limited = TRUE;
+     char *tversion = (char *) NULL;
+     const char *source_file = "terminfo";
+-    const char **namelst = 0;
++    char **namelst = 0;
+     char *outdir = (char *) NULL;
+     bool check_only = FALSE;
+     bool suppress_untranslatable = FALSE;
+@@ -495,7 +510,7 @@
+      * be optional.
+      */
+     while ((this_opt = getopt(argc, argv,
+-			      "0123456789CILNR:TUVace:fGgo:rstvwx")) != EOF) {
++			      "0123456789CILNR:TUVace:fGgo:rstvwx")) != -1) {
+ 	if (isdigit(this_opt)) {
+ 	    switch (last_opt) {
+ 	    case 'v':
+@@ -784,6 +799,9 @@
+ 	else
+ 	    fprintf(log_fp, "No entries written\n");
+     }
++#if NO_LEAKS
++    free_namelist(namelst);
++#endif
+     cleanup();
+     ExitProgram(EXIT_SUCCESS);
+ }
+Index: progs/toe.c
+Prereq:  1.41 
+--- ncurses-5.6/progs/toe.c	2006-08-19 18:18:09.000000000 +0000
++++ ncurses-5.6-20071201/progs/toe.c	2007-10-13 22:26:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,13 +40,11 @@
+ 
+ #include <sys/stat.h>
+ 
+-#include <dump_entry.h>
+-
+ #if USE_HASHED_DB
+ #include <hashed_db.h>
+ #endif
+ 
+-MODULE_ID("$Id: toe.c,v 1.41 2006/08/19 18:18:09 tom Exp $")
++MODULE_ID("$Id: toe.c,v 1.46 2007/10/13 22:26:38 tom Exp $")
+ 
+ #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
+ 
+@@ -59,8 +57,7 @@
+ ExitProgram(int code)
+ {
+     _nc_free_entries(_nc_head);
+-    _nc_leaks_dump_entry();
+-    _nc_free_and_exit(code);
++    _nc_free_tic(code);
+ }
+ #endif
+ 
+@@ -326,7 +323,7 @@
+ 
+     _nc_progname = _nc_rootname(argv[0]);
+ 
+-    while ((this_opt = getopt(argc, argv, "0123456789ahuvUV")) != EOF) {
++    while ((this_opt = getopt(argc, argv, "0123456789ahuvUV")) != -1) {
+ 	/* handle optional parameter */
+ 	if (isdigit(this_opt)) {
+ 	    switch (last_opt) {
+Index: progs/tput.c
+Prereq:  1.38 
+--- ncurses-5.6/progs/tput.c	2006-11-26 00:27:47.000000000 +0000
++++ ncurses-5.6-20071201/progs/tput.c	2007-10-13 20:34:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -38,6 +38,7 @@
+  * Ross Ridge's mytinfo package.
+  */
+ 
++#define USE_LIBTINFO
+ #include <progs.priv.h>
+ 
+ #if !PURE_TERMINFO
+@@ -45,7 +46,7 @@
+ #endif
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: tput.c,v 1.38 2006/11/26 00:27:47 tom Exp $")
++MODULE_ID("$Id: tput.c,v 1.41 2007/10/13 20:34:16 tom Exp $")
+ 
+ #define PUTS(s)		fputs(s, stdout)
+ #define PUTCHAR(c)	putchar(c)
+@@ -325,6 +326,7 @@
+ 	    case Num_Str_Str:
+ 		s = TPARM_3(s, numbers[1], strings[2], strings[3]);
+ 		break;
++	    case Numbers:
+ 	    default:
+ 		(void) _nc_tparm_analyze(s, p_is_s, &popcount);
+ #define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
+@@ -363,7 +365,7 @@
+ 
+     term = getenv("TERM");
+ 
+-    while ((c = getopt(argc, argv, "ST:V")) != EOF) {
++    while ((c = getopt(argc, argv, "ST:V")) != -1) {
+ 	switch (c) {
+ 	case 'S':
+ 	    cmdline = FALSE;
+Index: progs/tset.c
+Prereq:  1.67 
+--- ncurses-5.6/progs/tset.c	2006-09-16 17:51:10.000000000 +0000
++++ ncurses-5.6-20071201/progs/tset.c	2007-10-13 22:22:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -73,6 +73,7 @@
+  * SUCH DAMAGE.
+  */
+ 
++#define USE_LIBTINFO
+ #define __INTERNAL_CAPS_VISIBLE	/* we need to see has_hardware_tabs */
+ #include <progs.priv.h>
+ 
+@@ -103,7 +104,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: tset.c,v 1.67 2006/09/16 17:51:10 tom Exp $")
++MODULE_ID("$Id: tset.c,v 1.70 2007/10/13 22:22:04 tom Exp $")
+ 
+ extern char **environ;
+ 
+@@ -777,7 +778,22 @@
+ 		      | OFDEL
+ #endif
+ #ifdef NLDLY
+-		      | NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY
++		      | NLDLY
++#endif
++#ifdef CRDLY 
++		      | CRDLY
++#endif
++#ifdef TABDLY 
++		      | TABDLY
++#endif
++#ifdef BSDLY 
++		      | BSDLY
++#endif
++#ifdef VTDLY 
++		      | VTDLY
++#endif
++#ifdef FFDLY
++		      | FFDLY
+ #endif
+ 	);
+ 
+@@ -1129,7 +1145,7 @@
+ 
+     obsolete(argv);
+     noinit = noset = quiet = Sflag = sflag = showterm = 0;
+-    while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != EOF) {
++    while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != -1) {
+ 	switch (ch) {
+ 	case 'c':		/* set control-chars */
+ 	    opt_c = TRUE;
+Index: test/Makefile.in
+Prereq:  1.92 
+--- ncurses-5.6/test/Makefile.in	2006-10-21 22:56:03.000000000 +0000
++++ ncurses-5.6-20071201/test/Makefile.in	2007-04-28 15:28:28.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.92 2006/10/21 22:56:03 tom Exp $
++# $Id: Makefile.in,v 1.97 2007/04/28 15:28:28 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -77,7 +77,7 @@
+ MATH_LIB	= @MATH_LIB@
+ 
+ LD		= @LD@
+-LINK		= @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
++LINK		= @LINK_TESTS@ $(LIBTOOL_LINK) $(CFLAGS)
+ 
+ LDFLAGS		= @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
+ 
+@@ -87,16 +87,18 @@
+ LDFLAGS_PROFILE	= $(LDFLAGS) $(CFLAGS_PROFILE)
+ LDFLAGS_SHARED	= $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
+ 
++TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
++
+ # use these for linking with all of the libraries
+-LIBS_DEFAULT	= @TEST_ARGS@ @LIBS@ $(MATH_LIB)
++LIBS_DEFAULT	= $(TEST_ARGS) @LIBS@ $(MATH_LIB)
+ LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
+ 
+ # use these for linking with the (n)curses library
+-LIBS_CURSES	= `echo "@TEST_ARGS@ @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(MATH_LIB)
++LIBS_CURSES	= `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(MATH_LIB)
+ LDFLAGS_CURSES	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
+ 
+ # use these for linking with the tinfo library if we have it, or curses library if not
+-LIBS_TINFO	= @TINFO_ARGS@ @LIBS@ $(MATH_LIB)
++LIBS_TINFO	= @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(MATH_LIB)
+ LDFLAGS_TINFO	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
+ 
+ LINT		= @LINT@
+Index: test/README
+Prereq:  1.28 
+--- ncurses-5.6/test/README	2006-11-05 01:10:56.000000000 +0000
++++ ncurses-5.6-20071201/test/README	2007-08-18 23:12:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
++-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
+ --                                                                           --
+ -- Permission is hereby granted, free of charge, to any person obtaining a   --
+ -- copy of this software and associated documentation files (the             --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: README,v 1.28 2006/11/05 01:10:56 tom Exp $
++-- $Id: README,v 1.35 2007/08/18 23:12:24 tom Exp $
+ -------------------------------------------------------------------------------
+ 
+ The programs in this directory are designed to test your newest toy :-)
+@@ -210,27 +210,27 @@
+ libncurses:
+ ----------
+ BC				-
+-COLORS				test: echochar ncurses xmas
+-COLOR_PAIR			test: background blue bs cardfile demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+-COLOR_PAIRS			test: echochar ncurses newdemo
+-COLS				test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus edit_field firework foldkeys hashtest ins_wide inserts lrtest movewindow ncurses newdemo rain tclock testcurs view worm
++COLORS				test: echochar ncurses savescreen xmas
++COLOR_PAIR			test: background blue bs cardfile demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
++COLOR_PAIRS			test: echochar ncurses newdemo savescreen
++COLS				test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar edit_field firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
+ ESCDELAY			lib: ncurses
+-LINES				test: cardfile demo_defkey demo_keyok demo_menus edit_field firework hanoi hashtest ins_wide inserts lrtest movewindow ncurses newdemo rain tclock testcurs view worm xmas
++LINES				test: cardfile demo_defkey demo_keyok demo_menus demo_panels echochar edit_field firework hanoi hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+ PAIR_NUMBER			test: ncurses
+ PC				lib: ncurses
+ SP				lib: ncurses
+ TABSIZE				lib: menu
+ UP				-
+ acs_map				test: gdc ins_wide inserts knight movewindow ncurses newdemo testcurs
+-add_wch				test: ncurses
++add_wch				test: demo_panels ncurses
+ add_wchnstr			test: ncurses
+ add_wchstr			test: view
+-addch				test: blue bs ditto echochar hashtest ncurses testaddch view worm
++addch				test: blue bs ditto echochar hashtest ncurses savescreen testaddch view worm
+ addchnstr			-
+ addchstr			-
+ addnstr				-
+ addnwstr			-
+-addstr				test: blue bs cardfile gdc hanoi lrtest ncurses
++addstr				test: blue bs cardfile gdc hanoi lrtest ncurses savescreen
+ addwstr				test: ncurses
+ assume_default_colors		test: ncurses
+ attr_get			test: ncurses
+@@ -241,20 +241,20 @@
+ attron				test: bs echochar filter gdc ncurses
+ attrset				test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
+ baudrate			lib: ncurses
+-beep				test: blue bs cardfile chgat demo_forms demo_menus edit_field hanoi ins_wide inserts knight movewindow ncurses tclock testcurs view xmas
+-bkgd				test: background cardfile demo_forms ncurses tclock view
++beep				test: blue bs cardfile chgat demo_forms demo_menus demo_panels edit_field hanoi inch_wide inchs ins_wide inserts knight movewindow ncurses savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
++bkgd				test: background cardfile demo_forms ncurses savescreen tclock view
+ bkgdset				test: background ncurses testaddch
+ bkgrnd				test: ncurses
+ bkgrndset			test: ncurses
+-boolcodes			progs: dump_entry
+-boolfnames			progs: dump_entry
+-boolnames			progs: dump_entry infocmp
++boolcodes			test: test_arrays progs: dump_entry
++boolfnames			test: test_arrays progs: dump_entry
++boolnames			test: test_arrays progs: dump_entry infocmp
+ border				-
+ border_set			-
+-box				test: cardfile chgat demo_forms demo_menus edit_field ins_wide inserts lrtest ncurses newdemo redraw testcurs
++box				test: cardfile chgat demo_forms demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts lrtest ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+ box_set				test: ncurses
+ can_change_color		test: ncurses
+-cbreak				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto filter firework foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses newdemo tclock testcurs view worm xmas
++cbreak				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+ chgat				test: chgat
+ clear				test: blue bs gdc ncurses testcurs xmas
+ clearok				test: bs knight
+@@ -263,26 +263,26 @@
+ color_content			test: ncurses
+ color_set			test: color_set ncurses
+ copywin				test: ncurses testcurs
+-cur_term			test: dots echochar lrtest progs: clear tic tput tset
+-curs_set			test: echochar firework gdc hanoi lrtest ncurses newdemo rain tclock testcurs worm xmas
+-curscr				test: edit_field knight lrtest ncurses tclock view
++cur_term			test: dots dots_mvcur lrtest progs: clear tput tset
++curs_set			test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
++curscr				test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
+ curses_version			test: ncurses progs: infocmp tic toe tput tset
+ def_prog_mode			test: bs ncurses
+ def_shell_mode			lib: ncurses
+ define_key			test: demo_altkeys demo_defkey foldkeys
+ del_curterm			lib: ncurses
+-delay_output			-
++delay_output			test: newdemo
+ delch				-
+ deleteln			-
+-delscreen			-
+-delwin				test: cardfile chgat demo_forms demo_menus edit_field ins_wide inserts movewindow ncurses newdemo redraw testcurs
+-derwin				test: cardfile chgat demo_forms demo_menus ins_wide inserts movewindow ncurses
+-doupdate			test: cardfile demo_menus edit_field ins_wide inserts knight movewindow ncurses redraw
++delscreen			test: dots_mvcur
++delwin				test: cardfile chgat demo_forms demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
++derwin				test: cardfile chgat demo_forms demo_menus inch_wide inchs ins_wide inserts movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
++doupdate			test: cardfile demo_menus demo_panels edit_field ins_wide inserts knight movewindow ncurses redraw savescreen test_get_wstr test_getstr
+ dupwin				test: edit_field
+-echo				test: bs hanoi ncurses testcurs testscanw
++echo				test: bs hanoi ncurses test_get_wstr test_getstr testcurs testscanw
+ echo_wchar			test: ncurses
+ echochar			test: echochar ncurses
+-endwin				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto echochar filter firework firstlast foldkeys gdc hanoi hashtest ins_wide inserts keynames knight lrtest movewindow ncurses newdemo rain redraw tclock testaddch testcurs testscanw view worm xmas
++endwin				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto dots_mvcur echochar filter firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+ erase				test: cardfile demo_menus filter firework firstlast hanoi lrtest ncurses tclock testcurs
+ erasechar			lib: ncurses
+ erasewchar			-
+@@ -290,45 +290,46 @@
+ flash				test: cardfile lrtest ncurses tclock testcurs
+ flushinp			test: ncurses newdemo testcurs
+ get_wch				-
+-get_wstr			-
+-getbegx				test: chgat demo_menus movewindow ncurses newdemo redraw testcurs
+-getbegy				test: chgat demo_menus movewindow ncurses newdemo redraw testcurs
++get_wstr			test: test_get_wstr
++getattrs			-
++getbegx				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
++getbegy				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
+ getbkgd				test: ncurses
+ getbkgrnd			test: ncurses
+ getcchar			test: ncurses view
+-getch				test: background blue bs chgat color_set demo_altkeys ditto filter firework firstlast foldkeys hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
+-getcurx				test: bs chgat demo_altkeys demo_defkey foldkeys movewindow ncurses redraw testcurs
+-getcury				test: bs chgat demo_altkeys demo_defkey edit_field foldkeys movewindow ncurses redraw testcurs
+-getmaxx				test: chgat movewindow ncurses newdemo redraw testcurs
+-getmaxy				test: chgat demo_forms movewindow ncurses newdemo redraw testcurs
++getch				test: background blue bs chgat color_set demo_altkeys ditto filter firework firstlast foldkeys hanoi hashtest lrtest rain savescreen tclock testaddch testcurs view worm xmas
++getcurx				test: bs chgat demo_altkeys demo_defkey demo_panels foldkeys movewindow ncurses redraw savescreen test_get_wstr test_getstr testcurs
++getcury				test: bs chgat demo_altkeys demo_defkey demo_panels edit_field foldkeys movewindow ncurses redraw savescreen testcurs
++getmaxx				test: chgat demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
++getmaxy				test: chgat demo_forms demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+ getmouse			test: bs knight movewindow ncurses
+-getn_wstr			-
+-getnstr				test: filter ncurses
++getn_wstr			test: test_get_wstr
++getnstr				test: filter ncurses test_getstr
+ getparx				test: movewindow
+ getpary				test: movewindow
+-getstr				-
++getstr				test: test_getstr
+ getwin				test: ncurses
+ halfdelay			test: view
+-has_colors			test: background bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
++has_colors			test: background bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testcurs view worm xmas
+ has_ic				test: lrtest
+ has_il				lib: ncurses
+ has_key				lib: ncurses
+ hline				test: gdc ncurses
+ hline_set			-
+-idcok				-
+-idlok				test: ncurses testscanw view
+-immedok				-
+-in_wch				-
+-in_wchnstr			-
+-in_wchstr			-
+-inch				-
+-inchnstr			-
+-inchstr				-
++idcok				test: test_opaque
++idlok				test: ncurses test_opaque testscanw view
++immedok				test: test_opaque
++in_wch				test: inch_wide
++in_wchnstr			test: inch_wide
++in_wchstr			test: inch_wide
++inch				test: inchs
++inchnstr			test: inchs
++inchstr				test: inchs
+ init_color			test: ncurses
+-init_pair			test: background blue bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+-initscr				test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus echochar firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw tclock testaddch testcurs testscanw view worm xmas
+-innstr				-
+-innwstr				-
++init_pair			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
++initscr				test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar firework firstlast gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
++innstr				test: test_instr
++innwstr				test: test_inwstr
+ ins_nwstr			test: ins_wide
+ ins_wch				test: ins_wide
+ ins_wstr			test: ins_wide
+@@ -337,29 +338,39 @@
+ insertln			-
+ insnstr				test: inserts
+ insstr				test: inserts
+-instr				-
++instr				test: test_instr
+ intrflush			test: demo_forms movewindow
+-inwstr				-
++inwstr				test: test_inwstr
++is_cleared			test: test_opaque
++is_idcok			test: test_opaque
++is_idlok			test: test_opaque
++is_immedok			test: test_opaque
++is_keypad			test: ncurses test_opaque
++is_leaveok			test: test_opaque
+ is_linetouched			lib: form
++is_nodelay			test: test_opaque
++is_notimeout			test: test_opaque
++is_scrollok			test: ncurses test_opaque
++is_syncok			test: test_opaque
+ is_term_resized			-
+ is_wintouched			lib: ncurses
+ isendwin			-
+ key_defined			test: demo_defkey foldkeys
+-key_name			test: ncurses
++key_name			test: key_names ncurses
+ keybound			test: demo_altkeys demo_defkey
+ keyname				test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
+ keyok				test: demo_keyok foldkeys
+-keypad				test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus edit_field filter firework foldkeys hashtest ins_wide inserts keynames knight lrtest movewindow ncurses redraw tclock testcurs testscanw view
++keypad				test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field filter firework foldkeys hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
+ killchar			lib: ncurses
+ killwchar			-
+-leaveok				test: hanoi
++leaveok				test: hanoi test_opaque
+ longname			test: testcurs progs: tput
+ mcprint				-
+ meta				test: ncurses
+ mouse_trafo			-
+ mouseinterval			-
+-mousemask			test: bs demo_menus knight movewindow ncurses
+-move				test: blue bs cardfile chgat demo_altkeys demo_menus echochar foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses testscanw view worm xmas
++mousemask			test: bs demo_forms demo_menus knight movewindow ncurses
++move				test: blue bs cardfile chgat demo_altkeys demo_menus echochar foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses savescreen test_get_wstr test_getstr test_instr test_inwstr testscanw view worm xmas
+ mvadd_wch			test: ncurses
+ mvadd_wchnstr			-
+ mvadd_wchstr			-
+@@ -371,112 +382,112 @@
+ mvaddstr			test: bs demo_forms gdc hanoi knight ncurses rain tclock testcurs xmas
+ mvaddwstr			-
+ mvchgat				test: chgat
+-mvcur				test: redraw
++mvcur				test: dots_mvcur redraw
+ mvdelch				-
+ mvderwin			test: movewindow
+ mvget_wch			-
+-mvget_wstr			-
++mvget_wstr			test: test_get_wstr
+ mvgetch				-
+-mvgetn_wstr			-
+-mvgetnstr			-
+-mvgetstr			-
++mvgetn_wstr			test: test_get_wstr
++mvgetnstr			test: test_getstr
++mvgetstr			test: test_getstr
+ mvhline				test: ncurses
+ mvhline_set			test: ncurses
+-mvin_wch			-
+-mvin_wchnstr			-
+-mvin_wchstr			-
+-mvinch				-
+-mvinchnstr			test: gdc
+-mvinchstr			-
+-mvinnstr			-
+-mvinnwstr			-
++mvin_wch			test: inch_wide
++mvin_wchnstr			test: inch_wide
++mvin_wchstr			test: inch_wide
++mvinch				test: inchs
++mvinchnstr			test: gdc inchs
++mvinchstr			test: inchs
++mvinnstr			test: test_instr
++mvinnwstr			test: test_inwstr
+ mvins_nwstr			test: ins_wide
+ mvins_wch			test: ins_wide
+ mvins_wstr			test: ins_wide
+ mvinsch				test: ins_wide inserts
+ mvinsnstr			test: inserts
+ mvinsstr			test: inserts
+-mvinstr				-
+-mvinwstr			-
++mvinstr				test: test_instr
++mvinwstr			test: test_inwstr
+ mvprintw			test: bs demo_menus firework hanoi ncurses tclock view
+ mvscanw				-
+ mvvline				test: ncurses
+ mvvline_set			test: ncurses
+ mvwadd_wch			-
+ mvwadd_wchnstr			lib: form
+-mvwadd_wchstr			-
++mvwadd_wchstr			test: inch_wide
+ mvwaddch			test: movewindow newdemo testcurs xmas
+ mvwaddchnstr			-
+-mvwaddchstr			-
++mvwaddchstr			test: inchs
+ mvwaddnstr			test: newdemo testcurs
+ mvwaddnwstr			-
+-mvwaddstr			test: firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
+-mvwaddwstr			-
++mvwaddstr			test: firstlast ins_wide inserts knight ncurses newdemo test_instr testcurs xmas
++mvwaddwstr			test: test_inwstr
+ mvwchgat			test: chgat
+ mvwdelch			test: ncurses
+ mvwget_wch			-
+-mvwget_wstr			-
+-mvwgetch			-
+-mvwgetn_wstr			-
+-mvwgetnstr			-
+-mvwgetstr			-
++mvwget_wstr			test: test_get_wstr
++mvwgetch			test: inch_wide inchs test_get_wstr test_getstr test_instr test_inwstr test_opaque
++mvwgetn_wstr			test: test_get_wstr
++mvwgetnstr			test: test_getstr
++mvwgetstr			test: test_getstr
+ mvwhline			test: movewindow
+ mvwhline_set			-
+ mvwin				test: cardfile demo_menus movewindow testcurs xmas
+-mvwin_wch			-
+-mvwin_wchnstr			lib: form
+-mvwin_wchstr			-
+-mvwinch				test: newdemo testcurs
+-mvwinchnstr			-
+-mvwinchstr			-
+-mvwinnstr			test: testcurs
+-mvwinnwstr			-
++mvwin_wch			test: inch_wide
++mvwin_wchnstr			test: inch_wide
++mvwin_wchstr			test: inch_wide
++mvwinch				test: inchs newdemo testcurs
++mvwinchnstr			test: inchs
++mvwinchstr			test: inchs
++mvwinnstr			test: test_instr testcurs
++mvwinnwstr			test: test_inwstr
+ mvwins_nwstr			test: ins_wide
+ mvwins_wch			test: ins_wide
+ mvwins_wstr			test: ins_wide
+ mvwinsch			test: ins_wide inserts
+ mvwinsnstr			test: inserts
+ mvwinsstr			test: inserts testcurs
+-mvwinstr			-
+-mvwinwstr			-
+-mvwprintw			test: chgat ncurses testcurs
++mvwinstr			test: test_instr
++mvwinwstr			test: test_inwstr
++mvwprintw			test: chgat demo_panels inch_wide inchs ncurses test_instr test_inwstr testcurs
+ mvwscanw			test: testcurs
+ mvwvline			test: ins_wide inserts movewindow
+ mvwvline_set			-
+-napms				test: dots echochar firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
++napms				test: demo_panels dots dots_mvcur echochar firework gdc hanoi lrtest ncurses railroad rain tclock test_opaque testcurs view worm xmas progs: tset
+ newpad				test: edit_field ncurses testcurs
+ newscr				lib: ncurses
+-newterm				test: demo_altkeys ditto filter foldkeys gdc keynames
+-newwin				test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus edit_field firstlast ins_wide inserts knight movewindow ncurses newdemo redraw testcurs xmas
++newterm				test: demo_altkeys ditto dots_mvcur filter foldkeys gdc keynames
++newwin				test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field firstlast inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs xmas
+ nl				test: demo_forms ncurses rain testcurs
+ nocbreak			test: testcurs
+-nodelay				test: firework gdc lrtest ncurses newdemo rain tclock view xmas
+-noecho				test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto firework firstlast foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses rain redraw tclock testcurs view worm xmas
++nodelay				test: firework gdc lrtest ncurses newdemo rain tclock test_opaque view xmas
++noecho				test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+ nofilter			-
+ nonl				test: bs demo_forms hashtest movewindow ncurses view worm xmas
+ noqiflush			-
+ noraw				test: demo_forms demo_menus ncurses testcurs
+-notimeout			-
+-numcodes			progs: dump_entry
+-numfnames			progs: dump_entry
+-numnames			progs: dump_entry infocmp
++notimeout			test: test_opaque
++numcodes			test: test_arrays progs: dump_entry
++numfnames			test: test_arrays progs: dump_entry
++numnames			test: test_arrays progs: dump_entry infocmp
+ ospeed				progs: tset
+ overlay				test: ncurses testcurs xmas
+-overwrite			test: ncurses
++overwrite			test: ncurses savescreen
+ pair_content			test: background color_set
+ pecho_wchar			-
+ pechochar			-
+ pnoutrefresh			test: edit_field ncurses
+ prefresh			test: testcurs
+-printw				test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses testcurs testscanw view
++printw				test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view
+ putp				progs: tput
+ putwin				test: ncurses
+ qiflush				-
+ raw				test: demo_forms ncurses redraw testcurs
+ redrawwin			test: redraw
+-refresh				test: blue bs demo_defkey demo_forms demo_keyok demo_menus ditto echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses tclock testcurs view worm xmas
++refresh				test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view worm xmas
+ reset_prog_mode			test: filter ncurses
+-reset_shell_mode		test: bs filter
++reset_shell_mode		test: bs filter savescreen
+ resetty				-
+ resize_term			test: view
+ resizeterm			lib: ncurses
+@@ -484,16 +495,16 @@
+ ripoffline			test: demo_menus ncurses
+ savetty				-
+ scanw				test: testcurs testscanw
+-scr_dump			-
+-scr_init			-
+-scr_restore			-
+-scr_set				-
+-scrl				-
++scr_dump			test: savescreen
++scr_init			test: savescreen
++scr_restore			test: savescreen
++scr_set				test: savescreen
++scrl				test: view
+ scroll				test: testcurs
+-scrollok			test: demo_altkeys demo_defkey demo_keyok ditto foldkeys hashtest knight ncurses redraw testcurs testscanw view
++scrollok			test: demo_altkeys demo_defkey demo_keyok demo_panels ditto foldkeys hashtest knight ncurses redraw test_opaque testcurs testscanw view
+ set_curterm			lib: ncurses
+ set_term			test: ditto
+-setcchar			test: ins_wide ncurses view
++setcchar			test: demo_panels ins_wide ncurses view
+ setscrreg			test: view
+ setupterm			test: dots progs: clear tput tset
+ slk_attr			-
+@@ -515,14 +526,14 @@
+ slk_wset			test: ncurses
+ standend			test: blue gdc ncurses worm
+ standout			test: blue ncurses
+-start_color			test: background blue bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+-stdscr				test: bs chgat demo_altkeys demo_forms demo_menus ditto filter firework foldkeys gdc hanoi hashtest ins_wide inserts keynames knight lrtest movewindow ncurses rain redraw tclock testcurs testscanw view xmas
+-strcodes			progs: dump_entry
+-strfnames			progs: dump_entry
+-strnames			test: foldkeys progs: dump_entry infocmp tic
++start_color			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
++stdscr				test: bs chgat demo_altkeys demo_forms demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view xmas
++strcodes			test: test_arrays progs: dump_entry
++strfnames			test: test_arrays progs: dump_entry
++strnames			test: foldkeys test_arrays progs: dump_entry infocmp tic
+ subpad				test: testcurs
+ subwin				test: movewindow ncurses newdemo testcurs
+-syncok				-
++syncok				test: test_opaque
+ term_attrs			test: ncurses
+ termattrs			test: ncurses testcurs
+ termname			test: testcurs
+@@ -534,11 +545,11 @@
+ tigetflag			progs: tput
+ tigetnum			test: ncurses progs: tput
+ tigetstr			test: blue demo_defkey foldkeys testcurs progs: tput
+-timeout				test: rain
++timeout				test: rain savescreen
+ touchline			test: chgat
+-touchwin			test: chgat demo_menus edit_field filter firstlast ins_wide inserts movewindow ncurses redraw xmas
+-tparm				test: dots progs: tic tput
+-tputs				test: dots railroad progs: clear tset
++touchwin			test: chgat demo_menus edit_field filter firstlast inch_wide inchs ins_wide inserts movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
++tparm				test: dots dots_mvcur progs: tic tput
++tputs				test: dots dots_mvcur railroad progs: clear tset
+ trace				test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
+ ttytype				lib: ncurses
+ typeahead			test: testcurs
+@@ -561,58 +572,60 @@
+ vw_scanw			-
+ vwprintw			test: movewindow
+ vwscanw				lib: ncurses
+-wadd_wch			lib: ncurses
++wadd_wch			test: inch_wide
+ wadd_wchnstr			lib: form
+ wadd_wchstr			-
+-waddch				test: demo_forms firstlast knight ncurses
++waddch				test: demo_forms demo_panels firstlast inch_wide inchs knight ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
+ waddchnstr			lib: ncurses
+ waddchstr			-
+ waddnstr			lib: menu
+ waddnwstr			test: ncurses
+-waddstr				test: chgat demo_forms edit_field firstlast ins_wide knight ncurses redraw testcurs
+-waddwstr			test: ins_wide
++waddstr				test: chgat demo_forms demo_panels edit_field firstlast ins_wide knight ncurses redraw testcurs
++waddwstr			test: ins_wide test_get_wstr
+ wattr_get			-
+ wattr_off			lib: ncurses
+ wattr_on			lib: ncurses
+ wattr_set			-
+ wattroff			test: demo_forms ncurses testcurs xmas
+ wattron				test: testcurs xmas
+-wattrset			test: demo_forms ncurses newdemo testcurs xmas
++wattrset			test: demo_forms ncurses newdemo test_get_wstr test_getstr testcurs xmas
+ wbkgd				test: cardfile demo_forms demo_menus ncurses newdemo testcurs
+-wbkgdset			test: ins_wide inserts ncurses
++wbkgdset			test: demo_panels ins_wide inserts ncurses
+ wbkgrnd				lib: ncurses
+ wbkgrndset			lib: ncurses
+ wborder				lib: ncurses
+ wborder_set			lib: ncurses
+-wchgat				test: chgat view
+-wclear				test: ncurses testcurs
+-wclrtobot			test: firstlast ncurses testcurs
+-wclrtoeol			test: chgat demo_defkey demo_keyok firstlast ins_wide inserts knight ncurses testcurs
++wchgat				test: chgat test_get_wstr test_getstr view
++wclear				test: ncurses test_opaque testcurs
++wclrtobot			test: firstlast inch_wide inchs ncurses test_instr test_inwstr testcurs
++wclrtoeol			test: chgat demo_defkey demo_keyok demo_panels firstlast inch_wide inchs ins_wide inserts knight ncurses test_instr test_inwstr testcurs
+ wcolor_set			lib: ncurses
+ wcursyncup			lib: form
+ wdelch				test: ncurses testcurs
+ wdeleteln			test: testcurs
+ wecho_wchar			lib: ncurses
+ wechochar			lib: ncurses
+-wenclose			lib: menu
+-werase				test: cardfile demo_forms demo_menus edit_field firstlast knight ncurses newdemo testcurs xmas
++wenclose			lib: form
++werase				test: cardfile demo_forms demo_menus demo_panels edit_field firstlast knight ncurses newdemo test_get_wstr test_getstr test_opaque testcurs xmas
+ wget_wch			test: ins_wide ncurses
+-wget_wstr			-
++wget_wstr			test: test_get_wstr
+ wgetbkgrnd			lib: ncurses
+-wgetch				test: cardfile chgat demo_defkey demo_keyok demo_menus edit_field gdc inserts knight movewindow ncurses newdemo redraw testcurs
+-wgetn_wstr			test: ncurses
+-wgetnstr			test: ncurses
+-wgetstr				-
++wgetch				test: cardfile chgat demo_defkey demo_keyok demo_menus demo_panels edit_field gdc inserts knight movewindow ncurses newdemo redraw test_opaque testcurs
++wgetn_wstr			test: ncurses test_get_wstr
++wgetnstr			test: ncurses test_getstr
++wgetparent			test: test_opaque
++wgetscrreg			test: test_opaque
++wgetstr				test: test_getstr
+ whline				test: testcurs
+ whline_set			lib: ncurses
+-win_wch				lib: form
+-win_wchnstr			lib: form
+-win_wchstr			-
+-winch				test: knight testcurs
+-winchnstr			lib: ncurses
+-winchstr			-
+-winnstr				test: demo_altkeys demo_defkey foldkeys
+-winnwstr			lib: ncurses
++win_wch				test: inch_wide
++win_wchnstr			test: inch_wide
++win_wchstr			test: inch_wide
++winch				test: inchs knight testcurs
++winchnstr			test: inchs
++winchstr			test: inchs
++winnstr				test: demo_altkeys demo_defkey foldkeys test_instr
++winnwstr			test: test_inwstr
+ wins_nwstr			test: ins_wide
+ wins_wch			test: ins_wide
+ wins_wstr			test: ins_wide
+@@ -621,42 +634,42 @@
+ winsertln			test: testcurs
+ winsnstr			test: inserts
+ winsstr				test: inserts
+-winstr				-
+-winwstr				lib: ncurses
+-wmouse_trafo			lib: menu
+-wmove				test: chgat demo_altkeys demo_defkey demo_keyok demo_menus firstlast foldkeys ins_wide inserts knight movewindow ncurses newdemo redraw testcurs
+-wnoutrefresh			test: demo_menus edit_field ins_wide inserts knight movewindow ncurses redraw
+-wprintw				test: chgat demo_defkey demo_forms demo_keyok demo_menus edit_field ins_wide inserts knight movewindow ncurses testcurs
++winstr				test: test_instr
++winwstr				test: test_inwstr
++wmouse_trafo			lib: form
++wmove				test: chgat demo_altkeys demo_defkey demo_keyok demo_menus demo_panels firstlast foldkeys inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
++wnoutrefresh			test: demo_menus edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque
++wprintw				test: chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+ wredrawln			test: redraw
+-wrefresh			test: chgat demo_forms demo_keyok demo_menus edit_field firstlast knight lrtest movewindow ncurses newdemo redraw tclock testcurs view xmas
++wrefresh			test: chgat demo_forms demo_keyok demo_menus demo_panels edit_field firstlast knight lrtest movewindow ncurses newdemo redraw savescreen tclock testcurs view xmas
+ wresize				test: cardfile ncurses
+ wscanw				test: testcurs
+-wscrl				test: ncurses testcurs view
++wscrl				test: ncurses testcurs
+ wsetscrreg			test: ncurses testcurs
+-wstandend			test: xmas
+-wstandout			test: xmas
++wstandend			test: test_opaque xmas
++wstandout			test: test_opaque xmas
+ wsyncdown			test: movewindow
+ wsyncup				lib: form
+ wtimeout			test: ncurses
+ wtouchln			lib: ncurses
+-wunctrl				-
++wunctrl				lib: ncurses
+ wvline				test: testcurs
+ wvline_set			lib: ncurses
+ 
+ libpanel:
+ --------
+-bottom_panel			test: ncurses
+-del_panel			test: ncurses
+-hide_panel			test: ncurses
+-move_panel			test: ncurses
+-new_panel			test: cardfile ncurses
+-panel_above			-
+-panel_below			-
+-panel_hidden			-
+-panel_userptr			test: ncurses
+-panel_window			test: cardfile ncurses
+-replace_panel			-
+-set_panel_userptr		test: ncurses
+-show_panel			test: ncurses
+-top_panel			test: cardfile ncurses
+-update_panels			test: cardfile ncurses
++bottom_panel			test: demo_panels ncurses
++del_panel			test: demo_panels ncurses
++hide_panel			test: demo_panels ncurses
++move_panel			test: demo_panels ncurses
++new_panel			test: cardfile demo_panels ncurses
++panel_above			test: demo_panels
++panel_below			test: demo_panels
++panel_hidden			test: demo_panels
++panel_userptr			test: demo_panels ncurses
++panel_window			test: cardfile demo_panels ncurses
++replace_panel			test: demo_panels
++set_panel_userptr		test: demo_panels ncurses
++show_panel			test: demo_panels ncurses
++top_panel			test: cardfile demo_panels ncurses
++update_panels			test: cardfile demo_panels ncurses
+Index: test/aclocal.m4
+Prereq:  1.17 
+--- ncurses-5.6/test/aclocal.m4	2006-12-03 00:10:15.000000000 +0000
++++ ncurses-5.6-20071201/test/aclocal.m4	2007-06-09 20:01:31.000000000 +0000
+@@ -26,7 +26,7 @@
+ dnl authorization.                                                           *
+ dnl***************************************************************************
+ dnl
+-dnl $Id: aclocal.m4,v 1.17 2006/12/03 00:10:15 tom Exp $
++dnl $Id: aclocal.m4,v 1.19 2007/06/09 20:01:31 tom Exp $
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+@@ -230,6 +230,12 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
++dnl --------------
++dnl Allow user to disable a normally-on option.
++AC_DEFUN([CF_ARG_DISABLE],
++[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
+ dnl -------------
+ dnl Allow user to enable a normally-off option.
+@@ -537,6 +543,43 @@
+ dnl "dirname" is not portable, so we fake it with a shell script.
+ AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
++dnl ---------------
++dnl You can always use "make -n" to see the actual options, but it's hard to
++dnl pick out/analyze warning messages when the compile-line is long.
++dnl
++dnl Sets:
++dnl	ECHO_LT - symbol to control if libtool is verbose
++dnl	ECHO_LD - symbol to prefix "cc -o" lines
++dnl	RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
++dnl	SHOW_CC - symbol to put before explicit "cc -c" lines
++dnl	ECHO_CC - symbol to put before any "cc" line
++dnl
++AC_DEFUN([CF_DISABLE_ECHO],[
++AC_MSG_CHECKING(if you want to see long compiling messages)
++CF_ARG_DISABLE(echo,
++	[  --disable-echo          display "compiling" commands],
++	[
++    ECHO_LT='--silent'
++    ECHO_LD='@echo linking [$]@;'
++    RULE_CC='	@echo compiling [$]<'
++    SHOW_CC='	@echo compiling [$]@'
++    ECHO_CC='@'
++],[
++    ECHO_LT=''
++    ECHO_LD=''
++    RULE_CC='# compiling'
++    SHOW_CC='# compiling'
++    ECHO_CC=''
++])
++AC_MSG_RESULT($enableval)
++AC_SUBST(ECHO_LT)
++AC_SUBST(ECHO_LD)
++AC_SUBST(RULE_CC)
++AC_SUBST(SHOW_CC)
++AC_SUBST(ECHO_CC)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ENABLE_WARNINGS version: 3 updated: 2003/05/24 14:24:29
+ dnl ------------------
+ dnl Configure-option to enable gcc warnings
+@@ -606,7 +649,7 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_CURSES_VERSION version: 3 updated: 2003/05/17 22:19:02
++dnl CF_FUNC_CURSES_VERSION version: 4 updated: 2007/04/28 09:15:55
+ dnl ----------------------
+ dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
+ dnl It's a character string "SVR4", not documented.
+@@ -619,7 +662,7 @@
+ {
+ 	char temp[1024];
+ 	sprintf(temp, "%s\n", curses_version());
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }]
+ ,[cf_cv_func_curses_version=yes]
+ ,[cf_cv_func_curses_version=no]
+@@ -1155,7 +1198,7 @@
+ AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_VERSION version: 11 updated: 2003/11/06 19:59:57
++dnl CF_NCURSES_VERSION version: 12 updated: 2007/04/28 09:15:55
+ dnl ------------------
+ dnl Check for the version of ncurses, to aid in reporting bugs, etc.
+ dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
+@@ -1186,7 +1229,7 @@
+ 	make an error
+ # endif
+ #endif
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }],[
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`],,[
+ 
+@@ -1442,6 +1485,41 @@
+ 		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
++dnl ---------------
++dnl signal handler, but there are some gcc depedencies in that recommendation.
++dnl Try anyway.
++AC_DEFUN([CF_SIG_ATOMIC_T],
++[
++AC_MSG_CHECKING(for signal global datatype)
++AC_CACHE_VAL(cf_cv_sig_atomic_t,[
++	for cf_type in \
++		"volatile sig_atomic_t" \
++		"sig_atomic_t" \
++		"int"
++	do
++	AC_TRY_COMPILE([
++#include <sys/types.h>
++#include <signal.h>
++#include <stdio.h>
++
++extern $cf_type x;
++$cf_type x;
++static void handler(int sig)
++{
++	x = 5;
++}],
++		[signal(SIGINT, handler);
++		 x = 1],
++		[cf_cv_sig_atomic_t=$cf_type],
++		[cf_cv_sig_atomic_t=no])
++		test "$cf_cv_sig_atomic_t" != no && break
++	done
++	])
++AC_MSG_RESULT($cf_cv_sig_atomic_t)
++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_SUBDIR_PATH version: 4 updated: 2006/11/18 17:13:19
+ dnl --------------
+ dnl Construct a search-list for a nonstandard header/lib-file
+@@ -1630,7 +1708,7 @@
+ 	[cf_cv_curses_dir=no])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09
++dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
+ dnl ---------------
+ dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+ dnl or adapt to the vendor's definitions to get equivalent functionality,
+@@ -1664,7 +1742,7 @@
+ irix[[56]].*) #(vi
+ 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ 	;;
+-linux*|gnu*) #(vi
++linux*|gnu*|k*bsd*-gnu) #(vi
+ 	CF_GNU_SOURCE
+ 	;;
+ mirbsd*) #(vi
+Index: test/bs.c
+Prereq:  1.44 
+--- ncurses-5.6/test/bs.c	2006-05-20 15:38:52.000000000 +0000
++++ ncurses-5.6-20071201/test/bs.c	2007-04-07 17:13:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,7 +34,7 @@
+  * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
+  * v2.1 with ncurses mouse support, September 1995
+  *
+- * $Id: bs.c,v 1.44 2006/05/20 15:38:52 tom Exp $
++ * $Id: bs.c,v 1.45 2007/04/07 17:13:11 tom Exp $
+  */
+ 
+ #include <test.priv.h>
+@@ -459,7 +459,7 @@
+ 	do {
+ 	    c = getch();
+ 	} while
+-	    (!strchr("hjklrR", c) || c == FF);
++	    (!(strchr("hjklrR", c) || c == FF));
+ 
+ 	if (c == FF) {
+ 	    (void) clearok(stdscr, TRUE);
+Index: test/cardfile.c
+Prereq:  1.28 
+--- ncurses-5.6/test/cardfile.c	2006-12-10 00:30:09.000000000 +0000
++++ ncurses-5.6-20071201/test/cardfile.c	2007-08-11 16:34:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2004,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /*
+  * Author: Thomas E. Dickey
+  *
+- * $Id: cardfile.c,v 1.28 2006/12/10 00:30:09 tom Exp $
++ * $Id: cardfile.c,v 1.32 2007/08/11 16:34:27 tom Exp $
+  *
+  * File format: text beginning in column 1 is a title; other text is content.
+  */
+@@ -71,7 +71,7 @@
+ #if !HAVE_STRDUP
+ #define strdup my_strdup
+ static char *
+-strdup(char *s)
++strdup(const char *s)
+ {
+     char *p = (char *) malloc(strlen(s) + 1);
+     if (p)
+@@ -136,13 +136,15 @@
+ 	if ((offset = strlen(card->content)) != 0) {
+ 	    total += 1 + offset;
+ 	    card->content = (char *) realloc(card->content, total + 1);
+-	    strcpy(card->content + offset++, " ");
++	    if (card->content)
++		strcpy(card->content + offset++, " ");
+ 	} else {
+ 	    if (card->content != 0)
+ 		free(card->content);
+ 	    card->content = (char *) malloc(total + 1);
+ 	}
+-	strcpy(card->content + offset, content);
++	if (card->content)
++	    strcpy(card->content + offset, content);
+     }
+ }
+ 
+@@ -306,8 +308,8 @@
+ 	return (MY_CTRL_N);
+     case CTRL('P'):
+ 	return (MY_CTRL_P);
+-    case CTRL('Q'):
+-    case 033:
++    case QUIT:
++    case ESCAPE:
+ 	return (MY_CTRL_Q);
+ 
+     case KEY_BACKSPACE:
+@@ -568,7 +570,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((n = getopt(argc, argv, "c")) != EOF) {
++    while ((n = getopt(argc, argv, "c")) != -1) {
+ 	switch (n) {
+ 	case 'c':
+ 	    try_color = TRUE;
+Index: test/chgat.c
+Prereq:  1.5 
+--- ncurses-5.6/test/chgat.c	2006-07-15 22:48:27.000000000 +0000
++++ ncurses-5.6-20071201/test/chgat.c	2007-06-30 17:52:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: chgat.c,v 1.5 2006/07/15 22:48:27 tom Exp $
++ * $Id: chgat.c,v 1.7 2007/06/30 17:52:17 tom Exp $
+  *
+  * test-driver for chgat/wchgat/mvchgat/mvwchgat
+  */
+@@ -47,25 +47,26 @@
+ typedef struct {
+     unsigned c;
+     unsigned v;
+-    int pair, attr;
++    int pair;
++    unsigned attr;
+     int count;
+     int ch;
+-    char *c_msg;
+-    char *v_msg;
++    const char *c_msg;
++    const char *v_msg;
+     int y_val;
+     int x_val;
+     int y_beg, x_beg;
+     int y_max, x_max;
+ } STATUS;
+ 
+-static char *
++static const char *
+ color_params(unsigned state, int *pair)
+ {
+     /* *INDENT-OFF* */
+     static struct {
+ 	int pair;
+ 	int fg, bg;
+-	char *msg;
++	const char *msg;
+     } table[] = {
+ 	{ 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
+ 	{ 1, COLOR_RED,     COLOR_BLACK,   "red/black" },
+@@ -74,7 +75,7 @@
+     /* *INDENT-ON* */
+ 
+     static bool first = TRUE;
+-    char *result = 0;
++    const char *result = 0;
+ 
+     if (has_colors()) {
+ 	if (first) {
+@@ -93,13 +94,13 @@
+     return result;
+ }
+ 
+-static char *
+-video_params(unsigned state, int *attr)
++static const char *
++video_params(unsigned state, unsigned *attr)
+ {
+     /* *INDENT-OFF* */
+     static struct {
+-	int attr;
+-	char *msg;
++	unsigned attr;
++	const char *msg;
+     } table[] = {
+ 	{ A_NORMAL,	"normal" },
+ 	{ A_BOLD,	"bold" },
+@@ -109,7 +110,7 @@
+     };
+     /* *INDENT-ON* */
+ 
+-    char *result = 0;
++    const char *result = 0;
+ 
+     if (state < SIZEOF(table)) {
+ 	*attr = table[state].attr;
+Index: test/configure
+--- ncurses-5.6/test/configure	2006-12-03 00:10:59.000000000 +0000
++++ ncurses-5.6-20071201/test/configure	2007-06-09 20:03:09.000000000 +0000
+@@ -183,6 +183,7 @@
+ EOF
+ cat <<\EOF
+ --enable and --with options recognized:
++  --disable-echo          display "compiling" commands
+   --enable-warnings       test: turn on gcc compiler warnings
+   --with-curses-dir=DIR   directory in which (n)curses is installed
+   --with-5lib             use SunOS sysv-libraries
+@@ -535,7 +536,7 @@
+ # Uses ac_ vars as temps to allow command line to override cache and checks.
+ # --without-x overrides everything else, but does not touch the cache.
+ echo $ac_n "checking for X""... $ac_c" 1>&6
+-echo "configure:539: checking for X" >&5
++echo "configure:540: checking for X" >&5
+ 
+ 
+ # Check whether --with-x or --without-x was given.
+@@ -598,12 +599,12 @@
+ 
+   # First, try using that file with no special directory specified.
+ cat > conftest.$ac_ext <<EOF
+-#line 602 "configure"
++#line 603 "configure"
+ #include "confdefs.h"
+ #include <$x_direct_test_include>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -672,14 +673,14 @@
+   ac_save_LIBS="$LIBS"
+   LIBS="-l$x_direct_test_library $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 676 "configure"
++#line 677 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ ${x_direct_test_function}()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   LIBS="$ac_save_LIBS"
+ # We can link X programs with no special library path.
+@@ -802,7 +803,7 @@
+ fi
+ 
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+-echo "configure:806: checking host system type" >&5
++echo "configure:807: checking host system type" >&5
+ 
+ host_alias=$host
+ case "$host_alias" in
+@@ -850,7 +851,7 @@
+ 
+ 
+ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+-echo "configure:854: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "configure:855: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -879,7 +880,7 @@
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:883: checking for $ac_word" >&5
++echo "configure:884: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -909,7 +910,7 @@
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:913: checking for $ac_word" >&5
++echo "configure:914: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -960,7 +961,7 @@
+       # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:964: checking for $ac_word" >&5
++echo "configure:965: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -992,7 +993,7 @@
+ fi
+ 
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:996: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:997: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+ 
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -1003,12 +1004,12 @@
+ 
+ cat > conftest.$ac_ext << EOF
+ 
+-#line 1007 "configure"
++#line 1008 "configure"
+ #include "confdefs.h"
+ 
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:1012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   ac_cv_prog_cc_works=yes
+   # If we can't run a trivial program, we are probably using a cross compiler.
+   if (./conftest; exit) 2>/dev/null; then
+@@ -1034,12 +1035,12 @@
+   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1038: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1039: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1043: checking whether we are using GNU C" >&5
++echo "configure:1044: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1048,7 +1049,7 @@
+   yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1052: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+   ac_cv_prog_gcc=yes
+ else
+   ac_cv_prog_gcc=no
+@@ -1067,7 +1068,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1071: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:1072: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1099,7 +1100,7 @@
+ fi
+ 
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1103: checking how to run the C preprocessor" >&5
++echo "configure:1104: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+   CPP=
+@@ -1114,13 +1115,13 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp.
+   cat > conftest.$ac_ext <<EOF
+-#line 1118 "configure"
++#line 1119 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   :
+@@ -1131,13 +1132,13 @@
+   rm -rf conftest*
+   CPP="${CC-cc} -E -traditional-cpp"
+   cat > conftest.$ac_ext <<EOF
+-#line 1135 "configure"
++#line 1136 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   :
+@@ -1148,13 +1149,13 @@
+   rm -rf conftest*
+   CPP="${CC-cc} -nologo -E"
+   cat > conftest.$ac_ext <<EOF
+-#line 1152 "configure"
++#line 1153 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1158: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   :
+@@ -1183,7 +1184,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1187: checking for $ac_word" >&5
++echo "configure:1188: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1219,15 +1220,15 @@
+ DFT_DEP_SUFFIX=""			
+ DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`	
+ DFT_UPR_MODEL="NORMAL"			
+-ECHO_LINK='@ echo linking $@ ... ;'	
+ LD="ld"					
+ LDFLAGS_SHARED=""			
++LDFLAGS_STATIC=""			
+ LD_MODEL=""				
+ LD_SHARED_OPTS=""			
+ LIBTOOL=""				
+ LIB_CLEAN=""				
+ LIB_COMPILE=""				
+-LIB_LINK=""				
++LIB_LINK='${CC}'			
+ LINK_TESTS=""				
+ LINT=lint				
+ LINT_OPTS=""				
+@@ -1243,12 +1244,12 @@
+ cf_cv_libtype=
+ 
+ echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+-echo "configure:1247: checking for Cygwin environment" >&5
++echo "configure:1248: checking for Cygwin environment" >&5
+ if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 1252 "configure"
++#line 1253 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -1259,7 +1260,7 @@
+ return __CYGWIN__;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_cygwin=yes
+ else
+@@ -1276,19 +1277,19 @@
+ CYGWIN=
+ test "$ac_cv_cygwin" = yes && CYGWIN=yes
+ echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+-echo "configure:1280: checking for mingw32 environment" >&5
++echo "configure:1281: checking for mingw32 environment" >&5
+ if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 1285 "configure"
++#line 1286 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return __MINGW32__;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_mingw32=yes
+ else
+@@ -1307,7 +1308,7 @@
+ 
+ 
+ echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+-echo "configure:1311: checking for executable suffix" >&5
++echo "configure:1312: checking for executable suffix" >&5
+ if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1317,7 +1318,7 @@
+   rm -f conftest*
+   echo 'int main () { return 0; }' > conftest.$ac_ext
+   ac_cv_exeext=
+-  if { (eval echo configure:1321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
++  if { (eval echo configure:1322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+     for file in conftest.*; do
+       case $file in
+       *.c | *.o | *.obj) ;;
+@@ -1338,13 +1339,13 @@
+ ac_exeext=$EXEEXT
+ 
+ echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+-echo "configure:1342: checking for object suffix" >&5
++echo "configure:1343: checking for object suffix" >&5
+ if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   rm -f conftest*
+ echo 'int i = 1;' > conftest.$ac_ext
+-if { (eval echo configure:1348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   for ac_file in conftest.*; do
+     case $ac_file in
+     *.c) ;;
+@@ -1364,7 +1365,7 @@
+ 
+ 
+ echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+-echo "configure:1368: checking for ${CC-cc} option to accept ANSI C" >&5
++echo "configure:1369: checking for ${CC-cc} option to accept ANSI C" >&5
+ if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1460,7 +1461,7 @@
+ 
+ 
+ 	cat > conftest.$ac_ext <<EOF
+-#line 1464 "configure"
++#line 1465 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef CC_HAS_PROTOS
+@@ -1476,7 +1477,7 @@
+ 	struct s2 {int (*f) (double a);};
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ansi_cc="$cf_arg"; break
+ else
+@@ -1584,175 +1585,6 @@
+ fi
+ 
+ 
+-
+-GCC_VERSION=none
+-if test "$GCC" = yes ; then
+-	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
+-echo "configure:1592: checking version of $CC" >&5
+-	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+-	test -z "$GCC_VERSION" && GCC_VERSION=unknown
+-	echo "$ac_t""$GCC_VERSION" 1>&6
+-fi
+-
+-
+-if ( test "$GCC" = yes || test "$GXX" = yes )
+-then
+-echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
+-echo "configure:1602: checking if you want to turn on gcc warnings" >&5
+-
+-# Check whether --enable-warnings or --disable-warnings was given.
+-if test "${enable_warnings+set}" = set; then
+-  enableval="$enable_warnings"
+-  test "$enableval" != yes && enableval=no
+-  if test "$enableval" != "no" ; then
+-    with_warnings=yes 
+-  else
+-    with_warnings=no
+-  fi
+-else
+-  enableval=no 
+-  with_warnings=no
+-  
+-fi
+-
+-echo "$ac_t""$with_warnings" 1>&6
+-if test "$with_warnings" = "yes"
+-then
+-	
+-
+-
+-INTEL_COMPILER=no
+-
+-if test "$GCC" = yes ; then
+-	case $host_os in
+-	linux*|gnu*)
+-		echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
+-echo "configure:1631: checking if this is really Intel C compiler" >&5
+-		cf_save_CFLAGS="$CFLAGS"
+-		CFLAGS="$CFLAGS -no-gcc"
+-		cat > conftest.$ac_ext <<EOF
+-#line 1635 "configure"
+-#include "confdefs.h"
+-
+-int main() {
+-
+-#ifdef __INTEL_COMPILER
+-#else
+-make an error
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo configure:1647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
+-  INTEL_COMPILER=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+-
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest*
+-		CFLAGS="$cf_save_CFLAGS"
+-		echo "$ac_t""$INTEL_COMPILER" 1>&6
+-		;;
+-	esac
+-fi
+-
+-
+-cat > conftest.$ac_ext <<EOF
+-#line 1665 "configure"
+-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+-EOF
+-
+-if test "$INTEL_COMPILER" = yes
+-then
+-# The "-wdXXX" options suppress warnings:
+-# remark #1419: external declaration in primary source file
+-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+-# remark #193: zero used for undefined preprocessing identifier
+-# remark #593: variable "curs_sb_left_arrow" was set but never used
+-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+-# remark #869: parameter "tw" was never referenced
+-# remark #981: operands are evaluated in unspecified order
+-# warning #269: invalid format string conversion
+-
+-	echo "checking for $CC warning options" 1>&6
+-echo "configure:1684: checking for $CC warning options" >&5
+-	cf_save_CFLAGS="$CFLAGS"
+-	EXTRA_CFLAGS="-Wall"
+-	for cf_opt in  \
+-		wd1419 \
+-		wd1682 \
+-		wd1683 \
+-		wd1684 \
+-		wd193 \
+-		wd279 \
+-		wd593 \
+-		wd810 \
+-		wd869 \
+-		wd981
+-	do
+-		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo configure:1700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
+-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+-		fi
+-	done
+-	CFLAGS="$cf_save_CFLAGS"
+-
+-elif test "$GCC" = yes
+-then
+-	echo "checking for $CC warning options" 1>&6
+-echo "configure:1710: checking for $CC warning options" >&5
+-	cf_save_CFLAGS="$CFLAGS"
+-	EXTRA_CFLAGS="-W -Wall"
+-	cf_warn_CONST=""
+-	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
+-	for cf_opt in \
+-		Wbad-function-cast \
+-		Wcast-align \
+-		Wcast-qual \
+-		Winline \
+-		Wmissing-declarations \
+-		Wmissing-prototypes \
+-		Wnested-externs \
+-		Wpointer-arith \
+-		Wshadow \
+-		Wstrict-prototypes \
+-		Wundef $cf_warn_CONST 
+-	do
+-		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo configure:1729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
+-			case $cf_opt in #(vi
+-			Wcast-qual) #(vi
+-				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
+-				;;
+-			Winline) #(vi
+-				case $GCC_VERSION in
+-				3.3*)
+-					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+-
+-					continue;;
+-				esac
+-				;;
+-			esac
+-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+-		fi
+-	done
+-	CFLAGS="$cf_save_CFLAGS"
+-fi
+-rm -f conftest*
+-
+-
+-
+-fi
+-fi
+-
+-
+ if test "$GCC" = yes
+ then
+ cat > conftest.i <<EOF
+@@ -1772,9 +1604,9 @@
+ if test "$GCC" = yes
+ then
+ 	echo "checking for $CC __attribute__ directives" 1>&6
+-echo "configure:1776: checking for $CC __attribute__ directives" >&5
++echo "configure:1608: checking for $CC __attribute__ directives" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 1778 "configure"
++#line 1610 "configure"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -1812,7 +1644,7 @@
+ EOF
+ 			;;
+ 		esac
+-		if { (eval echo configure:1816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++		if { (eval echo configure:1648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ 			test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
+ 			cat conftest.h >>confdefs.h
+ 		fi
+@@ -1825,7 +1657,7 @@
+ 
+ 
+ echo $ac_n "checking if $CC -U and -D options work together""... $ac_c" 1>&6
+-echo "configure:1829: checking if $CC -U and -D options work together" >&5
++echo "configure:1661: checking if $CC -U and -D options work together" >&5
+ if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1833,7 +1665,7 @@
+ 	cf_save_CPPFLAGS="$CPPFLAGS"
+ 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+ 	cat > conftest.$ac_ext <<EOF
+-#line 1837 "configure"
++#line 1669 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -1847,7 +1679,7 @@
+ 	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   
+ 	cf_cv_cc_u_d_options=yes
+@@ -1890,16 +1722,16 @@
+ irix[56].*) #(vi
+ 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ 	;;
+-linux*|gnu*) #(vi
++linux*|gnu*|k*bsd*-gnu) #(vi
+ 	
+ echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
+-echo "configure:1897: checking if we must define _GNU_SOURCE" >&5
++echo "configure:1729: checking if we must define _GNU_SOURCE" >&5
+ if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ cat > conftest.$ac_ext <<EOF
+-#line 1903 "configure"
++#line 1735 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -1909,7 +1741,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_gnu_source=no
+ else
+@@ -1919,7 +1751,7 @@
+   cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 	 cat > conftest.$ac_ext <<EOF
+-#line 1923 "configure"
++#line 1755 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -1929,7 +1761,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_gnu_source=no
+ else
+@@ -1973,13 +1805,13 @@
+ 	;;
+ *)
+ 	echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
+-echo "configure:1977: checking if we should define _XOPEN_SOURCE" >&5
++echo "configure:1809: checking if we should define _XOPEN_SOURCE" >&5
+ if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ 	cat > conftest.$ac_ext <<EOF
+-#line 1983 "configure"
++#line 1815 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -1989,7 +1821,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_xopen_source=no
+ else
+@@ -1999,7 +1831,7 @@
+   cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ 	 cat > conftest.$ac_ext <<EOF
+-#line 2003 "configure"
++#line 1835 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -2009,7 +1841,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_xopen_source=no
+ else
+@@ -2064,16 +1896,16 @@
+ 
+ 
+ echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
+-echo "configure:2068: checking if we should define _POSIX_C_SOURCE" >&5
++echo "configure:1900: checking if we should define _POSIX_C_SOURCE" >&5
+ if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ 	
+-echo "(line 2074) testing if the symbol is already defined go no further ..." 1>&5
++echo "(line 1906) testing if the symbol is already defined go no further ..." 1>&5
+ 
+ 	cat > conftest.$ac_ext <<EOF
+-#line 2077 "configure"
++#line 1909 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -2083,7 +1915,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_posix_c_source=no
+ else
+@@ -2105,7 +1937,7 @@
+ 	 esac
+ 	 if test "$cf_want_posix_source" = yes ; then
+ 		cat > conftest.$ac_ext <<EOF
+-#line 2109 "configure"
++#line 1941 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -2115,7 +1947,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -2126,15 +1958,15 @@
+ rm -f conftest*
+ 	 fi
+ 	 
+-echo "(line 2130) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "(line 1962) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+ 
+ 	 CFLAGS="$cf_trim_CFLAGS"
+ 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+ 	 
+-echo "(line 2135) testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "(line 1967) testing if the second compile does not leave our definition intact error ..." 1>&5
+ 
+ 	 cat > conftest.$ac_ext <<EOF
+-#line 2138 "configure"
++#line 1970 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int main() {
+@@ -2144,7 +1976,7 @@
+ #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -2178,6 +2010,347 @@
+ 	;;
+ esac
+ 
++echo $ac_n "checking for working const""... $ac_c" 1>&6
++echo "configure:2015: checking for working const" >&5
++if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
++else
++  cat > conftest.$ac_ext <<EOF
++#line 2020 "configure"
++#include "confdefs.h"
++
++int main() {
++
++/* Ultrix mips cc rejects this.  */
++typedef int charset[2]; const charset x;
++/* SunOS 4.1.1 cc rejects this.  */
++char const *const *ccp;
++char **p;
++/* NEC SVR4.0.2 mips cc rejects this.  */
++struct point {int x, y;};
++static struct point const zero = {0,0};
++/* AIX XL C 1.02.0.0 rejects this.
++   It does not let you subtract one const X* pointer from another in an arm
++   of an if-expression whose if-part is not a constant expression */
++const char *g = "string";
++ccp = &g + (g ? g-g : 0);
++/* HPUX 7.0 cc rejects these. */
++++ccp;
++p = (char**) ccp;
++ccp = (char const *const *) p;
++{ /* SCO 3.2v4 cc rejects this.  */
++  char *t;
++  char const *s = 0 ? (char *) 0 : (char const *) 0;
++
++  *t++ = 0;
++}
++{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
++  int x[] = {25, 17};
++  const int *foo = &x[0];
++  ++foo;
++}
++{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
++  typedef const int *iptr;
++  iptr p = 0;
++  ++p;
++}
++{ /* AIX XL C 1.02.0.0 rejects this saying
++     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
++  struct s { int j; const int *ap[3]; };
++  struct s *b; b->j = 5;
++}
++{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
++  const int foo = 10;
++}
++
++; return 0; }
++EOF
++if { (eval echo configure:2069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
++  ac_cv_c_const=yes
++else
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  ac_cv_c_const=no
++fi
++rm -f conftest*
++fi
++
++echo "$ac_t""$ac_cv_c_const" 1>&6
++if test $ac_cv_c_const = no; then
++  cat >> confdefs.h <<\EOF
++#define const 
++EOF
++
++fi
++
++
++echo $ac_n "checking for signal global datatype""... $ac_c" 1>&6
++echo "configure:2091: checking for signal global datatype" >&5
++if eval "test \"`echo '$''{'cf_cv_sig_atomic_t'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
++else
++  
++	for cf_type in \
++		"volatile sig_atomic_t" \
++		"sig_atomic_t" \
++		"int"
++	do
++	cat > conftest.$ac_ext <<EOF
++#line 2102 "configure"
++#include "confdefs.h"
++
++#include <sys/types.h>
++#include <signal.h>
++#include <stdio.h>
++
++extern $cf_type x;
++$cf_type x;
++static void handler(int sig)
++{
++	x = 5;
++}
++int main() {
++signal(SIGINT, handler);
++		 x = 1
++; return 0; }
++EOF
++if { (eval echo configure:2120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
++  cf_cv_sig_atomic_t=$cf_type
++else
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  cf_cv_sig_atomic_t=no
++fi
++rm -f conftest*
++		test "$cf_cv_sig_atomic_t" != no && break
++	done
++	
++fi
++
++echo "$ac_t""$cf_cv_sig_atomic_t" 1>&6
++test "$cf_cv_sig_atomic_t" != no && cat >> confdefs.h <<EOF
++#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
++EOF
++
++
++
++
++echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
++echo "configure:2144: checking if you want to see long compiling messages" >&5
++
++# Check whether --enable-echo or --disable-echo was given.
++if test "${enable_echo+set}" = set; then
++  enableval="$enable_echo"
++  test "$enableval" != no && enableval=yes
++  if test "$enableval" != "yes" ; then
++    
++    ECHO_LT='--silent'
++    ECHO_LD='@echo linking $@;'
++    RULE_CC='	@echo compiling $<'
++    SHOW_CC='	@echo compiling $@'
++    ECHO_CC='@'
++ 
++  else
++    
++    ECHO_LT=''
++    ECHO_LD=''
++    RULE_CC='# compiling'
++    SHOW_CC='# compiling'
++    ECHO_CC=''
++
++  fi
++else
++  enableval=yes 
++  
++    ECHO_LT=''
++    ECHO_LD=''
++    RULE_CC='# compiling'
++    SHOW_CC='# compiling'
++    ECHO_CC=''
++
++  
++fi
++
++echo "$ac_t""$enableval" 1>&6
++
++
++
++
++
++
++
++
++GCC_VERSION=none
++if test "$GCC" = yes ; then
++	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
++echo "configure:2191: checking version of $CC" >&5
++	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
++	test -z "$GCC_VERSION" && GCC_VERSION=unknown
++	echo "$ac_t""$GCC_VERSION" 1>&6
++fi
++
++
++if ( test "$GCC" = yes || test "$GXX" = yes )
++then
++echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
++echo "configure:2201: checking if you want to turn on gcc warnings" >&5
++
++# Check whether --enable-warnings or --disable-warnings was given.
++if test "${enable_warnings+set}" = set; then
++  enableval="$enable_warnings"
++  test "$enableval" != yes && enableval=no
++  if test "$enableval" != "no" ; then
++    with_warnings=yes 
++  else
++    with_warnings=no
++  fi
++else
++  enableval=no 
++  with_warnings=no
++  
++fi
++
++echo "$ac_t""$with_warnings" 1>&6
++if test "$with_warnings" = "yes"
++then
++	
++
++
++INTEL_COMPILER=no
++
++if test "$GCC" = yes ; then
++	case $host_os in
++	linux*|gnu*)
++		echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
++echo "configure:2230: checking if this is really Intel C compiler" >&5
++		cf_save_CFLAGS="$CFLAGS"
++		CFLAGS="$CFLAGS -no-gcc"
++		cat > conftest.$ac_ext <<EOF
++#line 2234 "configure"
++#include "confdefs.h"
++
++int main() {
++
++#ifdef __INTEL_COMPILER
++#else
++make an error
++#endif
++
++; return 0; }
++EOF
++if { (eval echo configure:2246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
++  INTEL_COMPILER=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++
++else
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++fi
++rm -f conftest*
++		CFLAGS="$cf_save_CFLAGS"
++		echo "$ac_t""$INTEL_COMPILER" 1>&6
++		;;
++	esac
++fi
++
++
++cat > conftest.$ac_ext <<EOF
++#line 2264 "configure"
++int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
++EOF
++
++if test "$INTEL_COMPILER" = yes
++then
++# The "-wdXXX" options suppress warnings:
++# remark #1419: external declaration in primary source file
++# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
++# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
++# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
++# remark #193: zero used for undefined preprocessing identifier
++# remark #593: variable "curs_sb_left_arrow" was set but never used
++# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
++# remark #869: parameter "tw" was never referenced
++# remark #981: operands are evaluated in unspecified order
++# warning #269: invalid format string conversion
++
++	echo "checking for $CC warning options" 1>&6
++echo "configure:2283: checking for $CC warning options" >&5
++	cf_save_CFLAGS="$CFLAGS"
++	EXTRA_CFLAGS="-Wall"
++	for cf_opt in  \
++		wd1419 \
++		wd1682 \
++		wd1683 \
++		wd1684 \
++		wd193 \
++		wd279 \
++		wd593 \
++		wd810 \
++		wd869 \
++		wd981
++	do
++		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
++		if { (eval echo configure:2299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
++			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++		fi
++	done
++	CFLAGS="$cf_save_CFLAGS"
++
++elif test "$GCC" = yes
++then
++	echo "checking for $CC warning options" 1>&6
++echo "configure:2309: checking for $CC warning options" >&5
++	cf_save_CFLAGS="$CFLAGS"
++	EXTRA_CFLAGS="-W -Wall"
++	cf_warn_CONST=""
++	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++	for cf_opt in \
++		Wbad-function-cast \
++		Wcast-align \
++		Wcast-qual \
++		Winline \
++		Wmissing-declarations \
++		Wmissing-prototypes \
++		Wnested-externs \
++		Wpointer-arith \
++		Wshadow \
++		Wstrict-prototypes \
++		Wundef $cf_warn_CONST 
++	do
++		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
++		if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
++			case $cf_opt in #(vi
++			Wcast-qual) #(vi
++				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
++				;;
++			Winline) #(vi
++				case $GCC_VERSION in
++				3.3*)
++					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
++
++					continue;;
++				esac
++				;;
++			esac
++			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++		fi
++	done
++	CFLAGS="$cf_save_CFLAGS"
++fi
++rm -f conftest*
++
++
++
++fi
++fi
++
+ 
+ 
+ 
+@@ -2263,7 +2436,7 @@
+ 	
+ 
+ echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
+-echo "configure:2267: checking for extra include directories" >&5
++echo "configure:2440: checking for extra include directories" >&5
+ if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2288,7 +2461,7 @@
+ 
+ 
+ echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
+-echo "configure:2292: checking if we have identified curses headers" >&5
++echo "configure:2465: checking if we have identified curses headers" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2301,14 +2474,14 @@
+ 	ncurses/ncurses.h
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 2305 "configure"
++#line 2478 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int main() {
+ initscr(); tgoto("?", 0,0)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -2331,17 +2504,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2335: checking for $ac_hdr" >&5
++echo "configure:2508: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 2340 "configure"
++#line 2513 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -2370,7 +2543,7 @@
+ 
+ 
+ echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+-echo "configure:2374: checking for terminfo header" >&5
++echo "configure:2547: checking for terminfo header" >&5
+ if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2387,7 +2560,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 2391 "configure"
++#line 2564 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -2397,7 +2570,7 @@
+ int x = auto_left_margin
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   
+ 	cf_cv_term_header="$cf_test"
+@@ -2446,7 +2619,7 @@
+ 
+ 	
+ echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
+-echo "configure:2450: checking for ncurses version" >&5
++echo "configure:2623: checking for ncurses version" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2472,7 +2645,7 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo configure:2476: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++	{ (eval echo configure:2649: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+ 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+@@ -2481,7 +2654,7 @@
+ 
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 2485 "configure"
++#line 2658 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -2502,10 +2675,10 @@
+ 	make an error
+ # endif
+ #endif
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }
+ EOF
+-if { (eval echo configure:2509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:2682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -2529,16 +2702,16 @@
+ 	
+ 
+ echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
+-echo "configure:2533: checking if we have identified curses libraries" >&5
++echo "configure:2706: checking if we have identified curses libraries" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 2535 "configure"
++#line 2708 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr(); tgoto("?", 0,0)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -2554,7 +2727,7 @@
+ case $host_os in #(vi
+ freebsd*) #(vi
+ 	echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+-echo "configure:2558: checking for tgoto in -lmytinfo" >&5
++echo "configure:2731: checking for tgoto in -lmytinfo" >&5
+ ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2562,7 +2735,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lmytinfo  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2566 "configure"
++#line 2739 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -2573,7 +2746,7 @@
+ tgoto()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2596,7 +2769,7 @@
+ 	;;
+ hpux10.*) #(vi
+ 	echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
+-echo "configure:2600: checking for initscr in -lcur_colr" >&5
++echo "configure:2773: checking for initscr in -lcur_colr" >&5
+ ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2604,7 +2777,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lcur_colr  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2608 "configure"
++#line 2781 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -2615,7 +2788,7 @@
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2638,7 +2811,7 @@
+   echo "$ac_t""no" 1>&6
+ 
+ 	echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
+-echo "configure:2642: checking for initscr in -lHcurses" >&5
++echo "configure:2815: checking for initscr in -lHcurses" >&5
+ ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2646,7 +2819,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lHcurses  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2650 "configure"
++#line 2823 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -2657,7 +2830,7 @@
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2710,12 +2883,12 @@
+ 	# Check for library containing tgoto.  Do this before curses library
+ 	# because it may be needed to link the test-case for initscr.
+ 	echo $ac_n "checking for tgoto""... $ac_c" 1>&6
+-echo "configure:2714: checking for tgoto" >&5
++echo "configure:2887: checking for tgoto" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 2719 "configure"
++#line 2892 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char tgoto(); below.  */
+@@ -2738,7 +2911,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_tgoto=yes"
+ else
+@@ -2759,7 +2932,7 @@
+ 		for cf_term_lib in $cf_check_list termcap termlib unknown
+ 		do
+ 			echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
+-echo "configure:2763: checking for tgoto in -l$cf_term_lib" >&5
++echo "configure:2936: checking for tgoto in -l$cf_term_lib" >&5
+ ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2767,7 +2940,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-l$cf_term_lib  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2771 "configure"
++#line 2944 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -2778,7 +2951,7 @@
+ tgoto()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2808,7 +2981,7 @@
+ 	for cf_curs_lib in $cf_check_list xcurses jcurses unknown
+ 	do
+ 		echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
+-echo "configure:2812: checking for initscr in -l$cf_curs_lib" >&5
++echo "configure:2985: checking for initscr in -l$cf_curs_lib" >&5
+ ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2816,7 +2989,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-l$cf_curs_lib  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2820 "configure"
++#line 2993 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -2827,7 +3000,7 @@
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2853,16 +3026,16 @@
+ 	LIBS="-l$cf_curs_lib $cf_save_LIBS"
+ 	if test "$cf_term_lib" = unknown ; then
+ 		echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
+-echo "configure:2857: checking if we can link with $cf_curs_lib library" >&5
++echo "configure:3030: checking if we can link with $cf_curs_lib library" >&5
+ 		cat > conftest.$ac_ext <<EOF
+-#line 2859 "configure"
++#line 3032 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -2878,16 +3051,16 @@
+ 		:
+ 	elif test "$cf_term_lib" != predefined ; then
+ 		echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
+-echo "configure:2882: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
++echo "configure:3055: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+ 		cat > conftest.$ac_ext <<EOF
+-#line 2884 "configure"
++#line 3057 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr(); tgoto((char *)0, 0, 0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_result=no
+ else
+@@ -2897,14 +3070,14 @@
+   
+ 			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+ 			cat > conftest.$ac_ext <<EOF
+-#line 2901 "configure"
++#line 3074 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -2934,7 +3107,7 @@
+ CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+ 
+ echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
+-echo "configure:2938: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "configure:3111: checking for $cf_ncuhdr_root header in include-path" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2945,7 +3118,7 @@
+ 	do
+ 		
+ 	cat > conftest.$ac_ext <<EOF
+-#line 2949 "configure"
++#line 3122 "configure"
+ #include "confdefs.h"
+ 
+ 
+@@ -2966,7 +3139,7 @@
+ 	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ncurses_h=$cf_header
+ 	
+@@ -2992,7 +3165,7 @@
+ else
+ 
+ echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
+-echo "configure:2996: checking for $cf_ncuhdr_root include-path" >&5
++echo "configure:3169: checking for $cf_ncuhdr_root include-path" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3087,14 +3260,14 @@
+ 				cf_save_CPPFLAGS="$CPPFLAGS"
+ 				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 3091 "configure"
++#line 3264 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -3121,7 +3294,7 @@
+ 		do
+ 			
+ 	cat > conftest.$ac_ext <<EOF
+-#line 3125 "configure"
++#line 3298 "configure"
+ #include "confdefs.h"
+ 
+ 
+@@ -3142,7 +3315,7 @@
+ 	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3146: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ncurses_h2=$cf_header
+ 	
+@@ -3189,14 +3362,14 @@
+ 				cf_save_CPPFLAGS="$CPPFLAGS"
+ 				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 3193 "configure"
++#line 3366 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -3249,7 +3422,7 @@
+ 
+ 
+ echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+-echo "configure:3253: checking for terminfo header" >&5
++echo "configure:3426: checking for terminfo header" >&5
+ if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3266,7 +3439,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 3270 "configure"
++#line 3443 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -3276,7 +3449,7 @@
+ int x = auto_left_margin
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:3453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   
+ 	cf_cv_term_header="$cf_test"
+@@ -3331,7 +3504,7 @@
+ 
+ 
+ echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
+-echo "configure:3335: checking for ncurses version" >&5
++echo "configure:3508: checking for ncurses version" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3357,7 +3530,7 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo configure:3361: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++	{ (eval echo configure:3534: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+ 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+@@ -3366,7 +3539,7 @@
+ 
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 3370 "configure"
++#line 3543 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -3387,10 +3560,10 @@
+ 	make an error
+ # endif
+ #endif
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }
+ EOF
+-if { (eval echo configure:3394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:3567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -3421,7 +3594,7 @@
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+ echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+-echo "configure:3425: checking for Gpm_Open in -lgpm" >&5
++echo "configure:3598: checking for Gpm_Open in -lgpm" >&5
+ ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3429,7 +3602,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lgpm  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3433 "configure"
++#line 3606 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -3440,7 +3613,7 @@
+ Gpm_Open()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3456,7 +3629,7 @@
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+   echo "$ac_t""yes" 1>&6
+   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
+-echo "configure:3460: checking for initscr in -lgpm" >&5
++echo "configure:3633: checking for initscr in -lgpm" >&5
+ ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3464,7 +3637,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lgpm  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3468 "configure"
++#line 3641 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -3475,7 +3648,7 @@
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3507,7 +3680,7 @@
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+ 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+-echo "configure:3511: checking for tgoto in -lmytinfo" >&5
++echo "configure:3684: checking for tgoto in -lmytinfo" >&5
+ ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3515,7 +3688,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lmytinfo  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3519 "configure"
++#line 3692 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -3526,7 +3699,7 @@
+ tgoto()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3560,12 +3733,12 @@
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+ 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
+-echo "configure:3564: checking for initscr" >&5
++echo "configure:3737: checking for initscr" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 3569 "configure"
++#line 3742 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr(); below.  */
+@@ -3588,7 +3761,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_initscr=yes"
+ else
+@@ -3608,17 +3781,17 @@
+ 
+ 		cf_save_LIBS="$LIBS"
+ 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
+-echo "configure:3612: checking for initscr in -l$cf_nculib_root" >&5
++echo "configure:3785: checking for initscr in -l$cf_nculib_root" >&5
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat > conftest.$ac_ext <<EOF
+-#line 3615 "configure"
++#line 3788 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+@@ -3687,17 +3860,17 @@
+ 			for cf_libdir in $cf_search
+ 			do
+ 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
+-echo "configure:3691: checking for -l$cf_nculib_root in $cf_libdir" >&5
++echo "configure:3864: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 3694 "configure"
++#line 3867 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+@@ -3728,7 +3901,7 @@
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+ 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
+-echo "configure:3732: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++echo "configure:3905: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+ 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
+@@ -3737,14 +3910,14 @@
+ 		fi
+ 	done
+ 	cat > conftest.$ac_ext <<EOF
+-#line 3741 "configure"
++#line 3914 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ else
+@@ -3770,14 +3943,14 @@
+ 	cf_cv_libtype=w
+ 	
+ echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
+-echo "configure:3774: checking for multibyte character support" >&5
++echo "configure:3947: checking for multibyte character support" >&5
+ if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ 	cf_save_LIBS="$LIBS"
+ 	cat > conftest.$ac_ext <<EOF
+-#line 3781 "configure"
++#line 3954 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -3785,7 +3958,7 @@
+ putwc(0,0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_cv_utf8_lib=yes
+ else
+@@ -3794,7 +3967,7 @@
+   rm -rf conftest*
+   LIBS="-lutf8 $LIBS"
+ 	 cat > conftest.$ac_ext <<EOF
+-#line 3798 "configure"
++#line 3971 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -3802,7 +3975,7 @@
+ putwc(0,0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_cv_utf8_lib=add-on
+ else
+@@ -3839,7 +4012,7 @@
+ CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+ 
+ echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
+-echo "configure:3843: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "configure:4016: checking for $cf_ncuhdr_root header in include-path" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3850,7 +4023,7 @@
+ 	do
+ 		
+ 	cat > conftest.$ac_ext <<EOF
+-#line 3854 "configure"
++#line 4027 "configure"
+ #include "confdefs.h"
+ 
+ 
+@@ -3879,7 +4052,7 @@
+ 	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:4056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ncurses_h=$cf_header
+ 	
+@@ -3905,7 +4078,7 @@
+ else
+ 
+ echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
+-echo "configure:3909: checking for $cf_ncuhdr_root include-path" >&5
++echo "configure:4082: checking for $cf_ncuhdr_root include-path" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4000,14 +4173,14 @@
+ 				cf_save_CPPFLAGS="$CPPFLAGS"
+ 				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 4004 "configure"
++#line 4177 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:4184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -4034,7 +4207,7 @@
+ 		do
+ 			
+ 	cat > conftest.$ac_ext <<EOF
+-#line 4038 "configure"
++#line 4211 "configure"
+ #include "confdefs.h"
+ 
+ 
+@@ -4055,7 +4228,7 @@
+ 	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:4232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_ncurses_h2=$cf_header
+ 	
+@@ -4102,14 +4275,14 @@
+ 				cf_save_CPPFLAGS="$CPPFLAGS"
+ 				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 4106 "configure"
++#line 4279 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:4286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -4162,7 +4335,7 @@
+ 
+ 
+ echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+-echo "configure:4166: checking for terminfo header" >&5
++echo "configure:4339: checking for terminfo header" >&5
+ if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4179,7 +4352,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 4183 "configure"
++#line 4356 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -4189,7 +4362,7 @@
+ int x = auto_left_margin
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:4366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   
+ 	cf_cv_term_header="$cf_test"
+@@ -4244,7 +4417,7 @@
+ 
+ 
+ echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
+-echo "configure:4248: checking for ncurses version" >&5
++echo "configure:4421: checking for ncurses version" >&5
+ if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4270,7 +4443,7 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo configure:4274: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
++	{ (eval echo configure:4447: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+ 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+@@ -4279,7 +4452,7 @@
+ 
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 4283 "configure"
++#line 4456 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -4300,10 +4473,10 @@
+ 	make an error
+ # endif
+ #endif
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }
+ EOF
+-if { (eval echo configure:4307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -4334,7 +4507,7 @@
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+ echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+-echo "configure:4338: checking for Gpm_Open in -lgpm" >&5
++echo "configure:4511: checking for Gpm_Open in -lgpm" >&5
+ ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4342,7 +4515,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lgpm  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4346 "configure"
++#line 4519 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4353,7 +4526,7 @@
+ Gpm_Open()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4369,7 +4542,7 @@
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+   echo "$ac_t""yes" 1>&6
+   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
+-echo "configure:4373: checking for initscr in -lgpm" >&5
++echo "configure:4546: checking for initscr in -lgpm" >&5
+ ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4377,7 +4550,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lgpm  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4381 "configure"
++#line 4554 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4388,7 +4561,7 @@
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4420,7 +4593,7 @@
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+ 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+-echo "configure:4424: checking for tgoto in -lmytinfo" >&5
++echo "configure:4597: checking for tgoto in -lmytinfo" >&5
+ ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4428,7 +4601,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lmytinfo  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4432 "configure"
++#line 4605 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4439,7 +4612,7 @@
+ tgoto()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4473,12 +4646,12 @@
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+ 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
+-echo "configure:4477: checking for initscr" >&5
++echo "configure:4650: checking for initscr" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 4482 "configure"
++#line 4655 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr(); below.  */
+@@ -4501,7 +4674,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_initscr=yes"
+ else
+@@ -4521,17 +4694,17 @@
+ 
+ 		cf_save_LIBS="$LIBS"
+ 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
+-echo "configure:4525: checking for initscr in -l$cf_nculib_root" >&5
++echo "configure:4698: checking for initscr in -l$cf_nculib_root" >&5
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat > conftest.$ac_ext <<EOF
+-#line 4528 "configure"
++#line 4701 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+@@ -4600,17 +4773,17 @@
+ 			for cf_libdir in $cf_search
+ 			do
+ 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
+-echo "configure:4604: checking for -l$cf_nculib_root in $cf_libdir" >&5
++echo "configure:4777: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat > conftest.$ac_ext <<EOF
+-#line 4607 "configure"
++#line 4780 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+@@ -4641,7 +4814,7 @@
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+ 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
+-echo "configure:4645: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++echo "configure:4818: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+ 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
+@@ -4650,14 +4823,14 @@
+ 		fi
+ 	done
+ 	cat > conftest.$ac_ext <<EOF
+-#line 4654 "configure"
++#line 4827 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header-curses.h}>
+ int main() {
+ initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ else
+@@ -4700,17 +4873,17 @@
+     case "`(uname -sr) 2>/dev/null`" in
+     "SunOS 5"*)
+       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
+-echo "configure:4704: checking whether -R must be followed by a space" >&5
++echo "configure:4877: checking whether -R must be followed by a space" >&5
+       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
+       cat > conftest.$ac_ext <<EOF
+-#line 4707 "configure"
++#line 4880 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_R_nospace=yes
+ else
+@@ -4726,14 +4899,14 @@
+       else
+ 	LIBS="$ac_xsave_LIBS -R $x_libraries"
+ 	cat > conftest.$ac_ext <<EOF
+-#line 4730 "configure"
++#line 4903 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_R_space=yes
+ else
+@@ -4765,7 +4938,7 @@
+     # libraries were built with DECnet support.  And karl@cs.umb.edu says
+     # the Alpha needs dnet_stub (dnet does not exist).
+     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
+-echo "configure:4769: checking for dnet_ntoa in -ldnet" >&5
++echo "configure:4942: checking for dnet_ntoa in -ldnet" >&5
+ ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4773,7 +4946,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-ldnet  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4777 "configure"
++#line 4950 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4784,7 +4957,7 @@
+ dnet_ntoa()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4806,7 +4979,7 @@
+ 
+     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
+-echo "configure:4810: checking for dnet_ntoa in -ldnet_stub" >&5
++echo "configure:4983: checking for dnet_ntoa in -ldnet_stub" >&5
+ ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4814,7 +4987,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-ldnet_stub  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4818 "configure"
++#line 4991 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4825,7 +4998,7 @@
+ dnet_ntoa()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4854,12 +5027,12 @@
+     # The nsl library prevents programs from opening the X display
+     # on Irix 5.2, according to dickey@clark.net.
+     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
+-echo "configure:4858: checking for gethostbyname" >&5
++echo "configure:5031: checking for gethostbyname" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 4863 "configure"
++#line 5036 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char gethostbyname(); below.  */
+@@ -4882,7 +5055,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_gethostbyname=yes"
+ else
+@@ -4903,7 +5076,7 @@
+ 
+     if test $ac_cv_func_gethostbyname = no; then
+       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+-echo "configure:4907: checking for gethostbyname in -lnsl" >&5
++echo "configure:5080: checking for gethostbyname in -lnsl" >&5
+ ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4911,7 +5084,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lnsl  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4915 "configure"
++#line 5088 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -4922,7 +5095,7 @@
+ gethostbyname()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4952,12 +5125,12 @@
+     # -lsocket must be given before -lnsl if both are needed.
+     # We assume that if connect needs -lnsl, so does gethostbyname.
+     echo $ac_n "checking for connect""... $ac_c" 1>&6
+-echo "configure:4956: checking for connect" >&5
++echo "configure:5129: checking for connect" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 4961 "configure"
++#line 5134 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char connect(); below.  */
+@@ -4980,7 +5153,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_connect=yes"
+ else
+@@ -5001,7 +5174,7 @@
+ 
+     if test $ac_cv_func_connect = no; then
+       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
+-echo "configure:5005: checking for connect in -lsocket" >&5
++echo "configure:5178: checking for connect in -lsocket" >&5
+ ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5009,7 +5182,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5013 "configure"
++#line 5186 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5020,7 +5193,7 @@
+ connect()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5044,12 +5217,12 @@
+ 
+     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
+     echo $ac_n "checking for remove""... $ac_c" 1>&6
+-echo "configure:5048: checking for remove" >&5
++echo "configure:5221: checking for remove" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 5053 "configure"
++#line 5226 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char remove(); below.  */
+@@ -5072,7 +5245,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_remove=yes"
+ else
+@@ -5093,7 +5266,7 @@
+ 
+     if test $ac_cv_func_remove = no; then
+       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
+-echo "configure:5097: checking for remove in -lposix" >&5
++echo "configure:5270: checking for remove in -lposix" >&5
+ ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5101,7 +5274,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lposix  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5105 "configure"
++#line 5278 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5112,7 +5285,7 @@
+ remove()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5136,12 +5309,12 @@
+ 
+     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+     echo $ac_n "checking for shmat""... $ac_c" 1>&6
+-echo "configure:5140: checking for shmat" >&5
++echo "configure:5313: checking for shmat" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 5145 "configure"
++#line 5318 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char shmat(); below.  */
+@@ -5164,7 +5337,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_shmat=yes"
+ else
+@@ -5185,7 +5358,7 @@
+ 
+     if test $ac_cv_func_shmat = no; then
+       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
+-echo "configure:5189: checking for shmat in -lipc" >&5
++echo "configure:5362: checking for shmat in -lipc" >&5
+ ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5193,7 +5366,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lipc  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5197 "configure"
++#line 5370 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5204,7 +5377,7 @@
+ shmat()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5237,7 +5410,7 @@
+   # libraries we check for below, so use a different variable.
+   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
+   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
+-echo "configure:5241: checking for IceConnectionNumber in -lICE" >&5
++echo "configure:5414: checking for IceConnectionNumber in -lICE" >&5
+ ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5245,7 +5418,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5249 "configure"
++#line 5422 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5256,7 +5429,7 @@
+ IceConnectionNumber()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5371,14 +5544,14 @@
+ 
+ if test "$cf_check_cflags" != "$CFLAGS" ; then
+ cat > conftest.$ac_ext <<EOF
+-#line 5375 "configure"
++#line 5548 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello world");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -5397,12 +5570,12 @@
+ 
+ 
+ echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
+-echo "configure:5401: checking for XOpenDisplay" >&5
++echo "configure:5574: checking for XOpenDisplay" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 5406 "configure"
++#line 5579 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char XOpenDisplay(); below.  */
+@@ -5425,7 +5598,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_XOpenDisplay=yes"
+ else
+@@ -5444,7 +5617,7 @@
+   echo "$ac_t""no" 1>&6
+ 
+ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
+-echo "configure:5448: checking for XOpenDisplay in -lX11" >&5
++echo "configure:5621: checking for XOpenDisplay in -lX11" >&5
+ ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5452,7 +5625,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5456 "configure"
++#line 5629 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5463,7 +5636,7 @@
+ XOpenDisplay()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5487,12 +5660,12 @@
+ 
+ 
+ echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
+-echo "configure:5491: checking for XtAppInitialize" >&5
++echo "configure:5664: checking for XtAppInitialize" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 5496 "configure"
++#line 5669 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char XtAppInitialize(); below.  */
+@@ -5515,7 +5688,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_XtAppInitialize=yes"
+ else
+@@ -5534,7 +5707,7 @@
+   echo "$ac_t""no" 1>&6
+ 
+ echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
+-echo "configure:5538: checking for XtAppInitialize in -lXt" >&5
++echo "configure:5711: checking for XtAppInitialize in -lXt" >&5
+ ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5542,7 +5715,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5546 "configure"
++#line 5719 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5553,7 +5726,7 @@
+ XtAppInitialize()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5591,7 +5764,7 @@
+ cf_x_athena=${cf_x_athena-Xaw}
+ 
+ echo $ac_n "checking if you want to link with Xaw 3d library""... $ac_c" 1>&6
+-echo "configure:5595: checking if you want to link with Xaw 3d library" >&5
++echo "configure:5768: checking if you want to link with Xaw 3d library" >&5
+ withval=
+ 
+ # Check whether --with-Xaw3d or --without-Xaw3d was given.
+@@ -5608,7 +5781,7 @@
+ fi
+ 
+ echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
+-echo "configure:5612: checking if you want to link with neXT Athena library" >&5
++echo "configure:5785: checking if you want to link with neXT Athena library" >&5
+ withval=
+ 
+ # Check whether --with-neXtaw or --without-neXtaw was given.
+@@ -5625,7 +5798,7 @@
+ fi
+ 
+ echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
+-echo "configure:5629: checking if you want to link with Athena-Plus library" >&5
++echo "configure:5802: checking if you want to link with Athena-Plus library" >&5
+ withval=
+ 
+ # Check whether --with-XawPlus or --without-XawPlus was given.
+@@ -5642,7 +5815,7 @@
+ fi
+ 
+ echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
+-echo "configure:5646: checking for XextCreateExtension in -lXext" >&5
++echo "configure:5819: checking for XextCreateExtension in -lXext" >&5
+ ac_lib_var=`echo Xext'_'XextCreateExtension | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5650,7 +5823,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lXext  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5654 "configure"
++#line 5827 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5661,7 +5834,7 @@
+ XextCreateExtension()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -5700,13 +5873,13 @@
+ 		if test $cf_path != default ; then
+ 			CPPFLAGS="-I$cf_path/include $cf_save"
+ 			echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
+-echo "configure:5704: checking for $cf_test in $cf_path" >&5
++echo "configure:5877: checking for $cf_test in $cf_path" >&5
+ 		else
+ 			echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
+-echo "configure:5707: checking for $cf_test" >&5
++echo "configure:5880: checking for $cf_test" >&5
+ 		fi
+ 		cat > conftest.$ac_ext <<EOF
+-#line 5710 "configure"
++#line 5883 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Intrinsic.h>
+@@ -5715,7 +5888,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:5892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -5762,21 +5935,21 @@
+ 			if test $cf_path != default ; then
+ 				LIBS="-L$cf_path/lib $cf_lib $LIBS"
+ 				echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
+-echo "configure:5766: checking for $cf_lib in $cf_path" >&5
++echo "configure:5939: checking for $cf_lib in $cf_path" >&5
+ 			else
+ 				LIBS="$cf_lib $LIBS"
+ 				echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
+-echo "configure:5770: checking for $cf_test in $cf_lib" >&5
++echo "configure:5943: checking for $cf_test in $cf_lib" >&5
+ 			fi
+ 			cat > conftest.$ac_ext <<EOF
+-#line 5773 "configure"
++#line 5946 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ $cf_test()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:5953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -5817,7 +5990,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:5821: checking for $ac_word" >&5
++echo "configure:5994: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_XCURSES_CONFIG'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -5946,14 +6119,14 @@
+ 
+ if test "$cf_check_cflags" != "$CFLAGS" ; then
+ cat > conftest.$ac_ext <<EOF
+-#line 5950 "configure"
++#line 6123 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello world");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -5971,7 +6144,7 @@
+ fi
+ 
+ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
+-echo "configure:5975: checking for XOpenDisplay in -lX11" >&5
++echo "configure:6148: checking for XOpenDisplay in -lX11" >&5
+ ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -5979,7 +6152,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 5983 "configure"
++#line 6156 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -5990,7 +6163,7 @@
+ XOpenDisplay()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -6011,14 +6184,14 @@
+ fi
+ 
+ echo $ac_n "checking for XCurses library""... $ac_c" 1>&6
+-echo "configure:6015: checking for XCurses library" >&5
++echo "configure:6188: checking for XCurses library" >&5
+ if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ LIBS="-lXCurses $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 6022 "configure"
++#line 6195 "configure"
+ #include "confdefs.h"
+ 
+ #include <xcurses.h>
+@@ -6028,7 +6201,7 @@
+ XCursesExit();
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_cv_lib_XCurses=yes
+ else
+@@ -6073,7 +6246,7 @@
+ *)
+ 	# look for curses-related libraries
+ 	echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
+-echo "configure:6077: checking for new_panel in -lpanel$cf_cv_libtype" >&5
++echo "configure:6250: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+ ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -6081,7 +6254,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lpanel$cf_cv_libtype  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 6085 "configure"
++#line 6258 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -6092,7 +6265,7 @@
+ new_panel()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -6120,7 +6293,7 @@
+ fi
+ 
+ 	echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
+-echo "configure:6124: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
++echo "configure:6297: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+ ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -6128,7 +6301,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lmenu$cf_cv_libtype  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 6132 "configure"
++#line 6305 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -6139,7 +6312,7 @@
+ menu_driver()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -6167,7 +6340,7 @@
+ fi
+ 
+ 	echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
+-echo "configure:6171: checking for form_driver in -lform$cf_cv_libtype" >&5
++echo "configure:6344: checking for form_driver in -lform$cf_cv_libtype" >&5
+ ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -6175,7 +6348,7 @@
+   ac_save_LIBS="$LIBS"
+ LIBS="-lform$cf_cv_libtype  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 6179 "configure"
++#line 6352 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -6186,7 +6359,7 @@
+ form_driver()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -6225,17 +6398,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:6229: checking for $ac_hdr" >&5
++echo "configure:6402: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6234 "configure"
++#line 6407 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:6239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:6412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -6265,12 +6438,12 @@
+ esac
+ 
+ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+-echo "configure:6269: checking return type of signal handlers" >&5
++echo "configure:6442: checking return type of signal handlers" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6274 "configure"
++#line 6447 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -6287,7 +6460,7 @@
+ int i;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_type_signal=void
+ else
+@@ -6307,12 +6480,12 @@
+ 
+ 
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:6311: checking for ANSI C header files" >&5
++echo "configure:6484: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6316 "configure"
++#line 6489 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -6320,7 +6493,7 @@
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:6324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:6497: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -6337,7 +6510,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 6341 "configure"
++#line 6514 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -6355,7 +6528,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 6359 "configure"
++#line 6532 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -6376,7 +6549,7 @@
+   :
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6380 "configure"
++#line 6553 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -6387,7 +6560,7 @@
+ exit (0); }
+ 
+ EOF
+-if { (eval echo configure:6391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:6564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   :
+ else
+@@ -6411,12 +6584,12 @@
+ fi
+ 
+ echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+-echo "configure:6415: checking whether time.h and sys/time.h may both be included" >&5
++echo "configure:6588: checking whether time.h and sys/time.h may both be included" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6420 "configure"
++#line 6593 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -6425,7 +6598,7 @@
+ struct tm *tp;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_header_time=yes
+ else
+@@ -6458,17 +6631,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:6462: checking for $ac_hdr" >&5
++echo "configure:6635: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6467 "configure"
++#line 6640 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:6472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:6645: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -6529,12 +6702,12 @@
+ 
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:6533: checking for $ac_func" >&5
++echo "configure:6706: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6538 "configure"
++#line 6711 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -6557,7 +6730,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -6582,8 +6755,14 @@
+ done
+ 
+ 
++echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6
++echo "configure:6760: checking for ncurses extended functions" >&5
++if eval "test \"`echo '$''{'cf_cv_ncurses_ext_funcs'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
++else
++  
+ cat > conftest.$ac_ext <<EOF
+-#line 6587 "configure"
++#line 6766 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -6601,30 +6780,81 @@
+ 	(void) use_default_colors ();
+ 	(void) use_extended_names (0);
+ 	(void) wresize (0, 0, 0);
+-	
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+-  cat >> confdefs.h <<\EOF
++  cf_cv_ncurses_ext_funcs=yes
++else
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  cf_cv_ncurses_ext_funcs=no
++fi
++rm -f conftest*
++
++fi
++
++echo "$ac_t""$cf_cv_ncurses_ext_funcs" 1>&6
++test "$cf_cv_ncurses_ext_funcs" != no && cat >> confdefs.h <<\EOF
+ #define NCURSES_EXT_FUNCS 1
+ EOF
+ 
++
++echo $ac_n "checking for wide-character functions""... $ac_c" 1>&6
++echo "configure:6806: checking for wide-character functions" >&5
++if eval "test \"`echo '$''{'cf_cv_widechar_funcs'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
++else
++  
++cat > conftest.$ac_ext <<EOF
++#line 6812 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header-curses.h}>
++int main() {
++
++	static wchar_t src_wchar[2];
++	static cchar_t dst_cchar;
++	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
++	
++; return 0; }
++EOF
++if { (eval echo configure:6824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++  rm -rf conftest*
++  cf_cv_widechar_funcs=yes
+ else
+   echo "configure: failed program was:" >&5
+   cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  cf_cv_widechar_funcs=no
+ fi
+ rm -f conftest*
+ 
++fi
++
++echo "$ac_t""$cf_cv_widechar_funcs" 1>&6
++if test "$cf_cv_widechar_funcs" != no ; then
++	cat >> confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 1
++EOF
++
++else
++	cat >> confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 0
++EOF
++
++fi
++
+ 
+ echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
+-echo "configure:6622: checking if sys/time.h works with sys/select.h" >&5
++echo "configure:6852: checking if sys/time.h works with sys/select.h" >&5
+ if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   
+ cat > conftest.$ac_ext <<EOF
+-#line 6628 "configure"
++#line 6858 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -6639,7 +6869,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_cv_sys_time_select=yes
+ else
+@@ -6660,7 +6890,7 @@
+ 
+ 
+ echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
+-echo "configure:6664: checking for function curses_version" >&5
++echo "configure:6894: checking for function curses_version" >&5
+ if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6669,7 +6899,7 @@
+   cf_cv_func_curses_version=unknown
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 6673 "configure"
++#line 6903 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -6677,11 +6907,11 @@
+ {
+ 	char temp[1024];
+ 	sprintf(temp, "%s\n", curses_version());
+-	exit(0);
++	${cf_cv_main_return-return}(0);
+ }
+ 
+ EOF
+-if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:6915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   cf_cv_func_curses_version=yes
+ 
+@@ -6706,7 +6936,7 @@
+ 
+ 
+ echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
+-echo "configure:6710: checking for alternate character set array" >&5
++echo "configure:6940: checking for alternate character set array" >&5
+ if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6715,7 +6945,7 @@
+ for name in acs_map _acs_map __acs_map _nc_acs_map
+ do
+ cat > conftest.$ac_ext <<EOF
+-#line 6719 "configure"
++#line 6949 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header-curses.h}>
+@@ -6726,7 +6956,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_cv_curses_acs_map=$name; break
+ else
+@@ -6747,7 +6977,7 @@
+ 
+ 
+ echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
+-echo "configure:6751: checking for wide alternate character set array" >&5
++echo "configure:6981: checking for wide alternate character set array" >&5
+ if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6756,7 +6986,7 @@
+ 	for name in wacs_map _wacs_map __wacs_map _nc_wacs
+ 	do
+ 	cat > conftest.$ac_ext <<EOF
+-#line 6760 "configure"
++#line 6990 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -6767,7 +6997,7 @@
+ $name['k'] = *WACS_PLUS
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:7001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   cf_cv_curses_wacs_map=$name
+ 	 break
+@@ -6783,9 +7013,9 @@
+ 
+ 
+ echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
+-echo "configure:6787: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
++echo "configure:7017: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 6789 "configure"
++#line 7019 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -6798,7 +7028,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7032: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -6826,9 +7056,9 @@
+ 
+ 
+ echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
+-echo "configure:6830: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
++echo "configure:7060: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 6832 "configure"
++#line 7062 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -6841,7 +7071,7 @@
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   cf_result=yes
+ else
+@@ -7018,9 +7248,9 @@
+ s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
+ s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
+ s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
+-s%@ECHO_LINK@%$ECHO_LINK%g
+ s%@LD@%$LD%g
+ s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
++s%@LDFLAGS_STATIC@%$LDFLAGS_STATIC%g
+ s%@LD_MODEL@%$LD_MODEL%g
+ s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
+ s%@LIBTOOL@%$LIBTOOL%g
+@@ -7040,6 +7270,11 @@
+ s%@EXEEXT@%$EXEEXT%g
+ s%@OBJEXT@%$OBJEXT%g
+ s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
++s%@ECHO_LT@%$ECHO_LT%g
++s%@ECHO_LD@%$ECHO_LD%g
++s%@RULE_CC@%$RULE_CC%g
++s%@SHOW_CC@%$SHOW_CC%g
++s%@ECHO_CC@%$ECHO_CC%g
+ s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
+ s%@X_CFLAGS@%$X_CFLAGS%g
+ s%@X_PRE_LIBS@%$X_PRE_LIBS%g
+@@ -7247,6 +7482,7 @@
+ # Extra initialization commands, if any
+ 
+ AWK="$AWK"
++ECHO_LD="$ECHO_LD"
+ 
+ EOF
+ cat >> $CONFIG_STATUS <<\EOF
+@@ -7258,7 +7494,7 @@
+ 	if test ! -d $srcdir/$cf_dir; then
+ 		continue
+ 	elif test -f $srcdir/$cf_dir/programs; then
+-		$AWK -f $srcdir/mk-test.awk ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
++		$AWK -f $srcdir/mk-test.awk ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
+ 	fi
+ done
+ 
+Index: test/configure.in
+Prereq:  1.58 
+--- ncurses-5.6/test/configure.in	2006-07-15 18:54:07.000000000 +0000
++++ ncurses-5.6-20071201/test/configure.in	2007-06-09 20:02:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ dnl                                                                          *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a  *
+ dnl copy of this software and associated documentation files (the            *
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1996, etc.
+ dnl
+-dnl $Id: configure.in,v 1.58 2006/07/15 18:54:07 tom Exp $
++dnl $Id: configure.in,v 1.63 2007/06/09 20:02:57 tom Exp $
+ dnl This is a simple configuration-script for the ncurses test programs that
+ dnl allows the test-directory to be separately configured against a reference
+ dnl system (i.e., sysvr4 curses)
+@@ -58,15 +58,15 @@
+ DFT_DEP_SUFFIX=""			AC_SUBST(DFT_DEP_SUFFIX)
+ DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`	AC_SUBST(DFT_OBJ_SUBDIR)
+ DFT_UPR_MODEL="NORMAL"			AC_SUBST(DFT_UPR_MODEL)
+-ECHO_LINK='@ echo linking $@ ... ;'	AC_SUBST(ECHO_LINK)
+ LD="ld"					AC_SUBST(LD)
+ LDFLAGS_SHARED=""			AC_SUBST(LDFLAGS_SHARED)
++LDFLAGS_STATIC=""			AC_SUBST(LDFLAGS_STATIC)
+ LD_MODEL=""				AC_SUBST(LD_MODEL)
+ LD_SHARED_OPTS=""			AC_SUBST(LD_SHARED_OPTS)
+ LIBTOOL=""				AC_SUBST(LIBTOOL)
+ LIB_CLEAN=""				AC_SUBST(LIB_CLEAN)
+ LIB_COMPILE=""				AC_SUBST(LIB_COMPILE)
+-LIB_LINK=""				AC_SUBST(LIB_LINK)
++LIB_LINK='${CC}'			AC_SUBST(LIB_LINK)
+ LINK_TESTS=""				AC_SUBST(LINK_TESTS)
+ LINT=lint				AC_SUBST(LINT)
+ LINT_OPTS=""				AC_SUBST(LINT_OPTS)
+@@ -85,9 +85,13 @@
+ AC_OBJEXT
+ 
+ CF_ANSI_CC_REQD
+-CF_ENABLE_WARNINGS
+ CF_GCC_ATTRIBUTES
+ CF_XOPEN_SOURCE
++AC_C_CONST
++CF_SIG_ATOMIC_T
++
++CF_DISABLE_ECHO
++CF_ENABLE_WARNINGS
+ 
+ CF_WITH_CURSES_DIR
+ 
+@@ -206,6 +210,7 @@
+ wresize \
+ )
+ 
++AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
+ AC_TRY_LINK([
+ #include <${cf_cv_ncurses_header-curses.h}>],
+ [
+@@ -220,8 +225,28 @@
+ 	(void) resizeterm (0, 0);
+ 	(void) use_default_colors ();
+ 	(void) use_extended_names (0);
+-	(void) wresize (0, 0, 0);
+-	],[AC_DEFINE(NCURSES_EXT_FUNCS)])
++	(void) wresize (0, 0, 0);],
++	[cf_cv_ncurses_ext_funcs=yes],
++	[cf_cv_ncurses_ext_funcs=no])
++])
++test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)
++
++AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
++AC_TRY_LINK([
++#include <${cf_cv_ncurses_header-curses.h}>],
++[
++	static wchar_t src_wchar[2];
++	static cchar_t dst_cchar;
++	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
++	],
++	[cf_cv_widechar_funcs=yes],
++	[cf_cv_widechar_funcs=no])
++])
++if test "$cf_cv_widechar_funcs" != no ; then
++	AC_DEFINE(USE_WIDEC_SUPPORT,1)
++else
++	AC_DEFINE(USE_WIDEC_SUPPORT,0)
++fi
+ 
+ CF_SYS_TIME_SELECT
+ CF_FUNC_CURSES_VERSION
+@@ -236,7 +261,7 @@
+ dnl ---------------------------------------------------------------------------
+ 
+ AC_OUTPUT(Makefile,[
+-CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LINK"], .)
++CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .)
+ 	cat >>Makefile <<TEST_EOF
+ 
+ # These rules are generated so we do not rely on suffix rules, which do not
+@@ -256,4 +281,5 @@
+ done
+ ],[
+ AWK="$AWK"
++ECHO_LD="$ECHO_LD"
+ ],cat)
+Index: test/demo_defkey.c
+Prereq:  1.16 
+--- ncurses-5.6/test/demo_defkey.c	2006-04-01 19:08:03.000000000 +0000
++++ ncurses-5.6-20071201/test/demo_defkey.c	2007-04-07 17:13:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: demo_defkey.c,v 1.16 2006/04/01 19:08:03 tom Exp $
++ * $Id: demo_defkey.c,v 1.17 2007/04/07 17:13:03 tom Exp $
+  *
+  * Demonstrate the define_key() function.
+  * Thomas Dickey - 2002/11/23
+@@ -143,13 +143,12 @@
+ 		code_name);
+     }
+     log_last_line(win);
++
+     if (vis_string != 0) {
+ 	free(vis_string);
+ 	vis_string = 0;
+     }
+ 
+-    if (vis_string != 0)
+-	free(vis_string);
+     vis_string = visible(new_string);
+     if ((rc = key_defined(new_string)) > 0) {
+ 	wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
+Index: test/demo_forms.c
+Prereq:  1.22 
+--- ncurses-5.6/test/demo_forms.c	2006-12-10 00:30:24.000000000 +0000
++++ ncurses-5.6-20071201/test/demo_forms.c	2007-07-21 17:45:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2003-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: demo_forms.c,v 1.22 2006/12/10 00:30:24 tom Exp $
++ * $Id: demo_forms.c,v 1.24 2007/07/21 17:45:09 tom Exp $
+  *
+  * Demonstrate a variety of functions from the form library.
+  * Thomas Dickey - 2003/4/26
+@@ -322,6 +322,10 @@
+     int pg;
+     WINDOW *also;
+ 
++#ifdef NCURSES_MOUSE_VERSION
++    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
++#endif
++
+     help_edit_field();
+ 
+     mvaddstr(4, 57, "Forms Entry Test");
+@@ -423,6 +427,10 @@
+ 	free_field(f[c]);
+     noraw();
+     nl();
++
++#ifdef NCURSES_MOUSE_VERSION
++    mousemask(0, (mmask_t *) 0);
++#endif
+ }
+ 
+ static void
+@@ -451,7 +459,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((ch = getopt(argc, argv, "dj:m:o:t:")) != EOF) {
++    while ((ch = getopt(argc, argv, "dj:m:o:t:")) != -1) {
+ 	switch (ch) {
+ 	case 'd':
+ 	    d_option = TRUE;
+Index: test/demo_menus.c
+Prereq:  1.20 
+--- ncurses-5.6/test/demo_menus.c	2006-06-17 17:39:37.000000000 +0000
++++ ncurses-5.6-20071201/test/demo_menus.c	2007-07-21 17:45:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005,2006 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2005-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: demo_menus.c,v 1.20 2006/06/17 17:39:37 tom Exp $
++ * $Id: demo_menus.c,v 1.21 2007/07/21 17:45:09 tom Exp $
+  *
+  * Demonstrate a variety of functions from the menu library.
+  * Thomas Dickey - 2005/4/9
+@@ -834,7 +834,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != EOF) {
++    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
+ 	switch (c) {
+ #if HAVE_RIPOFFLINE
+ 	case 'f':
+Index: test/demo_panels.c
+Prereq:  1.2 
+--- ncurses-5.6/test/demo_panels.c	2006-04-01 19:08:03.000000000 +0000
++++ ncurses-5.6-20071201/test/demo_panels.c	2007-08-11 16:34:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003,2006 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,17 +26,10 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: demo_panels.c,v 1.2 2006/04/01 19:08:03 tom Exp $
++ * $Id: demo_panels.c,v 1.28 2007/08/11 16:34:49 tom Exp $
+  *
+  * Demonstrate a variety of functions from the panel library.
+- * Thomas Dickey - 2003/4/26
+  */
+-/*
+-panel_above			-
+-panel_below			-
+-panel_hidden			-
+-replace_panel			-
+-*/
+ 
+ #include <test.priv.h>
+ 
+@@ -44,11 +37,771 @@
+ 
+ #include <panel.h>
+ 
++#define LAST_POS '@'
++#define TEMP_POS '>'
++
++typedef void (*InitPanel) (void);
++typedef void (*FillPanel) (PANEL *);
++
++static bool use_colors = FALSE;
++static bool unboxed = FALSE;
++static FILE *log_in;
++static FILE *log_out;
++
++static void
++close_input(void)
++{
++    if (log_in != 0) {
++	fclose(log_in);
++	log_in = 0;
++    }
++}
++
++static void
++close_output(void)
++{
++    if (log_out != 0) {
++	fclose(log_out);
++	log_out = 0;
++    }
++}
++
++static WINDOW *
++statusline(void)
++{
++    WINDOW *result = stdscr;
++
++    wmove(result, LINES - 1, 0);
++    wclrtoeol(result);
++    return result;
++}
++
++static void
++pflush(void)
++{
++    update_panels();
++    doupdate();
++}
++
++static void
++saywhat(NCURSES_CONST char *text)
++{
++    WINDOW *win = statusline();
++    if (text != 0 && *text != '\0') {
++	waddstr(win, text);
++	waddstr(win, "; ");
++    }
++    waddstr(win, "press any key to continue");
++}
++
++static void
++show_position(NCURSES_CONST char *text,
++	      NCURSES_CONST char *also,
++	      int which,
++	      int ypos,
++	      int xpos)
++{
++    WINDOW *win = statusline();
++
++    wprintw(win, "%s for panel %d now %d,%d%s", text, which, ypos, xpos, also);
++    wmove(stdscr, ypos, xpos);
++}
++
++static int
++get_position(NCURSES_CONST char *text,
++	     NCURSES_CONST char *also,
++	     int which,
++	     int *xpos,
++	     int *ypos)
++{
++    int result = 0;
++    int x1, y1;
++    char cmd;
++    WINDOW *win;
++
++    getyx(stdscr, y1, x1);
++    win = statusline();
++
++    show_position(text, also, which, y1, x1);
++
++    if (log_in != 0) {
++	if (fscanf(log_in, "%c%d,%d\n", &cmd, &y1, &x1) == 3) {
++	    switch (cmd) {
++	    case LAST_POS:
++		result = 1;
++		(void) wgetch(stdscr);
++		break;
++	    case TEMP_POS:
++		result = 0;
++		wrefresh(stdscr);
++		napms(100);
++		break;
++	    default:
++		result = -1;
++		break;
++	    }
++	} else {
++	    result = -1;
++	}
++    } else {
++
++	switch (wgetch(stdscr)) {
++	case QUIT:
++	case ESCAPE:
++	case ERR:
++	    result = -1;
++	    break;
++	case ' ':
++	    result = 1;
++	    break;
++	case KEY_UP:
++	    if (y1 > 0) {
++		--y1;
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_DOWN:
++	    if (y1 < getmaxy(stdscr)) {
++		++y1;
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_LEFT:
++	    if (x1 > 0) {
++		--x1;
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_RIGHT:
++	    if (x1 < getmaxx(stdscr)) {
++		++x1;
++	    } else {
++		beep();
++	    }
++	    break;
++	}
++    }
++
++    wmove(stdscr, y1, x1);
++    *ypos = y1;
++    *xpos = x1;
++
++    if (result >= 0) {
++	if (log_out)
++	    fprintf(log_out, "%c%d,%d\n",
++		    ((result > 0)
++		     ? LAST_POS
++		     : TEMP_POS),
++		    y1, x1);
++    }
++    return result;
++}
++
++static PANEL *
++mkpanel(short color, int rows, int cols, int tly, int tlx)
++{
++    WINDOW *win;
++    PANEL *pan = 0;
++    char *userdata = malloc(3);
++
++    if ((win = newwin(rows, cols, tly, tlx)) != 0) {
++	keypad(win, TRUE);
++	if ((pan = new_panel(win)) == 0) {
++	    delwin(win);
++	} else if (use_colors) {
++	    short fg = ((color == COLOR_BLUE)
++			? COLOR_WHITE
++			: COLOR_BLACK);
++	    short bg = color;
++
++	    init_pair(color, fg, bg);
++	    wbkgdset(win, (chtype) (COLOR_PAIR(color) | ' '));
++	} else if (!unboxed) {
++	    wbkgdset(win, A_BOLD | ' ');
++	}
++    }
++    sprintf(userdata, "p%d", color % 8);
++    set_panel_userptr(pan, (NCURSES_CONST void *) userdata);
++    return pan;
++}
++
++static void
++my_remove_panel(PANEL ** pans, int which)
++{
++    if (pans[which] != 0) {
++	PANEL *pan = pans[which];
++	WINDOW *win = panel_window(pan);
++	char *user = (char *) panel_userptr(pan);
++
++	free(user);
++	del_panel(pan);
++	delwin(win);
++
++	pans[which] = 0;
++    }
++}
++
++#define MIN(a,b) ((a) < (b) ? (a) : (b))
++#define ABS(a)   ((a) < 0 ? -(a) : (a))
++
++static void
++my_create_panel(PANEL ** pans, int which, FillPanel myFill)
++{
++    PANEL *pan = 0;
++    int code;
++    int pair = which;
++    short fg = (pair == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK;
++    short bg = pair;
++    int x0, y0, x1, y1;
++
++    init_pair(pair, fg, bg);
++
++    /* remove the old panel, if any */
++    my_remove_panel(pans, which);
++
++    /* get the position of one corner */
++    wmove(stdscr, getmaxy(stdscr) / 2, getmaxx(stdscr) / 2);
++    getyx(stdscr, y0, x0);
++    while ((code = get_position("First corner", "", which, &x0, &y0)) == 0) {
++	;
++    }
++
++    if (code > 0) {
++	char also[80];
++	sprintf(also, " (first %d,%d)", y0, x0);
++	/* get the position of the opposite corner */
++	while ((code = get_position("Opposite corner",
++				    also, which, &x1, &y1)) == 0) {
++	    ;
++	}
++
++	if (code > 0) {
++	    int tly = MIN(y0, y1);
++	    int tlx = MIN(x0, x1);
++	    pan = mkpanel(pair, ABS(y1 - y0) + 1, ABS(x1 - x0) + 1, tly, tlx);
++	    /* finish */
++	    myFill(pan);
++	    pans[which] = pan;
++	    pflush();
++	    wmove(stdscr, y1, x1);
++	}
++    }
++}
++
++static void
++my_move_panel(PANEL ** pans, int which, bool continuous)
++{
++    if (pans[which] != 0) {
++	int code;
++	int y0, x0;
++	int y1, x1;
++	WINDOW *win = panel_window(pans[which]);
++	char also[80];
++
++	getbegyx(win, y0, x0);
++	sprintf(also, " (start %d,%d)", y0, x0);
++	wmove(stdscr, y0, x0);
++	while ((code = get_position("Move panel", also, which, &x1, &y1)) == 0) {
++	    if (continuous) {
++		move_panel(pans[which], y1, x1);
++		pflush();
++	    }
++	}
++	if (code > 0) {
++	    move_panel(pans[which], y1, x1);
++	}
++    }
++}
++
++static void
++my_resize_panel(PANEL ** pans, int which, FillPanel myFill)
++{
++    if (pans[which] != 0) {
++	int code;
++	int y0, x0;
++	int y1, x1;
++	WINDOW *win = panel_window(pans[which]);
++	char also[80];
++
++	getbegyx(win, y0, x0);
++	sprintf(also, " (start %d,%d)", y0, x0);
++	wmove(stdscr, y0, x0);
++	while ((code = get_position("Resize panel",
++				    also, which, &x1, &y1)) == 0) {
++	    ;
++	}
++	if (code > 0) {
++	    WINDOW *next = newwin(ABS(y1 - y0) + 1,
++				  ABS(x1 - x0) + 1,
++				  MIN(y0, y1),
++				  MIN(x0, x1));
++	    if (next != 0) {
++		keypad(next, TRUE);
++		if (use_colors) {
++		    wbkgdset(next, (chtype) (COLOR_PAIR(which) | ' '));
++		} else if (!unboxed) {
++		    wbkgdset(next, A_BOLD | ' ');
++		}
++		replace_panel(pans[which], next);
++		myFill(pans[which]);
++		delwin(win);
++	    }
++	}
++    }
++}
++
++static void
++init_panel(void)
++{
++    register int y, x;
++
++    for (y = 0; y < LINES - 1; y++) {
++	for (x = 0; x < COLS; x++)
++	    wprintw(stdscr, "%d", (y + x) % 10);
++    }
++}
++
++static void
++fill_panel(PANEL * pan)
++{
++    WINDOW *win = panel_window(pan);
++    int num = ((const char *) panel_userptr(pan))[1];
++    int y, x;
++
++    wmove(win, 1, 1);
++    wprintw(win, "-pan%c-", num);
++    wclrtoeol(win);
++    box(win, 0, 0);
++    for (y = 2; y < getmaxy(win) - 1; y++) {
++	for (x = 1; x < getmaxx(win) - 1; x++) {
++	    wmove(win, y, x);
++	    waddch(win, UChar(num));
++	}
++    }
++}
++
++static void
++fill_unboxed(PANEL * pan)
++{
++    WINDOW *win = panel_window(pan);
++    int num = ((const char *) panel_userptr(pan))[1];
++    int y, x;
++
++    for (y = 0; y < getmaxy(win); y++) {
++	for (x = 0; x < getmaxx(win); x++) {
++	    wmove(win, y, x);
++	    waddch(win, UChar(num));
++	}
++    }
++}
++
++#if USE_WIDEC_SUPPORT
++static void
++make_fullwidth_digit(cchar_t *target, int digit)
++{
++    wchar_t source[2];
++
++    source[0] = digit + 0xff10;
++    source[1] = 0;
++    setcchar(target, source, A_NORMAL, 0, 0);
++}
++
++static void
++init_wide_panel(void)
++{
++    int digit;
++    cchar_t temp[10];
++
++    for (digit = 0; digit < 10; ++digit)
++	make_fullwidth_digit(&temp[digit], digit);
++
++    do {
++	int y, x;
++	getyx(stdscr, y, x);
++	digit = (y + x / 2) % 10;
++    } while (add_wch(&temp[digit]) != ERR);
++}
++
++static void
++fill_wide_panel(PANEL * pan)
++{
++    WINDOW *win = panel_window(pan);
++    int num = ((const char *) panel_userptr(pan))[1];
++    int y, x;
++
++    wmove(win, 1, 1);
++    wprintw(win, "-pan%c-", num);
++    wclrtoeol(win);
++    box(win, 0, 0);
++    for (y = 2; y < getmaxy(win) - 1; y++) {
++	for (x = 1; x < getmaxx(win) - 1; x++) {
++	    wmove(win, y, x);
++	    waddch(win, UChar(num));
++	}
++    }
++}
++#endif
++
++#define MAX_PANELS 5
++
++static int
++which_panel(PANEL * px[MAX_PANELS + 1], PANEL * pan)
++{
++    int result = 0;
++    int j;
++
++    for (j = 1; j <= MAX_PANELS; ++j) {
++	if (px[j] == pan) {
++	    result = j;
++	    break;
++	}
++    }
++    return result;
++}
++
++static void
++show_panels(PANEL * px[MAX_PANELS + 1])
++{
++    static const char *help[] =
++    {
++	"",
++	"Commands are letter/digit pairs.  Digits are the panel number.",
++	"",
++	"  b - put the panel on the bottom of the stack",
++	"  c - create the panel",
++	"  d - delete the panel",
++	"  h - hide the panel",
++	"  m - move the panel (M for continuous move)",
++	"  r - resize the panel",
++	"  s - show the panel",
++	"  b - put the panel on the top of the stack"
++    };
++
++    struct {
++	bool valid;
++	bool hidden;
++	PANEL *above;
++	PANEL *below;
++    } table[MAX_PANELS + 1];
++
++    WINDOW *win;
++    PANEL *pan;
++    int j;
++
++    for (j = 1; j <= MAX_PANELS; ++j) {
++	table[j].valid = (px[j] != 0);
++	if (table[j].valid) {
++	    table[j].hidden = panel_hidden(px[j]);
++	    table[j].above = panel_above(px[j]);
++	    table[j].below = panel_below(px[j]);
++	}
++    }
++
++    if ((win = newwin(LINES - 1, COLS, 0, 0)) != 0) {
++	keypad(win, TRUE);
++	if ((pan = new_panel(win)) != 0) {
++	    werase(win);
++	    mvwprintw(win, 0, 0, "Panels:\n");
++	    for (j = 1; j <= MAX_PANELS; ++j) {
++		if (table[j].valid) {
++		    wprintw(win, " %d:", j);
++		    if (table[j].hidden) {
++			waddstr(win, " hidden");
++		    } else {
++			if (table[j].above) {
++			    wprintw(win, " above %d",
++				    which_panel(px, table[j].above));
++			}
++			if (table[j].below) {
++			    wprintw(win, "%s below %d",
++				    table[j].above ? "," : "",
++				    which_panel(px, table[j].below));
++			}
++		    }
++		    waddch(win, '\n');
++		}
++	    }
++	    for (j = 0; j < (int) SIZEOF(help); ++j) {
++		if (wprintw(win, "%s\n", help[j]) == ERR)
++		    break;
++	    }
++	    wgetch(win);
++	    del_panel(pan);
++	    pflush();
++	}
++	delwin(win);
++    }
++}
++
++#define wrapper(func) \
++static int my_##func(PANEL *pan) \
++{ \
++    int code = ERR; \
++    if (pan != 0) { \
++	code = func(pan); \
++    } \
++    return code; \
++}
++/* *INDENT-OFF* */
++wrapper(bottom_panel)
++wrapper(hide_panel)
++wrapper(show_panel)
++wrapper(top_panel)
++/* *INDENT-ON* */
++
++static void
++do_panel(PANEL * px[MAX_PANELS + 1],
++	 NCURSES_CONST char *cmd,
++	 FillPanel myFill)
++{
++    int which = cmd[1] - '0';
++
++    if (which < 1 || which > MAX_PANELS) {
++	beep();
++	return;
++    }
++
++    if (log_in != 0) {
++	pflush();
++    }
++
++    saywhat(cmd);
++    switch (*cmd) {
++    case 'b':
++	my_bottom_panel(px[which]);
++	break;
++    case 'c':
++	my_create_panel(px, which, myFill);
++	break;
++    case 'd':
++	my_remove_panel(px, which);
++	break;
++    case 'h':
++	my_hide_panel(px[which]);
++	break;
++    case 'm':
++	my_move_panel(px, which, FALSE);
++	break;
++    case 'M':
++	my_move_panel(px, which, TRUE);
++	break;
++    case 'r':
++	my_resize_panel(px, which, myFill);
++	break;
++    case 's':
++	my_show_panel(px[which]);
++	break;
++    case 't':
++	my_top_panel(px[which]);
++	break;
++    }
++}
++
++static bool
++ok_letter(int ch)
++{
++    return isalpha(UChar(ch)) && strchr("bcdhmMrst", ch) != 0;
++}
++
++static bool
++ok_digit(int ch)
++{
++    return isdigit(UChar(ch)) && (ch >= '1') && (ch - '0' <= MAX_PANELS);
++}
++
++/*
++ * A command consists of one or more letter/digit pairs separated by a space.
++ * Digits are limited to 1..MAX_PANELS.
++ *
++ * End the command with a newline.  Reject other characters.
++ */
++static bool
++get_command(PANEL * px[MAX_PANELS + 1], char *buffer, int limit)
++{
++    int length = 0;
++    int y0, x0;
++    int c0, ch;
++    WINDOW *win;
++
++    getyx(stdscr, y0, x0);
++    win = statusline();
++    waddstr(win, "Command:");
++    buffer[length = 0] = '\0';
++
++    if (log_in != 0) {
++	if (fgets(buffer, limit - 3, log_in) != 0) {
++	    length = strlen(buffer);
++	    while (length > 0 && isspace(buffer[length - 1]))
++		buffer[--length] = '\0';
++	    waddstr(win, buffer);
++	} else {
++	    close_input();
++	}
++	(void) wgetch(win);
++    } else {
++	c0 = 0;
++	for (;;) {
++	    ch = wgetch(win);
++	    if (ch == ERR || ch == QUIT || ch == ESCAPE) {
++		buffer[0] = '\0';
++		break;
++	    } else if (ch == CTRL('L')) {
++		wrefresh(curscr);
++	    } else if (ch == '\n' || ch == KEY_ENTER) {
++		break;
++	    } else if (ch == '?') {
++		show_panels(px);
++	    } else if (length + 3 < limit) {
++		if (ch >= KEY_MIN) {
++		    beep();
++		} else if (ok_letter(UChar(ch))) {
++		    if (isalpha(UChar(c0))) {
++			beep();
++		    } else if (isdigit(UChar(c0))) {
++			wprintw(win, " %c", ch);
++			buffer[length++] = ' ';
++			buffer[length++] = c0 = ch;
++		    } else {
++			wprintw(win, "%c", ch);
++			buffer[length++] = c0 = ch;
++		    }
++		} else if (ok_digit(ch)) {
++		    if (isalpha(UChar(c0))) {
++			wprintw(win, "%c", ch);
++			buffer[length++] = c0 = ch;
++		    } else {
++			beep();
++		    }
++		} else if (ch == ' ') {
++		    if (isdigit(UChar(c0))) {
++			wprintw(win, "%c", ch);
++			buffer[length++] = c0 = ch;
++		    } else {
++			beep();
++		    }
++		} else {
++		    beep();
++		}
++	    } else {
++		beep();
++	    }
++	}
++    }
++
++    wmove(stdscr, y0, x0);
++
++    buffer[length] = '\0';
++    if (log_out && length) {
++	fprintf(log_out, "%s\n", buffer);
++    }
++    return (length != 0);
++}
++
++static void
++demo_panels(InitPanel myInit, FillPanel myFill)
++{
++    int itmp;
++    PANEL *px[MAX_PANELS + 1];
++    char buffer[BUFSIZ];
++
++    scrollok(stdscr, FALSE);	/* we don't want stdscr to scroll! */
++    refresh();
++
++    myInit();
++    memset(px, 0, sizeof(px));
++
++    while (get_command(px, buffer, sizeof(buffer))) {
++	int limit = strlen(buffer);
++	for (itmp = 0; itmp < limit; itmp += 3) {
++	    do_panel(px, buffer + itmp, myFill);
++	}
++	pflush();
++    }
++#if NO_LEAKS
++    for (itmp = 1; itmp <= MAX_PANELS; ++itmp) {
++	my_remove_panel(px, itmp);
++    }
++#endif
++}
++
++static void
++usage(void)
++{
++    static const char *const tbl[] =
++    {
++	"Usage: demo_panels [options]"
++	,""
++	,"Options:"
++	,"  -i file  read commands from file"
++	,"  -o file  record commands in file"
++	,"  -m       do not use colors"
++#if USE_WIDEC_SUPPORT
++	,"  -w       use wide-characters in panels and background"
++#endif
++	,"  -x       do not enclose panels in boxes"
++    };
++    size_t n;
++    for (n = 0; n < SIZEOF(tbl); n++)
++	fprintf(stderr, "%s\n", tbl[n]);
++    ExitProgram(EXIT_FAILURE);
++}
++
+ int
+-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++main(int argc, char *argv[])
+ {
+-    printf("Not implemented - demo for panel library\n");
+-    return EXIT_SUCCESS;
++    int c;
++    bool monochrome = FALSE;
++    InitPanel myInit = init_panel;
++    FillPanel myFill = fill_panel;
++
++    setlocale(LC_ALL, "");
++
++    while ((c = getopt(argc, argv, "i:o:mwx")) != -1) {
++	switch (c) {
++	case 'i':
++	    log_in = fopen(optarg, "r");
++	    break;
++	case 'o':
++	    log_out = fopen(optarg, "w");
++	    break;
++	case 'm':
++	    monochrome = TRUE;
++	    break;
++#if USE_WIDEC_SUPPORT
++	case 'w':
++	    myInit = init_wide_panel;
++	    myFill = fill_wide_panel;
++	    break;
++#endif
++	case 'x':
++	    unboxed = TRUE;
++	    break;
++	default:
++	    usage();
++	}
++    }
++    if (unboxed)
++	myFill = fill_unboxed;
++
++    initscr();
++    cbreak();
++    noecho();
++    keypad(stdscr, TRUE);
++
++    use_colors = monochrome ? FALSE : has_colors();
++    if (use_colors)
++	start_color();
++
++    demo_panels(myInit, myFill);
++    endwin();
++
++    close_input();
++    close_output();
++
++    ExitProgram(EXIT_SUCCESS);
+ }
+ #else
+ int
+Index: test/demo_termcap.c
+Prereq:  1.5 
+--- ncurses-5.6/test/demo_termcap.c	2006-05-06 19:06:36.000000000 +0000
++++ ncurses-5.6-20071201/test/demo_termcap.c	2007-02-03 18:51:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005,2006 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2005-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,10 +29,11 @@
+ /*
+  * Author: Thomas E. Dickey
+  *
+- * $Id: demo_termcap.c,v 1.5 2006/05/06 19:06:36 tom Exp $
++ * $Id: demo_termcap.c,v 1.6 2007/02/03 18:51:23 tom Exp $
+  *
+  * A simple demo of the termcap interface.
+  */
++#define USE_TINFO
+ #include <test.priv.h>
+ 
+ #if HAVE_TGETENT
+Index: test/ditto.c
+Prereq:  1.5 
+--- ncurses-5.6/test/ditto.c	2005-04-16 16:35:49.000000000 +0000
++++ ncurses-5.6-20071201/test/ditto.c	2007-09-01 21:10:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /*
+  * Author: Thomas E. Dickey <dickey@clark.net> 1998
+  *
+- * $Id: ditto.c,v 1.5 2005/04/16 16:35:49 tom Exp $
++ * $Id: ditto.c,v 1.8 2007/09/01 21:10:38 tom Exp $
+  *
+  * The program illustrates how to set up multiple screens from a single
+  * program.  Invoke the program by specifying another terminal on the same
+@@ -72,19 +72,32 @@
+ 	errno = ENOTTY;
+ 	failed(path);
+     }
+-    fp = fopen(path, "a+");
++    fp = fopen(path, "r+");
+     if (fp == 0)
+ 	failed(path);
+     printf("opened %s\n", path);
+     return fp;
+ }
+ 
++static void
++show_ditto(DITTO * data, int count, int which, int ch)
++{
++    int n;
++
++    for (n = 0; n < count; n++) {
++	set_term(data[n].screen);
++	addch(UChar(ch));
++	refresh();
++    }
++    set_term(data[which].screen);
++}
++
+ int
+ main(int argc GCC_UNUSED,
+      char *argv[]GCC_UNUSED)
+ {
+     int j;
+-    int active_tty = 0;
++    int count;
+     DITTO *data;
+ 
+     if (argc <= 1)
+@@ -105,7 +118,6 @@
+      * Set up the screens.
+      */
+     for (j = 0; j < argc; j++) {
+-	active_tty++;
+ 	data[j].screen = newterm((char *) 0,	/* assume $TERM is the same */
+ 				 data[j].output,
+ 				 data[j].input);
+@@ -114,25 +126,27 @@
+ 	cbreak();
+ 	noecho();
+ 	scrollok(stdscr, TRUE);
++	nodelay(stdscr, TRUE);
+     }
+ 
+     /*
+      * Loop, reading characters from any of the inputs and writing to all
+      * of the screens.
+      */
+-    for (;;) {
++    for (count = 0;; ++count) {
+ 	int ch;
+-	set_term(data[0].screen);
++	int which = (count % argc);
++
++	set_term(data[which].screen);
++	napms(20);
+ 	ch = getch();
+-	if (ch == ERR)
++	if (ch == ERR) {
++	    /* echochar('.'); */
+ 	    continue;
+-	if (ch == 4)
+-	    break;
+-	for (j = 0; j < argc; j++) {
+-	    set_term(data[j].screen);
+-	    addch(UChar(ch));
+-	    refresh();
+ 	}
++	if (ch == CTRL('D'))
++	    break;
++	show_ditto(data, argc, which, ch);
+     }
+ 
+     /*
+Index: test/dots.c
+Prereq:  1.15 
+--- ncurses-5.6/test/dots.c	2006-11-04 19:54:42.000000000 +0000
++++ ncurses-5.6-20071201/test/dots.c	2007-02-03 18:51:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,10 +29,11 @@
+ /*
+  * Author: Thomas E. Dickey <dickey@clark.net> 1999
+  *
+- * $Id: dots.c,v 1.15 2006/11/04 19:54:42 tom Exp $
++ * $Id: dots.c,v 1.16 2007/02/03 18:51:23 tom Exp $
+  *
+  * A simple demo of the terminfo interface.
+  */
++#define USE_TINFO
+ #include <test.priv.h>
+ 
+ #if HAVE_SETUPTERM
+Index: test/dots_mvcur.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/dots_mvcur.c	2007-06-02 20:01:32.000000000 +0000
+@@ -0,0 +1,171 @@
++/****************************************************************************
++ * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc.              *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++
++/*
++ * Author: Thomas E. Dickey - 2007
++ *
++ * $Id: dots_mvcur.c,v 1.1 2007/06/02 20:01:32 tom Exp $
++ *
++ * A simple demo of the terminfo interface, and mvcur.
++ */
++#define USE_TINFO
++#include <test.priv.h>
++
++#if HAVE_SETUPTERM
++
++#include <time.h>
++
++#define valid(s) ((s != 0) && s != (char *)-1)
++
++static bool interrupted = FALSE;
++static long total_chars = 0;
++static time_t started;
++
++static int
++outc(int c)
++{
++    if (interrupted) {
++	char tmp = c;
++	write(STDOUT_FILENO, &tmp, 1);
++    } else {
++	putc(c, stdout);
++    }
++    return 0;
++}
++
++static bool
++outs(char *s)
++{
++    if (valid(s)) {
++	tputs(s, 1, outc);
++	return TRUE;
++    }
++    return FALSE;
++}
++
++static void
++cleanup(void)
++{
++    outs(exit_attribute_mode);
++    if (!outs(orig_colors))
++	outs(orig_pair);
++    outs(clear_screen);
++    outs(cursor_normal);
++
++    printf("\n\n%ld total chars, rate %.2f/sec\n",
++	   total_chars,
++	   ((double) (total_chars) / (time((time_t *) 0) - started)));
++}
++
++static void
++onsig(int n GCC_UNUSED)
++{
++    interrupted = TRUE;
++}
++
++static float
++ranf(void)
++{
++    long r = (rand() & 077777);
++    return ((float) r / 32768.);
++}
++
++int
++main(
++	int argc GCC_UNUSED,
++	char *argv[]GCC_UNUSED)
++{
++    int x0 = 1, y0 = 1;
++    int x, y, z, p;
++    float r;
++    float c;
++    SCREEN *sp;
++
++    CATCHALL(onsig);
++
++    srand((unsigned) time(0));
++    sp = newterm((char *) 0, stdout, stdin);
++    outs(clear_screen);
++    outs(cursor_home);
++    outs(cursor_invisible);
++    if (max_colors > 1) {
++	if (!valid(set_a_foreground)
++	    || !valid(set_a_background)
++	    || (!valid(orig_colors) && !valid(orig_pair)))
++	    max_colors = -1;
++    }
++
++    r = (float) (lines - 4);
++    c = (float) (columns - 4);
++    started = time((time_t *) 0);
++
++    while (!interrupted) {
++	x = (int) (c * ranf()) + 2;
++	y = (int) (r * ranf()) + 2;
++	p = (ranf() > 0.9) ? '*' : ' ';
++
++	if (mvcur(y0, x0, y, x) != ERR) {
++	    x0 = x;
++	    y0 = y;
++	}
++
++	if (max_colors > 0) {
++	    z = (int) (ranf() * max_colors);
++	    if (ranf() > 0.01) {
++		tputs(tparm2(set_a_foreground, z), 1, outc);
++	    } else {
++		tputs(tparm2(set_a_background, z), 1, outc);
++		napms(1);
++	    }
++	} else if (valid(exit_attribute_mode)
++		   && valid(enter_reverse_mode)) {
++	    if (ranf() <= 0.01) {
++		outs((ranf() > 0.6)
++		     ? enter_reverse_mode
++		     : exit_attribute_mode);
++		napms(1);
++	    }
++	}
++	outc(p);
++	fflush(stdout);
++	++total_chars;
++    }
++    cleanup();
++    endwin();
++    delscreen(sp);
++    ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(int argc GCC_UNUSED,
++     char *argv[]GCC_UNUSED)
++{
++    fprintf(stderr, "This program requires terminfo\n");
++    exit(EXIT_FAILURE);
++}
++#endif
+Index: test/echochar.c
+Prereq:  1.3 
+--- ncurses-5.6/test/echochar.c	2006-12-03 00:14:29.000000000 +0000
++++ ncurses-5.6-20071201/test/echochar.c	2007-07-21 17:41:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: echochar.c,v 1.3 2006/12/03 00:14:29 tom Exp $
++ * $Id: echochar.c,v 1.5 2007/07/21 17:41:55 tom Exp $
+  *
+  * Demonstrate the echochar function (compare to dots.c).
+  * Thomas Dickey - 2006/11/4
+@@ -89,7 +89,7 @@
+     int last_fg = 0;
+     int last_bg = 0;
+ 
+-    while ((ch = getopt(argc, argv, "r")) != EOF) {
++    while ((ch = getopt(argc, argv, "r")) != -1) {
+ 	switch (ch) {
+ 	case 'r':
+ 	    opt_r = TRUE;
+@@ -107,7 +107,7 @@
+     if (use_colors) {
+ 	start_color();
+ 	if (COLOR_PAIRS > 0) {
+-	    my_pairs = calloc(COLOR_PAIRS, sizeof(*my_pairs));
++	    my_pairs = calloc((unsigned) COLOR_PAIRS, sizeof(*my_pairs));
+ 	}
+ 	use_colors = (my_pairs != 0);
+     }
+@@ -146,10 +146,10 @@
+ 	    }
+ 	}
+ 	if (opt_r) {
+-	    addch(p);
++	    addch(UChar(p));
+ 	    refresh();
+ 	} else {
+-	    echochar(p);
++	    echochar(UChar(p));
+ 	}
+ 	++total_chars;
+     }
+Index: test/gdc.c
+Prereq:  1.28 
+--- ncurses-5.6/test/gdc.c	2006-05-20 15:37:44.000000000 +0000
++++ ncurses-5.6-20071201/test/gdc.c	2007-07-21 17:45:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -33,7 +33,7 @@
+  * modified 10-18-89 for curses (jrl)
+  * 10-18-89 added signal handling
+  *
+- * $Id: gdc.c,v 1.28 2006/05/20 15:37:44 tom Exp $
++ * $Id: gdc.c,v 1.29 2007/07/21 17:45:09 tom Exp $
+  */
+ 
+ #include <test.priv.h>
+@@ -171,7 +171,7 @@
+ 
+     CATCHALL(sighndl);
+ 
+-    while ((k = getopt(argc, argv, "sn")) != EOF) {
++    while ((k = getopt(argc, argv, "sn")) != -1) {
+ 	switch (k) {
+ 	case 's':
+ 	    scrol = TRUE;
+Index: test/hashtest.c
+Prereq:  1.26 
+--- ncurses-5.6/test/hashtest.c	2006-05-20 16:02:16.000000000 +0000
++++ ncurses-5.6-20071201/test/hashtest.c	2007-07-21 17:45:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -30,7 +30,7 @@
+  *
+  * Generate timing statistics for vertical-motion optimization.
+  *
+- * $Id: hashtest.c,v 1.26 2006/05/20 16:02:16 tom Exp $
++ * $Id: hashtest.c,v 1.27 2007/07/21 17:45:09 tom Exp $
+  */
+ 
+ #ifdef TRACE
+@@ -190,7 +190,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((c = getopt(argc, argv, "cf:h:l:norsx")) != EOF) {
++    while ((c = getopt(argc, argv, "cf:h:l:norsx")) != -1) {
+ 	switch (c) {
+ 	case 'c':
+ 	    continuous = TRUE;
+Index: test/inch_wide.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/inch_wide.c	2007-07-21 18:37:38.000000000 +0000
+@@ -0,0 +1,279 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: inch_wide.c,v 1.6 2007/07/21 18:37:38 tom Exp $
++ */
++/*
++       int in_wch(cchar_t *wcval);
++       int mvin_wch(int y, int x, cchar_t *wcval);
++       int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval);
++       int win_wch(WINDOW *win, cchar_t *wcval);
++       int in_wchstr(cchar_t *wchstr);
++       int in_wchnstr(cchar_t *wchstr, int n);
++       int win_wchstr(WINDOW *win, cchar_t *wchstr);
++       int win_wchnstr(WINDOW *win, cchar_t *wchstr, int n);
++       int mvin_wchstr(int y, int x, cchar_t *wchstr);
++       int mvin_wchnstr(int y, int x, cchar_t *wchstr, int n);
++       int mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wchstr);
++       int mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wchstr, int n);
++*/
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++#define BASE_Y 7
++#define MAX_COLS 1024
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static int
++test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int j;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int limit;
++    cchar_t ch;
++    cchar_t text[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((j = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(j)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (j) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1)
++		txt_y++;
++	    else
++		beep();
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y)
++		txt_y--;
++	    else
++		beep();
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0)
++		txt_x--;
++	    else
++		beep();
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1)
++		txt_x++;
++	    else
++		beep();
++	    break;
++	case 'w':
++	    test_inchs(level + 1, argv, chrwin, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++
++	mvwprintw(chrwin, 0, 0, "char:");
++	wclrtoeol(chrwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++	    if (win_wch(txtwin, &ch) != ERR) {
++		if (wadd_wch(chrwin, &ch) != ERR) {
++		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
++			if (mvwin_wch(txtwin, txt_y, j, &ch) != ERR) {
++			    if (wadd_wch(chrwin, &ch) == ERR) {
++				break;
++			    }
++			} else {
++			    break;
++			}
++		    }
++		}
++	    }
++	} else {
++	    move(txt_y, txt_x);
++	    if (in_wch(&ch) != ERR) {
++		if (wadd_wch(chrwin, &ch) != ERR) {
++		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
++			if (mvin_wch(txt_y, j, &ch) != ERR) {
++			    if (wadd_wch(chrwin, &ch) == ERR) {
++				break;
++			    }
++			} else {
++			    break;
++			}
++		    }
++		}
++	    }
++	}
++	wnoutrefresh(chrwin);
++
++	mvwprintw(strwin, 0, 0, "text:");
++	wclrtobot(strwin);
++
++	limit = getmaxx(strwin) - 5;
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++	    if (win_wchstr(txtwin, text) != ERR) {
++		mvwadd_wchstr(strwin, 0, 5, text);
++	    }
++
++	    wmove(txtwin, txt_y, txt_x);
++	    if (win_wchnstr(txtwin, text, limit) != ERR) {
++		mvwadd_wchstr(strwin, 1, 5, text);
++	    }
++
++	    if (mvwin_wchstr(txtwin, txt_y, txt_x, text) != ERR) {
++		mvwadd_wchstr(strwin, 2, 5, text);
++	    }
++
++	    if (mvwin_wchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
++		mvwadd_wchstr(strwin, 3, 5, text);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++	    if (in_wchstr(text) != ERR) {
++		mvwadd_wchstr(strwin, 0, 5, text);
++	    }
++
++	    move(txt_y, txt_x);
++	    if (in_wchnstr(text, limit) != ERR) {
++		mvwadd_wchstr(strwin, 1, 5, text);
++	    }
++
++	    if (mvin_wchstr(txt_y, txt_x, text) != ERR) {
++		mvwadd_wchstr(strwin, 2, 5, text);
++	    }
++
++	    if (mvin_wchnstr(txt_y, txt_x, text, limit) != ERR) {
++		mvwadd_wchstr(strwin, 3, 5, text);
++	    }
++	}
++
++	wnoutrefresh(strwin);
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *chrwin;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
++    strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
++
++    test_inchs(1, argv, chrwin, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(void)
++{
++    printf("This program requires the wide-ncurses library\n");
++    ExitProgram(EXIT_FAILURE);
++}
++#endif
+Index: test/inchs.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/inchs.c	2007-07-21 19:01:43.000000000 +0000
+@@ -0,0 +1,272 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: inchs.c,v 1.9 2007/07/21 19:01:43 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ */
++/*
++       chtype inch(void);
++       chtype winch(WINDOW *win);
++       chtype mvinch(int y, int x);
++       chtype mvwinch(WINDOW *win, int y, int x);
++       int inchstr(chtype *chstr);
++       int inchnstr(chtype *chstr, int n);
++       int winchstr(WINDOW *win, chtype *chstr);
++       int winchnstr(WINDOW *win, chtype *chstr, int n);
++       int mvinchstr(int y, int x, chtype *chstr);
++       int mvinchnstr(int y, int x, chtype *chstr, int n);
++       int mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);
++       int mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);
++*/
++
++#include <test.priv.h>
++
++#define BASE_Y 7
++#define MAX_COLS 1024
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static int
++test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch, j;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int limit;
++    chtype text[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((j = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(j)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (j) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1)
++		txt_y++;
++	    else
++		beep();
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y)
++		txt_y--;
++	    else
++		beep();
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0)
++		txt_x--;
++	    else
++		beep();
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1)
++		txt_x++;
++	    else
++		beep();
++	    break;
++	case 'w':
++	    test_inchs(level + 1, argv, chrwin, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++
++	mvwprintw(chrwin, 0, 0, "char:");
++	wclrtoeol(chrwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++
++	    if ((ch = winch(txtwin)) != ERR) {
++		if (waddch(chrwin, (chtype) ch) != ERR) {
++		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
++			if ((ch = mvwinch(txtwin, txt_y, j)) != ERR) {
++			    if (waddch(chrwin, (chtype) ch) == ERR) {
++				break;
++			    }
++			} else {
++			    break;
++			}
++		    }
++		}
++	    }
++	} else {
++	    move(txt_y, txt_x);
++
++	    if ((ch = inch()) != ERR) {
++		if (waddch(chrwin, (chtype) ch) != ERR) {
++		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
++			if ((ch = mvinch(txt_y, j)) != ERR) {
++			    if (waddch(chrwin, (chtype) ch) == ERR) {
++				break;
++			    }
++			} else {
++			    break;
++			}
++		    }
++		}
++	    }
++	}
++	wnoutrefresh(chrwin);
++
++	mvwprintw(strwin, 0, 0, "text:");
++	wclrtobot(strwin);
++
++	limit = getmaxx(strwin) - 5;
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++	    if (winchstr(txtwin, text) != ERR) {
++		mvwaddchstr(strwin, 0, 5, text);
++	    }
++
++	    wmove(txtwin, txt_y, txt_x);
++	    if (winchnstr(txtwin, text, limit) != ERR) {
++		mvwaddchstr(strwin, 1, 5, text);
++	    }
++
++	    if (mvwinchstr(txtwin, txt_y, txt_x, text) != ERR) {
++		mvwaddchstr(strwin, 2, 5, text);
++	    }
++
++	    if (mvwinchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
++		mvwaddchstr(strwin, 3, 5, text);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++	    if (inchstr(text) != ERR) {
++		mvwaddchstr(strwin, 0, 5, text);
++	    }
++
++	    move(txt_y, txt_x);
++	    if (inchnstr(text, limit) != ERR) {
++		mvwaddchstr(strwin, 1, 5, text);
++	    }
++
++	    if (mvinchstr(txt_y, txt_x, text) != ERR) {
++		mvwaddchstr(strwin, 2, 5, text);
++	    }
++
++	    if (mvinchnstr(txt_y, txt_x, text, limit) != ERR) {
++		mvwaddchstr(strwin, 3, 5, text);
++	    }
++	}
++
++	wnoutrefresh(strwin);
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *chrwin;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
++    strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
++
++    test_inchs(1, argv, chrwin, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
+Index: test/ins_wide.c
+Prereq:  1.7 
+--- ncurses-5.6/test/ins_wide.c	2006-04-01 19:08:03.000000000 +0000
++++ ncurses-5.6-20071201/test/ins_wide.c	2007-07-21 17:41:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: ins_wide.c,v 1.7 2006/04/01 19:08:03 tom Exp $
++ * $Id: ins_wide.c,v 1.9 2007/07/21 17:41:55 tom Exp $
+  *
+  * Demonstrate the wins_wstr() and wins_wch functions.
+  * Thomas Dickey - 2002/11/23
+@@ -55,7 +55,7 @@
+ #define WInsNStr   wins_nwstr
+ #define WInsStr    wins_wstr
+ 
+-#define TABSIZE 8
++#define MY_TABSIZE 8
+ 
+ typedef enum {
+     oDefault = 0,
+@@ -123,7 +123,7 @@
+ 		--result;
+ 	    break;
+ 	case '\t':
+-	    result += (TABSIZE - (result % TABSIZE));
++	    result += (MY_TABSIZE - (result % MY_TABSIZE));
+ 	    break;
+ 	case '\177':
+ 	    result += 2;
+@@ -225,7 +225,7 @@
+     WINDOW *look = 0;
+     WINDOW *work = 0;
+     WINDOW *show = 0;
+-    int margin = (2 * TABSIZE) - 1;
++    int margin = (2 * MY_TABSIZE) - 1;
+     Options option = ((m_opt ? oMove : oDefault)
+ 		      | ((w_opt || (level > 0)) ? oWindow : oDefault));
+ 
+@@ -255,7 +255,7 @@
+     }
+     keypad(work, TRUE);
+ 
+-    for (col = margin + 1; col < COLS; col += TABSIZE)
++    for (col = margin + 1; col < COLS; col += MY_TABSIZE)
+ 	mvwvline(work, row, col, '.', limit - 2);
+ 
+     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
+@@ -490,7 +490,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
++    while ((ch = getopt(argc, argv, "mn:w")) != -1) {
+ 	switch (ch) {
+ 	case 'm':
+ 	    m_opt = TRUE;
+Index: test/inserts.c
+Prereq:  1.15 
+--- ncurses-5.6/test/inserts.c	2006-10-14 20:43:46.000000000 +0000
++++ ncurses-5.6-20071201/test/inserts.c	2007-07-21 17:41:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: inserts.c,v 1.15 2006/10/14 20:43:46 tom Exp $
++ * $Id: inserts.c,v 1.18 2007/07/21 17:41:55 tom Exp $
+  *
+  * Demonstrate the winsstr() and winsch functions.
+  * Thomas Dickey - 2002/10/19
+@@ -50,7 +50,7 @@
+ #define MvWInsCh   mvwinsch
+ #define WInsCh     winsch
+ 
+-#define TABSIZE 8
++#define MY_TABSIZE 8
+ 
+ typedef enum {
+     oDefault = 0,
+@@ -116,7 +116,7 @@
+ 		--result;
+ 	    break;
+ 	case '\t':
+-	    result += (TABSIZE - (result % TABSIZE));
++	    result += (MY_TABSIZE - (result % MY_TABSIZE));
+ 	    break;
+ 	case '\177':
+ 	    result += 2;
+@@ -147,7 +147,7 @@
+     WINDOW *look = 0;
+     WINDOW *work = 0;
+     WINDOW *show = 0;
+-    int margin = (2 * TABSIZE) - 1;
++    int margin = (2 * MY_TABSIZE) - 1;
+     Options option = (Options) ((unsigned) (m_opt
+ 					    ? oMove
+ 					    : oDefault)
+@@ -181,7 +181,7 @@
+     }
+     keypad(work, TRUE);
+ 
+-    for (col = margin + 1; col < COLS; col += TABSIZE)
++    for (col = margin + 1; col < COLS; col += MY_TABSIZE)
+ 	mvwvline(work, row, col, '.', limit - 2);
+ 
+     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
+@@ -405,7 +405,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
++    while ((ch = getopt(argc, argv, "mn:w")) != -1) {
+ 	switch (ch) {
+ 	case 'm':
+ 	    m_opt = TRUE;
+Index: test/key_names.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/key_names.c	2007-06-09 22:32:34.000000000 +0000
+@@ -0,0 +1,56 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: key_names.c,v 1.2 2007/06/09 22:32:34 tom Exp $
++ */
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++    int n;
++
++    setlocale(LC_ALL, "");
++    for (n = -1; n < KEY_MAX + 512; n++) {
++	const char *result = key_name(n);
++	if (result != 0)
++	    printf("%d(%5o):%s\n", n, n, result);
++    }
++    ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(void)
++{
++    printf("This program requires the wide-ncurses library\n");
++    ExitProgram(EXIT_FAILURE);
++}
++#endif
+Index: test/mk-test.awk
+Prereq:  1.4 
+--- ncurses-5.6/test/mk-test.awk	2006-10-21 22:56:50.000000000 +0000
++++ ncurses-5.6-20071201/test/mk-test.awk	2007-01-20 21:28:47.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: mk-test.awk,v 1.4 2006/10/21 22:56:50 tom Exp $
++# $Id: mk-test.awk,v 1.5 2007/01/20 21:28:47 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
++# Copyright (c) 2006,2007 Free 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"), #
+@@ -34,7 +34,13 @@
+ 		first = 1;
+ 		count = 0;
+ 	}
+-!/^#/	{
++/^#/	{
++		next;
++	}
++/^$/	{
++		next;
++	}
++	{
+ 		if (first) {
+ 			print "# generated by mk-test.awk\n";
+ 			first = 0;
+Index: test/modules
+Prereq:  1.28 
+--- ncurses-5.6/test/modules	2006-11-04 18:56:08.000000000 +0000
++++ ncurses-5.6-20071201/test/modules	2007-08-18 17:57:08.000000000 +0000
+@@ -1,7 +1,6 @@
+-# Test-Program modules
+-# $Id: modules,v 1.28 2006/11/04 18:56:08 tom Exp $
++# $Id: modules,v 1.36 2007/08/18 17:57:08 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
++# Copyright (c) 1998-2006,2007 Free 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"), #
+@@ -28,8 +27,9 @@
+ # authorization.                                                             #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey 1997-on
++# Author: Thomas E. Dickey	1997-on
+ #
++# Test-Program modules
+ 
+ @ base
+ background	progs		$(srcdir)	$(HEADER_DEPS)
+@@ -40,13 +40,14 @@
+ color_set	progs		$(srcdir)	$(HEADER_DEPS)
+ demo_altkeys	progs		$(srcdir)	$(HEADER_DEPS)
+ demo_defkey	progs		$(srcdir)	$(HEADER_DEPS)
+-demo_keyok	progs		$(srcdir)	$(HEADER_DEPS)
+ demo_forms	progs		$(srcdir)	$(HEADER_DEPS)	../include/form.h $(srcdir)/edit_field.h
++demo_keyok	progs		$(srcdir)	$(HEADER_DEPS)
+ demo_menus	progs		$(srcdir)	$(HEADER_DEPS)	../include/menu.h
+ demo_panels	progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h
+ demo_termcap	progs		$(srcdir)	$(HEADER_DEPS)
+ ditto		progs		$(srcdir)	$(HEADER_DEPS)
+ dots		progs		$(srcdir)	$(HEADER_DEPS)
++dots_mvcur	progs		$(srcdir)	$(HEADER_DEPS)
+ echochar	progs		$(srcdir)	$(HEADER_DEPS)
+ edit_field	progs		$(srcdir)	$(HEADER_DEPS)	$(srcdir)/edit_field.h
+ filter		progs		$(srcdir)	$(HEADER_DEPS)	../include/form.h
+@@ -56,22 +57,33 @@
+ gdc		progs		$(srcdir)	$(HEADER_DEPS)
+ hanoi		progs		$(srcdir)	$(HEADER_DEPS)
+ hashtest	progs		$(srcdir)	$(HEADER_DEPS)
++inch_wide	progs		$(srcdir)	$(HEADER_DEPS)
++inchs		progs		$(srcdir)	$(HEADER_DEPS)
+ ins_wide	progs		$(srcdir)	$(HEADER_DEPS)
+ inserts		progs		$(srcdir)	$(HEADER_DEPS)
++key_names	progs		$(srcdir)	$(HEADER_DEPS)
+ keynames	progs		$(srcdir)	$(HEADER_DEPS)
+ knight		progs		$(srcdir)	$(HEADER_DEPS)
+ lrtest		progs		$(srcdir)	$(HEADER_DEPS)
+-ncurses		progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h ../include/menu.h ../include/form.h
+ movewindow	progs		$(srcdir)	$(HEADER_DEPS)
++ncurses		progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h ../include/menu.h ../include/form.h
+ newdemo		progs		$(srcdir)	$(HEADER_DEPS)
+ railroad	progs		$(srcdir)	$(HEADER_DEPS)
+ rain		progs		$(srcdir)	$(HEADER_DEPS)
+ redraw		progs		$(srcdir)	$(HEADER_DEPS)
+ savescreen	progs		$(srcdir)	$(HEADER_DEPS)
+ tclock		progs		$(srcdir)	$(HEADER_DEPS)
++test_arrays	progs		$(srcdir)	$(HEADER_DEPS)
++test_get_wstr	progs		$(srcdir)	$(HEADER_DEPS)
++test_getstr	progs		$(srcdir)	$(HEADER_DEPS)
++test_instr	progs		$(srcdir)	$(HEADER_DEPS)
++test_inwstr	progs		$(srcdir)	$(HEADER_DEPS)
++test_opaque	progs		$(srcdir)	$(HEADER_DEPS)
+ testaddch	progs		$(srcdir)	$(HEADER_DEPS)
+ testcurs	progs		$(srcdir)	$(HEADER_DEPS)
+ testscanw	progs		$(srcdir)	$(HEADER_DEPS)
+ view		progs		$(srcdir)	$(HEADER_DEPS)
+ worm		progs		$(srcdir)	$(HEADER_DEPS)
+ xmas		progs		$(srcdir)	$(HEADER_DEPS)
++
++# vile:makemode
+Index: test/movewindow.c
+Prereq:  1.19 
+--- ncurses-5.6/test/movewindow.c	2006-06-17 17:43:22.000000000 +0000
++++ ncurses-5.6-20071201/test/movewindow.c	2007-01-06 23:28:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: movewindow.c,v 1.19 2006/06/17 17:43:22 tom Exp $
++ * $Id: movewindow.c,v 1.20 2007/01/06 23:28:53 tom Exp $
+  *
+  * Demonstrate move functions for windows and derived windows from the curses
+  * library.
+@@ -63,14 +63,14 @@
+     WINDOW *child;		/* the actual value */
+ } FRAME;
+ 
+-static void head_line(char *fmt,...) GCC_PRINTFLIKE(1, 2);
+-static void tail_line(char *fmt,...) GCC_PRINTFLIKE(1, 2);
++static void head_line(const char *fmt,...) GCC_PRINTFLIKE(1, 2);
++static void tail_line(const char *fmt,...) GCC_PRINTFLIKE(1, 2);
+ 
+ static unsigned num_windows;
+ static FRAME *all_windows;
+ 
+ static void
+-message(int lineno, char *fmt, va_list argp)
++message(int lineno, const char *fmt, va_list argp)
+ {
+     int y, x;
+ 
+@@ -93,7 +93,7 @@
+ }
+ 
+ static void
+-head_line(char *fmt,...)
++head_line(const char *fmt,...)
+ {
+     va_list argp;
+ 
+@@ -103,7 +103,7 @@
+ }
+ 
+ static void
+-tail_line(char *fmt,...)
++tail_line(const char *fmt,...)
+ {
+     va_list argp;
+ 
+@@ -511,7 +511,7 @@
+     /* *INDENT-OFF* */
+     static struct {
+ 	int	key;
+-	char *	msg;
++	const char * msg;
+     } help[] = {
+ 	{ '?',		"Show this screen" },
+ 	{ 'b',		"Draw a box inside the current window" },
+Index: test/ncurses.c
+Prereq:  1.280 
+--- ncurses-5.6/test/ncurses.c	2006-12-10 00:13:15.000000000 +0000
++++ ncurses-5.6-20071201/test/ncurses.c	2007-07-21 17:41:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -40,7 +40,7 @@
+    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
+            Thomas E. Dickey (beginning revision 1.27 in 1996).
+ 
+-$Id: ncurses.c,v 1.280 2006/12/10 00:13:15 tom Exp $
++$Id: ncurses.c,v 1.292 2007/07/21 17:41:55 tom Exp $
+ 
+ ***************************************************************************/
+ 
+@@ -955,11 +955,11 @@
+ 		for (n = 0; (wchar_buf[n] = wint_buf[n]) != 0; ++n) ;
+ 		if ((temp = wcstos(wchar_buf)) != 0) {
+ 		    wprintw(win, "I saw %d characters:\n\t`%s'.",
+-			    wcslen(wchar_buf), temp);
++			    (int) wcslen(wchar_buf), temp);
+ 		    free(temp);
+ 		} else {
+ 		    wprintw(win, "I saw %d characters (cannot convert).",
+-			    wcslen(wchar_buf));
++			    (int) wcslen(wchar_buf));
+ 		}
+ 	    }
+ 	    wclrtoeol(win);
+@@ -3124,7 +3124,7 @@
+ /* *INDENT-OFF* */
+ static struct {
+     attr_t attr;
+-    char *name;
++    const char *name;
+ } attrs_to_cycle[] = {
+     { A_NORMAL,		"normal" },
+     { A_BOLD,		"bold" },
+@@ -3379,12 +3379,14 @@
+     WINDOW *wind;
+ };
+ 
+-#ifdef NCURSES_VERSION
+-#define keypad_active(win) (win)->_use_keypad
+-#define scroll_active(win) (win)->_scroll
++#if defined(NCURSES_VERSION)
++#if NCURSES_VERSION_PATCH < 20070331
++#define is_keypad(win)   (win)->_use_keypad
++#define is_scrollok(win) (win)->_scroll
++#endif
+ #else
+-#define keypad_active(win) FALSE
+-#define scroll_active(win) FALSE
++#define is_keypad(win)   FALSE
++#define is_scrollok(win) FALSE
+ #endif
+ 
+ /* We need to know if these flags are actually set, so don't look in FRAME.
+@@ -3395,14 +3397,16 @@
+ HaveKeypad(FRAME * curp)
+ {
+     WINDOW *win = (curp ? curp->wind : stdscr);
+-    return keypad_active(win);
++    (void) win;
++    return is_keypad(win);
+ }
+ 
+ static bool
+ HaveScroll(FRAME * curp)
+ {
+     WINDOW *win = (curp ? curp->wind : stdscr);
+-    return scroll_active(win);
++    (void) win;
++    return is_scrollok(win);
+ }
+ 
+ static void
+@@ -3945,7 +3949,11 @@
+ {
+     wmove(stdscr, LINES - 1, 0);
+     wclrtoeol(stdscr);
+-    waddstr(stdscr, text);
++    if (text != 0 && *text != '\0') {
++	waddstr(stdscr, text);
++	waddstr(stdscr, "; ");
++    }
++    waddstr(stdscr, "press any key to continue");
+ }				/* end of saywhat */
+ 
+ /*+-------------------------------------------------------------------------
+@@ -3998,6 +4006,17 @@
+ 	fill_panel(win)
+ --------------------------------------------------------------------------*/
+ static void
++init_panel(void)
++{
++    register int y, x;
++
++    for (y = 0; y < LINES - 1; y++) {
++	for (x = 0; x < COLS; x++)
++	    wprintw(stdscr, "%d", (y + x) % 10);
++    }
++}
++
++static void
+ fill_panel(PANEL * pan)
+ {
+     WINDOW *win = panel_window(pan);
+@@ -4014,217 +4033,214 @@
+ 	    waddch(win, UChar(num));
+ 	}
+     }
+-}				/* end of fill_panel */
++}
+ 
++#if USE_WIDEC_SUPPORT
+ static void
+-demo_panels(void)
++make_fullwidth_digit(cchar_t *target, int digit)
+ {
+-    int itmp;
+-    register int y, x;
++    wchar_t source[2];
+ 
+-    refresh();
++    source[0] = digit + 0xff10;
++    source[1] = 0;
++    setcchar(target, source, A_NORMAL, 0, 0);
++}
+ 
+-    for (y = 0; y < LINES - 1; y++) {
+-	for (x = 0; x < COLS; x++)
+-	    wprintw(stdscr, "%d", (y + x) % 10);
+-    }
+-    for (y = 0; y < 5; y++) {
+-	PANEL *p1;
+-	PANEL *p2;
+-	PANEL *p3;
+-	PANEL *p4;
+-	PANEL *p5;
+-
+-	p1 = mkpanel(COLOR_RED,
+-		     LINES / 2 - 2,
+-		     COLS / 8 + 1,
+-		     0,
+-		     0);
+-	set_panel_userptr(p1, (NCURSES_CONST void *) "p1");
+-
+-	p2 = mkpanel(COLOR_GREEN,
+-		     LINES / 2 + 1,
+-		     COLS / 7,
+-		     LINES / 4,
+-		     COLS / 10);
+-	set_panel_userptr(p2, (NCURSES_CONST void *) "p2");
+-
+-	p3 = mkpanel(COLOR_YELLOW,
+-		     LINES / 4,
+-		     COLS / 10,
+-		     LINES / 2,
+-		     COLS / 9);
+-	set_panel_userptr(p3, (NCURSES_CONST void *) "p3");
+-
+-	p4 = mkpanel(COLOR_BLUE,
+-		     LINES / 2 - 2,
+-		     COLS / 8,
+-		     LINES / 2 - 2,
+-		     COLS / 3);
+-	set_panel_userptr(p4, (NCURSES_CONST void *) "p4");
+-
+-	p5 = mkpanel(COLOR_MAGENTA,
+-		     LINES / 2 - 2,
+-		     COLS / 8,
+-		     LINES / 2,
+-		     COLS / 2 - 2);
+-	set_panel_userptr(p5, (NCURSES_CONST void *) "p5");
+-
+-	fill_panel(p1);
+-	fill_panel(p2);
+-	fill_panel(p3);
+-	fill_panel(p4);
+-	fill_panel(p5);
+-	hide_panel(p4);
+-	hide_panel(p5);
+-	pflush();
+-	saywhat("press any key to continue");
+-	wait_a_while(nap_msec);
++static void
++init_wide_panel(void)
++{
++    int digit;
++    cchar_t temp[10];
+ 
+-	saywhat("h3 s1 s2 s4 s5; press any key to continue");
+-	move_panel(p1, 0, 0);
+-	hide_panel(p3);
+-	show_panel(p1);
+-	show_panel(p2);
+-	show_panel(p4);
+-	show_panel(p5);
+-	pflush();
+-	wait_a_while(nap_msec);
++    for (digit = 0; digit < 10; ++digit)
++	make_fullwidth_digit(&temp[digit], digit);
+ 
+-	saywhat("s1; press any key to continue");
+-	show_panel(p1);
+-	pflush();
+-	wait_a_while(nap_msec);
++    do {
++	int y, x;
++	getyx(stdscr, y, x);
++	digit = (y + x / 2) % 10;
++    } while (add_wch(&temp[digit]) != ERR);
++}
+ 
+-	saywhat("s2; press any key to continue");
+-	show_panel(p2);
+-	pflush();
+-	wait_a_while(nap_msec);
++static void
++fill_wide_panel(PANEL * pan)
++{
++    WINDOW *win = panel_window(pan);
++    int num = ((const char *) panel_userptr(pan))[1];
++    int y, x;
+ 
+-	saywhat("m2; press any key to continue");
+-	move_panel(p2, LINES / 3 + 1, COLS / 8);
+-	pflush();
+-	wait_a_while(nap_msec);
++    wmove(win, 1, 1);
++    wprintw(win, "-pan%c-", num);
++    wclrtoeol(win);
++    box(win, 0, 0);
++    for (y = 2; y < getmaxy(win) - 1; y++) {
++	for (x = 1; x < getmaxx(win) - 1; x++) {
++	    wmove(win, y, x);
++	    waddch(win, UChar(num));
++	}
++    }
++}
++#endif
+ 
+-	saywhat("s3;");
+-	show_panel(p3);
+-	pflush();
+-	wait_a_while(nap_msec);
++#define MAX_PANELS 5
+ 
+-	saywhat("m3; press any key to continue");
+-	move_panel(p3, LINES / 4 + 1, COLS / 15);
+-	pflush();
+-	wait_a_while(nap_msec);
++static void
++canned_panel(PANEL * px[MAX_PANELS + 1], NCURSES_CONST char *cmd)
++{
++    int which = cmd[1] - '0';
+ 
+-	saywhat("b3; press any key to continue");
+-	bottom_panel(p3);
+-	pflush();
+-	wait_a_while(nap_msec);
++    saywhat(cmd);
++    switch (*cmd) {
++    case 'h':
++	hide_panel(px[which]);
++	break;
++    case 's':
++	show_panel(px[which]);
++	break;
++    case 't':
++	top_panel(px[which]);
++	break;
++    case 'b':
++	bottom_panel(px[which]);
++	break;
++    case 'd':
++	rmpanel(px[which]);
++	break;
++    }
++    pflush();
++    wait_a_while(nap_msec);
++}
+ 
+-	saywhat("s4; press any key to continue");
+-	show_panel(p4);
+-	pflush();
+-	wait_a_while(nap_msec);
++static void
++demo_panels(void (*InitPanel) (void), void (*FillPanel) (PANEL *))
++{
++    int count;
++    int itmp;
++    PANEL *px[MAX_PANELS + 1];
+ 
+-	saywhat("s5; press any key to continue");
+-	show_panel(p5);
+-	pflush();
+-	wait_a_while(nap_msec);
++    scrollok(stdscr, FALSE);	/* we don't want stdscr to scroll! */
++    refresh();
+ 
+-	saywhat("t3; press any key to continue");
+-	top_panel(p3);
+-	pflush();
+-	wait_a_while(nap_msec);
++    InitPanel();
++    for (count = 0; count < 5; count++) {
++	px[1] = mkpanel(COLOR_RED,
++			LINES / 2 - 2,
++			COLS / 8 + 1,
++			0,
++			0);
++	set_panel_userptr(px[1], (NCURSES_CONST void *) "p1");
++
++	px[2] = mkpanel(COLOR_GREEN,
++			LINES / 2 + 1,
++			COLS / 7,
++			LINES / 4,
++			COLS / 10);
++	set_panel_userptr(px[2], (NCURSES_CONST void *) "p2");
++
++	px[3] = mkpanel(COLOR_YELLOW,
++			LINES / 4,
++			COLS / 10,
++			LINES / 2,
++			COLS / 9);
++	set_panel_userptr(px[3], (NCURSES_CONST void *) "p3");
++
++	px[4] = mkpanel(COLOR_BLUE,
++			LINES / 2 - 2,
++			COLS / 8,
++			LINES / 2 - 2,
++			COLS / 3);
++	set_panel_userptr(px[4], (NCURSES_CONST void *) "p4");
++
++	px[5] = mkpanel(COLOR_MAGENTA,
++			LINES / 2 - 2,
++			COLS / 8,
++			LINES / 2,
++			COLS / 2 - 2);
++	set_panel_userptr(px[5], (NCURSES_CONST void *) "p5");
++
++	FillPanel(px[1]);
++	FillPanel(px[2]);
++	FillPanel(px[3]);
++	FillPanel(px[4]);
++	FillPanel(px[5]);
+ 
+-	saywhat("t1; press any key to continue");
+-	top_panel(p1);
++	hide_panel(px[4]);
++	hide_panel(px[5]);
+ 	pflush();
++	saywhat("");
+ 	wait_a_while(nap_msec);
+ 
+-	saywhat("t2; press any key to continue");
+-	top_panel(p2);
++	saywhat("h3 s1 s2 s4 s5");
++	move_panel(px[1], 0, 0);
++	hide_panel(px[3]);
++	show_panel(px[1]);
++	show_panel(px[2]);
++	show_panel(px[4]);
++	show_panel(px[5]);
+ 	pflush();
+ 	wait_a_while(nap_msec);
+ 
+-	saywhat("t3; press any key to continue");
+-	top_panel(p3);
++	canned_panel(px, "s1");
++	canned_panel(px, "s2");
++
++	saywhat("m2");
++	move_panel(px[2], LINES / 3 + 1, COLS / 8);
+ 	pflush();
+ 	wait_a_while(nap_msec);
+ 
+-	saywhat("t4; press any key to continue");
+-	top_panel(p4);
++	canned_panel(px, "s3");
++
++	saywhat("m3");
++	move_panel(px[3], LINES / 4 + 1, COLS / 15);
+ 	pflush();
+ 	wait_a_while(nap_msec);
+ 
++	canned_panel(px, "b3");
++	canned_panel(px, "s4");
++	canned_panel(px, "s5");
++	canned_panel(px, "t3");
++	canned_panel(px, "t1");
++	canned_panel(px, "t2");
++	canned_panel(px, "t3");
++	canned_panel(px, "t4");
++
+ 	for (itmp = 0; itmp < 6; itmp++) {
+-	    WINDOW *w4 = panel_window(p4);
+-	    WINDOW *w5 = panel_window(p5);
++	    WINDOW *w4 = panel_window(px[4]);
++	    WINDOW *w5 = panel_window(px[5]);
+ 
+-	    saywhat("m4; press any key to continue");
++	    saywhat("m4");
+ 	    wmove(w4, LINES / 8, 1);
+ 	    waddstr(w4, mod[itmp]);
+-	    move_panel(p4, LINES / 6, itmp * (COLS / 8));
++	    move_panel(px[4], LINES / 6, itmp * (COLS / 8));
+ 	    wmove(w5, LINES / 6, 1);
+ 	    waddstr(w5, mod[itmp]);
+ 	    pflush();
+ 	    wait_a_while(nap_msec);
+ 
+-	    saywhat("m5; press any key to continue");
++	    saywhat("m5");
+ 	    wmove(w4, LINES / 6, 1);
+ 	    waddstr(w4, mod[itmp]);
+-	    move_panel(p5, LINES / 3 - 1, (itmp * 10) + 6);
++	    move_panel(px[5], LINES / 3 - 1, (itmp * 10) + 6);
+ 	    wmove(w5, LINES / 8, 1);
+ 	    waddstr(w5, mod[itmp]);
+ 	    pflush();
+ 	    wait_a_while(nap_msec);
+ 	}
+ 
+-	saywhat("m4; press any key to continue");
+-	move_panel(p4, LINES / 6, itmp * (COLS / 8));
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("t5; press any key to continue");
+-	top_panel(p5);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("t2; press any key to continue");
+-	top_panel(p2);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("t1; press any key to continue");
+-	top_panel(p1);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("d2; press any key to continue");
+-	rmpanel(p2);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("h3; press any key to continue");
+-	hide_panel(p3);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("d1; press any key to continue");
+-	rmpanel(p1);
+-	pflush();
+-	wait_a_while(nap_msec);
+-
+-	saywhat("d4; press any key to continue");
+-	rmpanel(p4);
++	saywhat("m4");
++	move_panel(px[4], LINES / 6, itmp * (COLS / 8));
+ 	pflush();
+ 	wait_a_while(nap_msec);
+ 
+-	saywhat("d5; press any key to continue");
+-	rmpanel(p5);
+-	pflush();
+-
+-	rmpanel(p3);
+-	pflush();
++	canned_panel(px, "t5");
++	canned_panel(px, "t2");
++	canned_panel(px, "t1");
++	canned_panel(px, "d2");
++	canned_panel(px, "h3");
++	canned_panel(px, "d1");
++	canned_panel(px, "d4");
++	canned_panel(px, "d5");
++	canned_panel(px, "d3");
+ 
+ 	wait_a_while(nap_msec);
+ 	if (nap_msec == 1)
+@@ -5389,6 +5405,10 @@
+     int finished = 0, c;
+     unsigned n = 0;
+ 
++#ifdef NCURSES_MOUSE_VERSION
++    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
++#endif
++
+     move(18, 0);
+     addstr("Defined edit/traversal keys:   ^Q/ESC- exit form\n");
+     addstr("^N   -- go to next field       ^P  -- go to previous field\n");
+@@ -5462,6 +5482,10 @@
+     free_fieldtype(fty_passwd);
+     noraw();
+     nl();
++
++#ifdef NCURSES_MOUSE_VERSION
++    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
++#endif
+ }
+ #endif /* USE_LIBFORM */
+ 
+@@ -5884,7 +5908,13 @@
+ 
+ #if USE_LIBPANEL
+     case 'o':
+-	demo_panels();
++	demo_panels(init_panel, fill_panel);
++	break;
++#endif
++
++#if USE_WIDEC_SUPPORT
++    case 'O':
++	demo_panels(init_wide_panel, fill_wide_panel);
+ 	break;
+ #endif
+ 
+@@ -6052,9 +6082,12 @@
+ #endif
+ #if USE_LIBPANEL
+ 	(void) puts("o = exercise panels library");
++#if USE_WIDEC_SUPPORT
++	(void) puts("O = exercise panels with wide-characters");
++#endif
++#endif
+ 	(void) puts("p = exercise pad features");
+ 	(void) puts("q = quit");
+-#endif
+ #if USE_LIBFORM
+ 	(void) puts("r = exercise forms code");
+ #endif
+@@ -6143,7 +6176,7 @@
+ 
+     setlocale(LC_ALL, "");
+ 
+-    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != EOF) {
++    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
+ 	switch (c) {
+ #ifdef NCURSES_VERSION
+ 	case 'a':
+Index: test/programs
+Prereq:  1.5 
+--- ncurses-5.6/test/programs	2006-11-04 18:56:49.000000000 +0000
++++ ncurses-5.6-20071201/test/programs	2007-08-18 17:57:00.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: programs,v 1.5 2006/11/04 18:56:49 tom Exp $
++# $Id: programs,v 1.13 2007/08/18 17:57:00 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
++# Copyright (c) 2006,2007 Free 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"), #
+@@ -45,6 +45,7 @@
+ demo_termcap	$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	demo_termcap
+ ditto		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	ditto
+ dots		$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	dots
++dots_mvcur	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	dots_mvcur
+ echochar	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	echochar
+ filter		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	filter
+ firework	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	firework
+@@ -53,8 +54,11 @@
+ gdc		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	gdc
+ hanoi		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	hanoi
+ hashtest	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	hashtest
++inch_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inch_wide
++inchs		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inchs
+ ins_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	ins_wide
+ inserts		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inserts
++key_names	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	key_names
+ keynames	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	keynames
+ knight		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	knight
+ lrtest		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	lrtest
+@@ -66,9 +70,17 @@
+ redraw		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	redraw
+ savescreen	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	savescreen
+ tclock		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	tclock
++test_arrays	$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	test_arrays
++test_get_wstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_get_wstr
++test_getstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_getstr
++test_instr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_instr
++test_inwstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_inwstr
++test_opaque	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_opaque
+ testaddch	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testaddch
+ testcurs	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testcurs
+ testscanw	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testscanw
+ view		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	view
+ worm		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	worm
+ xmas		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	xmas
++
++# vile:makemode
+Index: test/railroad.c
+Prereq:  1.14 
+--- ncurses-5.6/test/railroad.c	2006-05-20 16:02:04.000000000 +0000
++++ ncurses-5.6-20071201/test/railroad.c	2007-02-03 18:51:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 2000-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,10 +29,11 @@
+ /*
+  * Author: Thomas E. Dickey - 2000
+  *
+- * $Id: railroad.c,v 1.14 2006/05/20 16:02:04 tom Exp $
++ * $Id: railroad.c,v 1.15 2007/02/03 18:51:23 tom Exp $
+  *
+  * A simple demo of the termcap interface.
+  */
++#define USE_TINFO
+ #include <test.priv.h>
+ 
+ #if HAVE_TGETENT
+Index: test/redraw.c
+Prereq:  1.3 
+--- ncurses-5.6/test/redraw.c	2006-11-04 23:20:27.000000000 +0000
++++ ncurses-5.6-20071201/test/redraw.c	2007-06-30 17:55:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: redraw.c,v 1.3 2006/11/04 23:20:27 tom Exp $
++ * $Id: redraw.c,v 1.4 2007/06/30 17:55:06 tom Exp $
+  *
+  * Demonstrate the redrawwin() and wredrawln() functions.
+  * Thomas Dickey - 2006/11/4
+@@ -148,7 +148,7 @@
+ 	    if (ch > KEY_MIN) {
+ 		waddstr(win, keyname(ch));
+ 	    } else {
+-		waddstr(win, unctrl(ch));
++		waddstr(win, unctrl(UChar(ch)));
+ 	    }
+ 	    break;
+ 	}
+Index: test/savescreen.c
+Prereq:  1.2 
+--- ncurses-5.6/test/savescreen.c	2006-04-01 19:08:03.000000000 +0000
++++ ncurses-5.6-20071201/test/savescreen.c	2007-07-21 17:57:37.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,23 +26,291 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: savescreen.c,v 1.2 2006/04/01 19:08:03 tom Exp $
++ * $Id: savescreen.c,v 1.10 2007/07/21 17:57:37 tom Exp $
+  *
+  * Demonstrate save/restore functions from the curses library.
+- * Thomas Dickey - 2006/2/11
++ * Thomas Dickey - 2007/7/14
+  */
+-/*
+-scr_dump			-
+-scr_init			-
+-scr_restore			-
+-scr_set				-
+-*/
+ 
+ #include <test.priv.h>
+ 
++#if TIME_WITH_SYS_TIME
++# include <sys/time.h>
++# include <time.h>
++#else
++# if HAVE_SYS_TIME_H
++#  include <sys/time.h>
++# else
++#  include <time.h>
++# endif
++#endif
++
++static bool use_init = FALSE;
++
++static void
++setup_next(void)
++{
++    curs_set(1);
++    reset_shell_mode();
++}
++
++static void
++cleanup(char *files[])
++{
++    int n;
++
++    for (n = 0; files[n] != 0; ++n) {
++	unlink(files[n]);
++    }
++}
++
++static int
++load_screen(char *filename)
++{
++    int result;
++
++    if (use_init) {
++	if ((result = scr_init(filename)) != ERR)
++	    result = scr_restore(filename);
++    } else {
++	result = scr_set(filename);
++    }
++    return result;
++}
++
++/*
++ * scr_restore() or scr_set() operates on curscr.  If we read a character using
++ * getch() that will refresh stdscr, wiping out the result.  To avoid that,
++ * copy the data back from curscr to stdscr.
++ */
++static void
++after_load(void)
++{
++    overwrite(curscr, stdscr);
++    doupdate();
++}
++
++static void
++show_what(int which, int last)
++{
++    int y, x;
++    time_t now = time((time_t *) 0);
++
++    getyx(stdscr, y, x);
++
++    move(0, 0);
++    printw("Saved %d of %d - %s", which, last + 1, ctime(&now));
++
++    move(y, x);
++
++    refresh();
++}
++
++static int
++get_command(int which, int last)
++{
++    int ch;
++
++    timeout(100);
++
++    do {
++	show_what(which, last);
++	ch = getch();
++    } while (ch == ERR);
++
++    return ch;
++}
++
++static void
++usage(void)
++{
++    static const char *msg[] =
++    {
++	"Usage: savescreen [-r] files",
++	"",
++	"Options:",
++	" -i  use scr_init/scr_restore rather than scr_set",
++	" -r  replay the screen-dump files"
++    };
++    unsigned n;
++    for (n = 0; n < SIZEOF(msg); ++n) {
++	fprintf(stderr, "%s\n", msg[n]);
++    }
++    ExitProgram(EXIT_FAILURE);
++}
++
+ int
+-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++main(int argc, char *argv[])
+ {
+-    printf("Not implemented - demo for screen save/restore\n");
+-    return EXIT_SUCCESS;
++    int ch;
++    int which = 0;
++    int last;
++    bool replaying = FALSE;
++    bool done = FALSE;
++    char **files;
++
++    while ((ch = getopt(argc, argv, "ir")) != -1) {
++	switch (ch) {
++	case 'i':
++	    use_init = TRUE;
++	    break;
++	case 'r':
++	    replaying = TRUE;
++	    break;
++	default:
++	    usage();
++	    break;
++	}
++    }
++
++    initscr();
++    cbreak();
++    noecho();
++    keypad(stdscr, TRUE);
++    curs_set(0);
++    if (has_colors()) {
++	start_color();
++	for (ch = 0; ch < COLOR_PAIRS; ++ch) {
++	    short pair = ch % COLOR_PAIRS;
++	    init_pair(pair, COLOR_WHITE, ch % COLORS);
++	}
++    }
++
++    files = argv + optind;
++    last = argc - optind - 1;
++    if (replaying) {
++
++	/*
++	 * Use the last file as the initial/current screen.
++	 */
++	if (last < 0) {
++	    endwin();
++	    printf("No screen-dumps given\n");
++	    ExitProgram(EXIT_FAILURE);
++	}
++
++	which = last;
++	if (load_screen(files[which]) == ERR) {
++	    endwin();
++	    printf("Cannot load screen-dump %s\n", files[which]);
++	    ExitProgram(EXIT_FAILURE);
++	}
++	after_load();
++
++	while (!done && (ch = getch()) != ERR) {
++	    switch (ch) {
++	    case 'n':
++		/*
++		 * If we got a "next" here, skip to the final screen before
++		 * moving to the next process.
++		 */
++		setup_next();
++		which = last;
++		done = TRUE;
++		break;
++	    case 'q':
++		endwin();
++		cleanup(files);
++		done = TRUE;
++		break;
++	    case KEY_BACKSPACE:
++	    case '\b':
++		if (--which < 0)
++		    which = last;
++		break;
++	    case ' ':
++		if (++which > last)
++		    which = 0;
++		break;
++	    default:
++		beep();
++		continue;
++	    }
++
++	    if (ch == 'q') {
++		;
++	    } else if (scr_restore(files[which]) == ERR) {
++		endwin();
++		printf("Cannot load screen-dump %s\n", files[which]);
++		cleanup(files);
++		ExitProgram(EXIT_FAILURE);
++	    } else {
++		wrefresh(curscr);
++	    }
++	}
++    } else {
++	int y;
++	int x;
++
++	move(2, 0);
++	printw("Use h,j,k,l or arrows to move around the screen\n");
++	printw("Press 'q' to quit, ' ' to dump a screen\n");
++	printw("When the last screen has been dumped, press 'n' to run the\n");
++	printw("screen-loader.  That allows only 'q', backspace and ' ' for\n");
++	printw("stepping through the dumped/restored screens.\n");
++	getyx(stdscr, y, x);
++
++	while (!done) {
++	    switch (ch = get_command(which, last)) {
++	    case 'n':
++		setup_next();
++		done = TRUE;
++		break;
++	    case 'q':
++		endwin();
++		cleanup(files);
++		done = TRUE;
++		break;
++	    case ' ':
++		if (files[which] != 0) {
++		    show_what(which + 1, last);
++		    if (scr_dump(files[which]) == ERR) {
++			endwin();
++			printf("Cannot write screen-dump %s\n", files[which]);
++			cleanup(files);
++			done = TRUE;
++			break;
++		    }
++		    ++which;
++		    if (has_colors()) {
++			short pair = which % COLOR_PAIRS;
++			bkgd(COLOR_PAIR(pair));
++		    }
++		} else {
++		    beep();
++		}
++		break;
++	    case KEY_LEFT:
++	    case 'h':
++		if (--x < 0)
++		    x = COLS - 1;
++		break;
++	    case KEY_DOWN:
++	    case 'j':
++		if (++y >= LINES)
++		    y = 1;
++		break;
++	    case KEY_UP:
++	    case 'k':
++		if (--y < 1)
++		    y = LINES - 1;
++		break;
++	    case KEY_RIGHT:
++	    case 'l':
++		if (++x >= COLS)
++		    x = 0;
++		break;
++	    }
++	    if (!done) {
++		time_t now = time((time_t *) 0);
++
++		move(0, 0);
++		addstr(ctime(&now));
++		move(y, x);
++		addch('#' | A_REVERSE);
++		move(y, x);
++	    }
++	}
++    }
++    ExitProgram(EXIT_SUCCESS);
+ }
+Index: test/savescreen.sh
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/savescreen.sh	2007-07-14 21:50:26.000000000 +0000
+@@ -0,0 +1,55 @@
++#!/bin/sh
++##############################################################################
++# Copyright (c) 2007 Free Software Foundation, Inc.                          #
++#                                                                            #
++# Permission is hereby granted, free of charge, to any person obtaining a    #
++# copy of this software and associated documentation files (the "Software"), #
++# to deal in the Software without restriction, including without limitation  #
++# the rights to use, copy, modify, merge, publish, distribute, distribute    #
++# with modifications, sublicense, and/or sell copies of the Software, and to #
++# permit persons to whom the Software is furnished to do so, subject to the  #
++# following conditions:                                                      #
++#                                                                            #
++# The above copyright notice and this permission notice shall be included in #
++# all copies or substantial portions of the Software.                        #
++#                                                                            #
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
++# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
++# DEALINGS IN THE SOFTWARE.                                                  #
++#                                                                            #
++# Except as contained in this notice, the name(s) of the above copyright     #
++# holders shall not be used in advertising or otherwise to promote the sale, #
++# use or other dealings in this Software without prior written               #
++# authorization.                                                             #
++##############################################################################
++# $Id: savescreen.sh,v 1.3 2007/07/14 21:50:26 tom Exp $
++#
++# Use this script to exercise "savescreen".
++# It starts by generating a series of temporary-filenames, which are passed
++# to the test-program.  Loop as long as the first file named exists.
++PARAMS=
++NFILES=4
++PREFIX=savescreen-$$
++n=0
++BEGINS=$PREFIX-$n.tmp
++while test $n != $NFILES
++do
++	LATEST=$PREFIX-$n.tmp
++	PARAMS="$PARAMS $LATEST"
++	n=`expr $n + 1`
++done
++
++./savescreen $PARAMS
++if test -f $BEGINS
++then
++	while test -f $BEGINS
++	do
++		./savescreen -r $PARAMS
++	done
++else
++	echo "No screens were saved"
++fi
+Index: test/test.priv.h
+Prereq:  1.63 
+--- ncurses-5.6/test/test.priv.h	2006-07-15 18:27:24.000000000 +0000
++++ ncurses-5.6-20071201/test/test.priv.h	2007-06-30 17:53:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /****************************************************************************
+  *  Author: Thomas E. Dickey                    1996-on                     *
+  ****************************************************************************/
+-/* $Id: test.priv.h,v 1.63 2006/07/15 18:27:24 tom Exp $ */
++/* $Id: test.priv.h,v 1.68 2007/06/30 17:53:09 tom Exp $ */
+ 
+ #ifndef __TEST_PRIV_H
+ #define __TEST_PRIV_H 1
+@@ -309,7 +309,7 @@
+ 
+ #ifndef HAVE_TYPE_ATTR_T
+ #if !USE_WIDEC_SUPPORT
+-#define attr_t long
++#define attr_t chtype
+ #endif
+ #endif
+ 
+@@ -320,6 +320,10 @@
+ #define NCURSES_CH_T cchar_t
+ #endif
+ 
++#ifndef NCURSES_OPAQUE
++#define NCURSES_OPAQUE 0
++#endif
++
+ #ifndef CCHARW_MAX
+ #define CCHARW_MAX 5
+ #endif
+@@ -404,6 +408,10 @@
+ 
+ #if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
+ #include <nc_alloc.h>
++#if HAVE_NC_FREEALL && defined(USE_TINFO)
++#undef ExitProgram
++#define ExitProgram(code) _nc_free_tinfo(code)
++#endif
+ #else
+ #define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
+ #define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
+Index: test/test_arrays.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_arrays.c	2007-09-01 20:11:57.000000000 +0000
+@@ -0,0 +1,79 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_arrays.c,v 1.2 2007/09/01 20:11:57 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the public arrays from the terminfo library.
++
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];
++extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];
++
++ */
++
++#define USE_TINFO
++#include <test.priv.h>
++
++#define DUMP(name) dump_array(#name, name)
++
++static void
++dump_array(const char *name, NCURSES_CONST char *const *list)
++{
++    int n;
++
++    printf("%s:\n", name);
++    for (n = 0; list[n] != 0; ++n) {
++	printf("%5d:%s\n", n, list[n]);
++    }
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++    DUMP(boolnames);
++    DUMP(boolcodes);
++    DUMP(boolfnames);
++
++    DUMP(numnames);
++    DUMP(numcodes);
++    DUMP(numfnames);
++
++    DUMP(strnames);
++    DUMP(strcodes);
++    DUMP(strfnames);
++
++    ExitProgram(EXIT_SUCCESS);
++}
+Index: test/test_get_wstr.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_get_wstr.c	2007-08-11 17:01:43.000000000 +0000
+@@ -0,0 +1,361 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_get_wstr.c,v 1.5 2007/08/11 17:01:43 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the get_wstr functions from the curses library.
++
++       int get_wstr(wint_t *wstr);
++       int getn_wstr(wint_t *wstr, int n);
++       int wget_wstr(WINDOW *win, wint_t *wstr);
++       int wgetn_wstr(WINDOW *win, wint_t *wstr, int n);
++       int mvget_wstr(int y, int x, wint_t *wstr);
++       int mvgetn_wstr(int y, int x, wint_t *wstr, int n);
++       int mvwget_wstr(WINDOW *win, int y, int x, wint_t *wstr);
++       int mvwgetn_wstr(WINDOW *win, int y, int x, wint_t *wstr, int n);
++ */
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++#define BASE_Y 6
++#define MAX_COLS 1024
++
++typedef enum {
++    eGetStr = 0,
++    eGetNStr,
++    eMvGetStr,
++    eMvGetNStr,
++    eMaxFlavor
++} Flavors;
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static int
++Remainder(WINDOW *txtwin)
++{
++    int result = getmaxx(txtwin) - getcurx(txtwin);
++    return (result > 0) ? result : 0;
++}
++
++/*
++ * Show a highlighted line in the place where input will happen.
++ */
++static void
++ShowPrompt(WINDOW *txtwin, int limit)
++{
++    wchgat(txtwin, limit, A_REVERSE, 0, NULL);
++    wnoutrefresh(txtwin);
++}
++
++static void
++MovePrompt(WINDOW *txtwin, int limit, int y, int x)
++{
++    wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
++    wmove(txtwin, y, x);
++    ShowPrompt(txtwin, limit);
++}
++
++static int
++ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
++{
++    const char *name = "?";
++    bool limited = FALSE;
++    bool wins = (txtwin != stdscr);
++    int result;
++
++    switch (flavor) {
++    case eGetStr:
++	name = wins ? "wget_wstr" : "get_wstr";
++	break;
++    case eGetNStr:
++	limited = TRUE;
++	name = wins ? "wgetn_wstr" : "getn_wstr";
++	break;
++    case eMvGetStr:
++	name = wins ? "mvwget_wstr" : "mvget_wstr";
++	break;
++    case eMvGetNStr:
++	limited = TRUE;
++	name = wins ? "mvwgetn_wstr" : "mvgetn_wstr";
++	break;
++    case eMaxFlavor:
++	break;
++    }
++
++    wmove(strwin, 0, 0);
++    werase(strwin);
++
++    if (limited) {
++	wprintw(strwin, "%s(%d):", name, limit);
++    } else {
++	wprintw(strwin, "%s:", name);
++    }
++    result = limited ? limit : Remainder(txtwin);
++    ShowPrompt(txtwin, result);
++
++    wnoutrefresh(strwin);
++    return result;
++}
++
++static int
++test_get_wstr(int level, char **argv, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch;
++    int rc;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int flavor = 0;
++    int limit = getmaxx(strwin) - 5;
++    int actual;
++    wint_t buffer[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((ch = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(ch)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    wmove(txtwin, txt_y, txt_x);
++    actual = ShowFlavor(strwin, txtwin, flavor, limit);
++    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (ch) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1) {
++		MovePrompt(txtwin, actual, ++txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y) {
++		MovePrompt(txtwin, actual, --txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0) {
++		MovePrompt(txtwin, actual, txt_y, --txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1) {
++		MovePrompt(txtwin, actual, txt_y, ++txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case 'w':
++	    test_get_wstr(level + 1, argv, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++
++	case '-':
++	    if (limit > 0) {
++		actual = ShowFlavor(strwin, txtwin, flavor, --limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case '+':
++	    actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
++	    MovePrompt(txtwin, actual, txt_y, txt_x);
++	    break;
++
++	case '<':
++	    if (flavor > 0) {
++		actual = ShowFlavor(strwin, txtwin, --flavor, limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case '>':
++	    if (flavor + 1 < eMaxFlavor) {
++		actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case ':':
++	    actual = ShowFlavor(strwin, txtwin, flavor, limit);
++	    *buffer = '\0';
++	    rc = ERR;
++	    echo();
++	    wattrset(txtwin, A_REVERSE);
++	    switch (flavor) {
++	    case eGetStr:
++		if (txtwin != stdscr) {
++		    wmove(txtwin, txt_y, txt_x);
++		    rc = wget_wstr(txtwin, buffer);
++		} else {
++		    move(txt_y, txt_x);
++		    rc = get_wstr(buffer);
++		}
++		break;
++	    case eGetNStr:
++		if (txtwin != stdscr) {
++		    wmove(txtwin, txt_y, txt_x);
++		    rc = wgetn_wstr(txtwin, buffer, limit);
++		} else {
++		    move(txt_y, txt_x);
++		    rc = getn_wstr(buffer, limit);
++		}
++		break;
++	    case eMvGetStr:
++		if (txtwin != stdscr) {
++		    rc = mvwget_wstr(txtwin, txt_y, txt_x, buffer);
++		} else {
++		    rc = mvget_wstr(txt_y, txt_x, buffer);
++		}
++		break;
++	    case eMvGetNStr:
++		if (txtwin != stdscr) {
++		    rc = mvwgetn_wstr(txtwin, txt_y, txt_x, buffer, limit);
++		} else {
++		    rc = mvgetn_wstr(txt_y, txt_x, buffer, limit);
++		}
++		break;
++	    case eMaxFlavor:
++		break;
++	    }
++	    noecho();
++	    wattrset(txtwin, A_NORMAL);
++	    wprintw(strwin, "%d", rc);
++	    waddwstr(strwin, (wchar_t *) buffer);
++	    wnoutrefresh(strwin);
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++	doupdate();
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
++
++    test_get_wstr(1, argv, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(void)
++{
++    printf("This program requires the wide-ncurses library\n");
++    ExitProgram(EXIT_FAILURE);
++}
++#endif
+Index: test/test_getstr.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_getstr.c	2007-08-11 16:56:25.000000000 +0000
+@@ -0,0 +1,351 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_getstr.c,v 1.7 2007/08/11 16:56:25 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the getstr functions from the curses library.
++
++       int getstr(char *str);
++       int getnstr(char *str, int n);
++       int wgetstr(WINDOW *win, char *str);
++       int wgetnstr(WINDOW *win, char *str, int n);
++       int mvgetstr(int y, int x, char *str);
++       int mvwgetstr(WINDOW *win, int y, int x, char *str);
++       int mvgetnstr(int y, int x, char *str, int n);
++       int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);
++ */
++
++#include <test.priv.h>
++
++#define BASE_Y 6
++#define MAX_COLS 1024
++
++typedef enum {
++    eGetStr = 0,
++    eGetNStr,
++    eMvGetStr,
++    eMvGetNStr,
++    eMaxFlavor
++} Flavors;
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static int
++Remainder(WINDOW *txtwin)
++{
++    int result = getmaxx(txtwin) - getcurx(txtwin);
++    return (result > 0) ? result : 0;
++}
++
++/*
++ * Show a highlighted line in the place where input will happen.
++ */
++static void
++ShowPrompt(WINDOW *txtwin, int limit)
++{
++    wchgat(txtwin, limit, A_REVERSE, 0, NULL);
++    wnoutrefresh(txtwin);
++}
++
++static void
++MovePrompt(WINDOW *txtwin, int limit, int y, int x)
++{
++    wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
++    wmove(txtwin, y, x);
++    ShowPrompt(txtwin, limit);
++}
++
++static int
++ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
++{
++    const char *name = "?";
++    bool limited = FALSE;
++    bool wins = (txtwin != stdscr);
++    int result;
++
++    switch (flavor) {
++    case eGetStr:
++	name = wins ? "wgetstr" : "getstr";
++	break;
++    case eGetNStr:
++	limited = TRUE;
++	name = wins ? "wgetnstr" : "getnstr";
++	break;
++    case eMvGetStr:
++	name = wins ? "mvwgetstr" : "mvgetstr";
++	break;
++    case eMvGetNStr:
++	limited = TRUE;
++	name = wins ? "mvwgetnstr" : "mvgetnstr";
++	break;
++    case eMaxFlavor:
++	break;
++    }
++
++    wmove(strwin, 0, 0);
++    werase(strwin);
++
++    if (limited) {
++	wprintw(strwin, "%s(%d):", name, limit);
++    } else {
++	wprintw(strwin, "%s:", name);
++    }
++    result = limited ? limit : Remainder(txtwin);
++    ShowPrompt(txtwin, result);
++
++    wnoutrefresh(strwin);
++    return result;
++}
++
++static int
++test_getstr(int level, char **argv, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch;
++    int rc;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int flavor = 0;
++    int limit = getmaxx(strwin) - 5;
++    int actual;
++
++    char buffer[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((ch = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(ch)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    wmove(txtwin, txt_y, txt_x);
++    actual = ShowFlavor(strwin, txtwin, flavor, limit);
++    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (ch) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1) {
++		MovePrompt(txtwin, actual, ++txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y) {
++		MovePrompt(txtwin, actual, --txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0) {
++		MovePrompt(txtwin, actual, txt_y, --txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1) {
++		MovePrompt(txtwin, actual, txt_y, ++txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case 'w':
++	    test_getstr(level + 1, argv, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++
++	case '-':
++	    if (limit > 0) {
++		actual = ShowFlavor(strwin, txtwin, flavor, --limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case '+':
++	    actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
++	    MovePrompt(txtwin, actual, txt_y, txt_x);
++	    break;
++
++	case '<':
++	    if (flavor > 0) {
++		actual = ShowFlavor(strwin, txtwin, --flavor, limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case '>':
++	    if (flavor + 1 < eMaxFlavor) {
++		actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
++		MovePrompt(txtwin, actual, txt_y, txt_x);
++	    } else {
++		beep();
++	    }
++	    break;
++
++	case ':':
++	    actual = ShowFlavor(strwin, txtwin, flavor, limit);
++	    *buffer = '\0';
++	    rc = ERR;
++	    echo();
++	    wattrset(txtwin, A_REVERSE);
++	    switch (flavor) {
++	    case eGetStr:
++		if (txtwin != stdscr) {
++		    wmove(txtwin, txt_y, txt_x);
++		    rc = wgetstr(txtwin, buffer);
++		} else {
++		    move(txt_y, txt_x);
++		    rc = getstr(buffer);
++		}
++		break;
++	    case eGetNStr:
++		if (txtwin != stdscr) {
++		    wmove(txtwin, txt_y, txt_x);
++		    rc = wgetnstr(txtwin, buffer, limit);
++		} else {
++		    move(txt_y, txt_x);
++		    rc = getnstr(buffer, limit);
++		}
++		break;
++	    case eMvGetStr:
++		if (txtwin != stdscr) {
++		    rc = mvwgetstr(txtwin, txt_y, txt_x, buffer);
++		} else {
++		    rc = mvgetstr(txt_y, txt_x, buffer);
++		}
++		break;
++	    case eMvGetNStr:
++		if (txtwin != stdscr) {
++		    rc = mvwgetnstr(txtwin, txt_y, txt_x, buffer, limit);
++		} else {
++		    rc = mvgetnstr(txt_y, txt_x, buffer, limit);
++		}
++		break;
++	    case eMaxFlavor:
++		break;
++	    }
++	    noecho();
++	    wattrset(txtwin, A_NORMAL);
++	    wprintw(strwin, "%d:%s", rc, buffer);
++	    wnoutrefresh(strwin);
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++	doupdate();
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
++
++    test_getstr(1, argv, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
+Index: test/test_instr.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_instr.c	2007-07-21 19:38:04.000000000 +0000
+@@ -0,0 +1,260 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_instr.c,v 1.4 2007/07/21 19:38:04 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the instr functions from the curses library.
++
++       int instr(char *str);
++       int innstr(char *str, int n);
++       int winstr(WINDOW *win, char *str);
++       int winnstr(WINDOW *win, char *str, int n);
++       int mvinstr(int y, int x, char *str);
++       int mvinnstr(int y, int x, char *str, int n);
++       int mvwinstr(WINDOW *win, int y, int x, char *str);
++       int mvwinnstr(WINDOW *win, int y, int x, char *str, int n);
++ */
++
++#include <test.priv.h>
++
++#define BASE_Y 6
++#define MAX_COLS 1024
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static void
++show_1st(WINDOW *win, int line, char *buffer)
++{
++    mvwaddstr(win, line, 5, buffer);
++}
++
++static void
++showmore(WINDOW *win, int line, char *buffer)
++{
++    wmove(win, line, 0);
++    wclrtoeol(win);
++    show_1st(win, line, buffer);
++}
++
++static int
++test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int limit = getmaxx(strwin) - 5;
++
++    char buffer[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((ch = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(ch)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (ch) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1)
++		txt_y++;
++	    else
++		beep();
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y)
++		txt_y--;
++	    else
++		beep();
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0)
++		txt_x--;
++	    else
++		beep();
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1)
++		txt_x++;
++	    else
++		beep();
++	    break;
++	case 'w':
++	    test_inchs(level + 1, argv, chrwin, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++	case '-':
++	    if (limit > 0) {
++		--limit;
++	    } else {
++		beep();
++	    }
++	    break;
++	case '+':
++	    ++limit;
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++
++	mvwprintw(chrwin, 0, 0, "line:");
++	wclrtoeol(chrwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++
++	    if (winstr(txtwin, buffer) != ERR) {
++		show_1st(chrwin, 0, buffer);
++	    }
++	    if (mvwinstr(txtwin, txt_y, txt_x, buffer) != ERR) {
++		showmore(chrwin, 1, buffer);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++
++	    if (instr(buffer) != ERR) {
++		show_1st(chrwin, 0, buffer);
++	    }
++	    if (mvinstr(txt_y, txt_x, buffer) != ERR) {
++		showmore(chrwin, 1, buffer);
++	    }
++	}
++	wnoutrefresh(chrwin);
++
++	mvwprintw(strwin, 0, 0, "%4d:", limit);
++	wclrtobot(strwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++	    if (winnstr(txtwin, buffer, limit) != ERR) {
++		show_1st(strwin, 0, buffer);
++	    }
++
++	    if (mvwinnstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
++		showmore(strwin, 1, buffer);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++	    if (innstr(buffer, limit) != ERR) {
++		show_1st(strwin, 0, buffer);
++	    }
++
++	    if (mvinnstr(txt_y, txt_x, buffer, limit) != ERR) {
++		showmore(strwin, 1, buffer);
++	    }
++	}
++
++	wnoutrefresh(strwin);
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *chrwin;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
++    strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
++
++    test_inchs(1, argv, chrwin, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
+Index: test/test_inwstr.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_inwstr.c	2007-07-21 22:47:42.000000000 +0000
+@@ -0,0 +1,269 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_inwstr.c,v 1.3 2007/07/21 22:47:42 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the inwstr functions from the curses library.
++
++       int inwstr(wchar_t *str);
++       int innwstr(wchar_t *str, int n);
++       int winwstr(WINDOW *win, wchar_t *str);
++       int winnwstr(WINDOW *win, wchar_t *str, int n);
++       int mvinwstr(int y, int x, wchar_t *str);
++       int mvinnwstr(int y, int x, wchar_t *str, int n);
++       int mvwinwstr(WINDOW *win, int y, int x, wchar_t *str);
++       int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *str, int n);
++ */
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++#define BASE_Y 6
++#define MAX_COLS 1024
++
++static bool
++Quit(int ch)
++{
++    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++static void
++show_1st(WINDOW *win, int line, wchar_t *buffer)
++{
++    mvwaddwstr(win, line, 5, buffer);
++}
++
++static void
++showmore(WINDOW *win, int line, wchar_t *buffer)
++{
++    wmove(win, line, 0);
++    wclrtoeol(win);
++    show_1st(win, line, buffer);
++}
++
++static int
++test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    int limit = getmaxx(strwin) - 5;
++    wchar_t buffer[MAX_COLS];
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((ch = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(ch)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
++	switch (ch) {
++	case KEY_DOWN:
++	case 'j':
++	    if (txt_y < getmaxy(txtwin) - 1)
++		txt_y++;
++	    else
++		beep();
++	    break;
++	case KEY_UP:
++	case 'k':
++	    if (txt_y > base_y)
++		txt_y--;
++	    else
++		beep();
++	    break;
++	case KEY_LEFT:
++	case 'h':
++	    if (txt_x > 0)
++		txt_x--;
++	    else
++		beep();
++	    break;
++	case KEY_RIGHT:
++	case 'l':
++	    if (txt_x < getmaxx(txtwin) - 1)
++		txt_x++;
++	    else
++		beep();
++	    break;
++	case 'w':
++	    test_inchs(level + 1, argv, chrwin, strwin);
++	    if (txtbox != 0) {
++		touchwin(txtbox);
++		wnoutrefresh(txtbox);
++	    } else {
++		touchwin(txtwin);
++		wnoutrefresh(txtwin);
++	    }
++	    break;
++	case '-':
++	    if (limit > 0) {
++		--limit;
++	    } else {
++		beep();
++	    }
++	    break;
++	case '+':
++	    ++limit;
++	    break;
++	default:
++	    beep();
++	    break;
++	}
++
++	mvwprintw(chrwin, 0, 0, "line:");
++	wclrtoeol(chrwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++
++	    if (winwstr(txtwin, buffer) != ERR) {
++		show_1st(chrwin, 0, buffer);
++	    }
++	    if (mvwinwstr(txtwin, txt_y, txt_x, buffer) != ERR) {
++		showmore(chrwin, 1, buffer);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++
++	    if (inwstr(buffer) != ERR) {
++		show_1st(chrwin, 0, buffer);
++	    }
++	    if (mvinwstr(txt_y, txt_x, buffer) != ERR) {
++		showmore(chrwin, 1, buffer);
++	    }
++	}
++	wnoutrefresh(chrwin);
++
++	mvwprintw(strwin, 0, 0, "%4d:", limit);
++	wclrtobot(strwin);
++
++	if (txtwin != stdscr) {
++	    wmove(txtwin, txt_y, txt_x);
++	    if (winnwstr(txtwin, buffer, limit) != ERR) {
++		show_1st(strwin, 0, buffer);
++	    }
++
++	    if (mvwinnwstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
++		showmore(strwin, 1, buffer);
++	    }
++	} else {
++	    move(txt_y, txt_x);
++	    if (innwstr(buffer, limit) != ERR) {
++		show_1st(strwin, 0, buffer);
++	    }
++
++	    if (mvinnwstr(txt_y, txt_x, buffer, limit) != ERR) {
++		showmore(strwin, 1, buffer);
++	    }
++	}
++
++	wnoutrefresh(strwin);
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *chrbox;
++    WINDOW *chrwin;
++    WINDOW *strwin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(chrbox, 0, 0);
++    wnoutrefresh(chrbox);
++
++    chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
++    strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
++
++    test_inchs(1, argv, chrwin, strwin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(void)
++{
++    printf("This program requires the wide-ncurses library\n");
++    ExitProgram(EXIT_FAILURE);
++}
++#endif
+Index: test/test_opaque.c
+--- /dev/null	2007-12-08 19:14:25.328509000 +0000
++++ ncurses-5.6-20071201/test/test_opaque.c	2007-08-18 17:51:51.000000000 +0000
+@@ -0,0 +1,421 @@
++/****************************************************************************
++ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: test_opaque.c,v 1.4 2007/08/18 17:51:51 tom Exp $
++ *
++ * Author: Thomas E Dickey
++ *
++ * Demonstrate the opaque functions from the curses library.
++
++       WINDOW * wgetparent (const WINDOW *);
++       bool is_cleared(const WINDOW *win);
++       bool is_idcok(const WINDOW *win);
++       bool is_idlok(const WINDOW *win);
++       bool is_immedok(const WINDOW *win);
++       bool is_keypad(const WINDOW *win);
++       bool is_leaveok(const WINDOW *win);
++       bool is_nodelay(const WINDOW *win);
++       bool is_notimeout(const WINDOW *win);
++       bool is_scrollok(const WINDOW *win);
++       bool is_syncok(const WINDOW *win);
++       int wgetscrreg (const WINDOW *, int *, int *);
++ */
++
++#include <test.priv.h>
++
++#define BASE_Y 6
++#define MAX_COLS 1024
++
++static bool
++Quit(int ch)
++{
++    return (ch == 'q' || ch == QUIT || ch == ESCAPE);
++}
++
++typedef bool(*BoolOpaque) (WINDOW *, int);
++
++static bool
++test_opaque_cleared(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	if (mode)
++	    wclear(win);
++    }
++    return is_cleared(win);
++}
++
++static bool
++test_opaque_idcok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	idcok(win, mode);
++    }
++    return is_idcok(win);
++}
++
++static bool
++test_opaque_idlok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	idlok(win, mode);
++    }
++    return is_idlok(win);
++}
++
++static bool
++test_opaque_immedok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	immedok(win, mode);
++    }
++    return is_immedok(win);
++}
++
++static bool
++test_opaque_keypad(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	keypad(win, mode);
++    }
++    return is_keypad(win);
++}
++
++static bool
++test_opaque_leaveok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	leaveok(win, mode);
++    }
++    return is_leaveok(win);
++}
++
++static bool
++test_opaque_nodelay(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	nodelay(win, mode);
++    }
++    return is_nodelay(win);
++}
++
++static bool
++test_opaque_notimeout(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	notimeout(win, mode);
++    }
++    return is_notimeout(win);
++}
++
++static bool
++test_opaque_scrollok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	scrollok(win, mode);
++    }
++    return is_scrollok(win);
++}
++
++static bool
++test_opaque_syncok(WINDOW *win, int mode)
++{
++    if (mode >= 0) {
++	syncok(win, mode);
++    }
++    return is_syncok(win);
++}
++
++static int
++status_y(WINDOW *stswin, int cell)
++{
++    return (cell % getmaxy(stswin));
++}
++
++static int
++status_x(WINDOW *stswin, int cell)
++{
++    return (15 * (cell / getmaxy(stswin)));
++}
++
++static void
++to_keyword(WINDOW *stswin, int cell)
++{
++    wmove(stswin, status_y(stswin, cell), status_x(stswin, cell));
++}
++
++static void
++to_result(WINDOW *stswin, int cell, bool before)
++{
++    int y = status_y(stswin, cell);
++    int x = status_x(stswin, cell) + 11;
++    if (!before)
++	++x;
++    wmove(stswin, y, x);
++}
++
++static void
++show_keyword(WINDOW *stswin, int cell, int active, const char *name)
++{
++    to_keyword(stswin, cell);
++    if (active == cell)
++	wstandout(stswin);
++    wprintw(stswin, "%s:", name);
++    if (active == cell)
++	wstandend(stswin);
++}
++/* *INDENT-OFF* */
++static struct {
++    const char *name;
++    BoolOpaque func;
++} bool_funcs[] = {
++    { "cleared",   test_opaque_cleared },
++    { "idcok",     test_opaque_idcok },
++    { "idlok",     test_opaque_idlok },
++    { "immedok",   test_opaque_immedok },
++    { "keypad",    test_opaque_keypad },
++    { "leaveok",   test_opaque_leaveok },
++    { "nodelay",   test_opaque_nodelay },
++    { "notimeout", test_opaque_notimeout },
++    { "scrollok",  test_opaque_scrollok },
++    { "syncok",    test_opaque_syncok }
++};
++/* *INDENT-ON* */
++
++/*
++ * Display and/or allow update for the properties accessed in the opaque
++ * window.  Some may change state after refreshing the window, so we
++ * distinguish between them using the 'before' parameter.
++ */
++static int
++show_opaque(WINDOW *stswin, WINDOW *txtwin, bool before, int active)
++{
++    int n;
++    int top, bottom;
++
++    if (before) {
++	werase(stswin);
++    }
++    for (n = 0; n < (int) SIZEOF(bool_funcs); ++n) {
++	show_keyword(stswin, n, active, bool_funcs[n].name);
++
++	to_result(stswin, n, before);
++	wprintw(stswin, "%c", bool_funcs[n].func(txtwin, -1) ? 'T' : 'F');
++    }
++
++    show_keyword(stswin, n, active, "wgetparent");
++    to_result(stswin, n, TRUE);
++    wprintw(stswin, "%p", wgetparent(txtwin));
++
++    ++n;
++    show_keyword(stswin, n, active, "wgetscrreg");
++    to_result(stswin, n, TRUE);
++    if (wgetscrreg(txtwin, &top, &bottom) == OK)
++	wprintw(stswin, "%d,%d", top, bottom);
++
++    wnoutrefresh(stswin);
++    return active;
++}
++
++static int
++test_opaque(int level, char **argv, WINDOW *stswin)
++{
++    WINDOW *txtbox = 0;
++    WINDOW *txtwin = 0;
++    FILE *fp;
++    int ch;
++    int txt_x = 0, txt_y = 0;
++    int base_y;
++    bool in_status = FALSE;
++    int active = 0;
++
++    if (argv[level] == 0) {
++	beep();
++	return FALSE;
++    }
++
++    if (level > 1) {
++	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
++	box(txtbox, 0, 0);
++	wnoutrefresh(txtbox);
++
++	txtwin = derwin(txtbox,
++			getmaxy(txtbox) - 2,
++			getmaxx(txtbox) - 2,
++			1, 1);
++	base_y = 0;
++    } else {
++	txtwin = stdscr;
++	base_y = BASE_Y;
++    }
++
++    keypad(txtwin, TRUE);	/* enable keyboard mapping */
++    (void) cbreak();		/* take input chars one at a time, no wait for \n */
++    (void) noecho();		/* don't echo input */
++
++    txt_y = base_y;
++    txt_x = 0;
++    wmove(txtwin, txt_y, txt_x);
++
++    if ((fp = fopen(argv[level], "r")) != 0) {
++	while ((ch = fgetc(fp)) != EOF) {
++	    if (waddch(txtwin, UChar(ch)) != OK) {
++		break;
++	    }
++	}
++	fclose(fp);
++    } else {
++	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
++    }
++
++    for (;;) {
++	if (in_status) {
++	    to_keyword(stswin, active);
++
++	    ch = wgetch(stswin);
++	    show_opaque(stswin, txtwin, TRUE, active);
++	    if (Quit(ch))
++		break;
++
++	    switch (ch) {
++	    case '\t':
++		in_status = FALSE;
++		break;
++	    case KEY_DOWN:
++	    case 'j':
++		if (active < (int) SIZEOF(bool_funcs) - 1)
++		    active++;
++		else
++		    beep();
++		break;
++	    case KEY_UP:
++	    case 'k':
++		if (active > 0)
++		    active--;
++		else
++		    beep();
++		break;
++	    case ' ':
++		bool_funcs[active].func(txtwin,
++									 !bool_funcs[active].func(txtwin, -1));
++		break;
++	    default:
++		beep();
++		break;
++	    }
++	    show_opaque(stswin, txtwin, FALSE, in_status ? active : -1);
++	} else {
++	    ch = mvwgetch(txtwin, txt_y, txt_x);
++	    show_opaque(stswin, txtwin, TRUE, -1);
++	    if (Quit(ch))
++		break;
++
++	    switch (ch) {
++	    case '\t':
++		in_status = TRUE;
++		break;
++	    case KEY_DOWN:
++	    case 'j':
++		if (txt_y < getmaxy(txtwin) - 1)
++		    txt_y++;
++		else
++		    beep();
++		break;
++	    case KEY_UP:
++	    case 'k':
++		if (txt_y > base_y)
++		    txt_y--;
++		else
++		    beep();
++		break;
++	    case KEY_LEFT:
++	    case 'h':
++		if (txt_x > 0)
++		    txt_x--;
++		else
++		    beep();
++		break;
++	    case KEY_RIGHT:
++	    case 'l':
++		if (txt_x < getmaxx(txtwin) - 1)
++		    txt_x++;
++		else
++		    beep();
++		break;
++	    case 'w':
++		test_opaque(level + 1, argv, stswin);
++		if (txtbox != 0) {
++		    touchwin(txtbox);
++		    wnoutrefresh(txtbox);
++		} else {
++		    touchwin(txtwin);
++		    wnoutrefresh(txtwin);
++		}
++		break;
++	    default:
++		beep();
++		napms(100);
++		break;
++	    }
++
++	    show_opaque(stswin, txtwin, FALSE, -1);
++	}
++    }
++    if (level > 1) {
++	delwin(txtwin);
++	delwin(txtbox);
++    }
++    return TRUE;
++}
++
++int
++main(int argc, char *argv[])
++{
++    WINDOW *stsbox;
++    WINDOW *stswin;
++
++    setlocale(LC_ALL, "");
++
++    if (argc < 2) {
++	fprintf(stderr, "usage: %s file\n", argv[0]);
++	return EXIT_FAILURE;
++    }
++
++    initscr();
++
++    stsbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
++    box(stsbox, 0, 0);
++    wnoutrefresh(stsbox);
++
++    stswin = derwin(stsbox, BASE_Y - 2, COLS - 2, 1, 1);
++    keypad(stswin, TRUE);
++
++    test_opaque(1, argv, stswin);
++
++    endwin();
++    ExitProgram(EXIT_SUCCESS);
++}
+Index: test/view.c
+Prereq:  1.64 
+--- ncurses-5.6/test/view.c	2006-05-20 15:37:03.000000000 +0000
++++ ncurses-5.6-20071201/test/view.c	2007-07-21 17:41:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -50,7 +50,7 @@
+  * scroll operation worked, and the refresh() code only had to do a
+  * partial repaint.
+  *
+- * $Id: view.c,v 1.64 2006/05/20 15:37:03 tom Exp $
++ * $Id: view.c,v 1.66 2007/07/21 17:41:55 tom Exp $
+  */
+ 
+ #include <test.priv.h>
+@@ -229,7 +229,7 @@
+     (void) signal(SIGINT, finish);	/* arrange interrupts to terminate */
+ #endif
+ 
+-    while ((i = getopt(argc, argv, "cin:rtT:")) != EOF) {
++    while ((i = getopt(argc, argv, "cin:rtT:")) != -1) {
+ 	switch (i) {
+ 	case 'c':
+ 	    try_color = TRUE;
+@@ -374,7 +374,7 @@
+ 		    lptr++;
+ 		else
+ 		    break;
+-	    wscrl(stdscr, lptr - olptr);
++	    scrl(lptr - olptr);
+ 	    break;
+ 
+ 	case KEY_UP:
+@@ -385,7 +385,7 @@
+ 		    lptr--;
+ 		else
+ 		    break;
+-	    wscrl(stdscr, lptr - olptr);
++	    scrl(lptr - olptr);
+ 	    break;
+ 
+ 	case 'h':
+Index: test/worm.c
+Prereq:  1.41 
+--- ncurses-5.6/test/worm.c	2006-07-01 22:57:24.000000000 +0000
++++ ncurses-5.6-20071201/test/worm.c	2007-09-29 17:35:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -61,11 +61,15 @@
+   traces will be dumped.  The program stops and waits for one character of
+   input at the beginning and end of the interval.
+ 
+-  $Id: worm.c,v 1.41 2006/07/01 22:57:24 tom Exp $
++  $Id: worm.c,v 1.49 2007/09/29 17:35:57 tom Exp $
+ */
+ 
+ #include <test.priv.h>
+ 
++#ifdef USE_PTHREADS
++#include <pthread.h>
++#endif
++
+ static chtype flavor[] =
+ {
+     'O', '*', '#', '$', '%', '0', '@',
+@@ -77,17 +81,27 @@
+ {
+     -1, 0, 1, 1, 1, 0, -1, -1
+ };
+-static struct worm {
+-    int orientation, head;
+-    short *xpos, *ypos;
+-} worm[40];
++
++typedef struct worm {
++    int orientation;
++    int head;
++    short *xpos;
++    short *ypos;
++    chtype attrs;
++#ifdef USE_PTHREADS
++    pthread_t thread;
++#endif
++} WORM;
++
++static WORM worm[40];
++static short **refs;
+ 
+ static const char *field;
+ static int length = 16, number = 3;
+ static chtype trail = ' ';
+ 
+ #ifdef TRACE
+-static int generation, trace_start, trace_end, singlestep;
++static int generation, trace_start, trace_end;
+ #endif /* TRACE */
+ /* *INDENT-OFF* */
+ static const struct options {
+@@ -200,15 +214,147 @@
+     return ((float) r / 32768.);
+ }
+ 
++static int
++draw_worm(WINDOW *win, void *data)
++{
++    WORM *w = (WORM *) data;
++    const struct options *op;
++
++    int x;
++    int y;
++    int h;
++
++    int bottom = LINES - 1;
++    int last = COLS - 1;
++
++    bool done = FALSE;
++
++    if ((x = w->xpos[h = w->head]) < 0) {
++	wmove(win, y = w->ypos[h] = bottom, x = w->xpos[h] = 0);
++	waddch(win, w->attrs);
++	refs[y][x]++;
++    } else {
++	y = w->ypos[h];
++    }
++
++    if (x > last)
++	x = last;
++    if (y > bottom)
++	y = bottom;
++
++    if (++h == length)
++	h = 0;
++
++    if (w->xpos[w->head = h] >= 0) {
++	int x1, y1;
++	x1 = w->xpos[h];
++	y1 = w->ypos[h];
++	if (y1 < LINES
++	    && x1 < COLS
++	    && --refs[y1][x1] == 0) {
++	    wmove(win, y1, x1);
++	    waddch(win, trail);
++	}
++    }
++
++    op = &(x == 0
++	   ? (y == 0
++	      ? upleft
++	      : (y == bottom
++		 ? lowleft
++		 : left))
++	   : (x == last
++	      ? (y == 0
++		 ? upright
++		 : (y == bottom
++		    ? lowright
++		    : right))
++	      : (y == 0
++		 ? upper
++		 : (y == bottom
++		    ? lower
++		    : normal))))[w->orientation];
++
++    switch (op->nopts) {
++    case 0:
++	done = TRUE;
++	break;
++    case 1:
++	w->orientation = op->opts[0];
++	break;
++    default:
++	w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
++	break;
++    }
++
++    if (!done) {
++	x += xinc[w->orientation];
++	y += yinc[w->orientation];
++	wmove(win, y, x);
++
++	if (y < 0)
++	    y = 0;
++	waddch(win, w->attrs);
++
++	w->ypos[h] = y;
++	w->xpos[h] = x;
++	refs[y][x]++;
++    }
++
++    return done;
++}
++
++#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915)
++static int
++use_window(WINDOW *win, int (*func) (WINDOW *, void *), void *data)
++{
++    return func(win, data);
++}
++#endif
++
++#ifdef USE_PTHREADS
++static void *
++start_worm(void *arg)
++{
++    for (;;) {
++	napms(20);
++	use_window(stdscr, draw_worm, arg);
++    }
++    return NULL;
++}
++#endif
++
++static bool
++draw_all_worms(void)
++{
++    bool done = FALSE;
++    int n;
++    struct worm *w;
++
++#ifdef USE_PTHREADS
++    static bool first = TRUE;
++    if (first) {
++	first = FALSE;
++	for (n = 0, w = &worm[0]; n < number; n++, w++) {
++	    int rc;
++	    rc = pthread_create(&(w->thread), NULL, start_worm, w);
++	}
++    }
++#else
++    for (n = 0, w = &worm[0]; n < number; n++, w++) {
++	if (use_window(stdscr, draw_worm, w))
++	    done = TRUE;
++    }
++#endif
++    return done;
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+-    short **ref;
+     int x, y;
+     int n;
+     struct worm *w;
+-    const struct options *op;
+-    int h;
+     short *ip;
+     int last, bottom;
+     bool done = FALSE;
+@@ -244,9 +390,6 @@
+ 	    trail = '.';
+ 	    break;
+ #ifdef TRACE
+-	case 'S':
+-	    singlestep = TRUE;
+-	    break;
+ 	case 'T':
+ 	    trace_start = atoi(argv[++x]);
+ 	    trace_end = atoi(argv[++x]);
+@@ -297,21 +440,24 @@
+     }
+ #endif /* A_COLOR */
+ 
+-    ref = typeMalloc(short *, LINES);
++    refs = typeMalloc(short *, LINES);
+     for (y = 0; y < LINES; y++) {
+-	ref[y] = typeMalloc(short, COLS);
++	refs[y] = typeMalloc(short, COLS);
+ 	for (x = 0; x < COLS; x++) {
+-	    ref[y][x] = 0;
++	    refs[y][x] = 0;
+ 	}
+     }
+ 
+ #ifdef BADCORNER
+     /* if addressing the lower right corner doesn't work in your curses */
+-    ref[bottom][last] = 1;
++    refs[bottom][last] = 1;
+ #endif /* BADCORNER */
+ 
+     for (n = number, w = &worm[0]; --n >= 0; w++) {
+-	w->orientation = w->head = 0;
++	w->attrs = flavor[n % SIZEOF(flavor)];
++	w->orientation = 0;
++	w->head = 0;
++
+ 	if (!(ip = typeMalloc(short, (length + 1)))) {
+ 	    fprintf(stderr, "%s: out of memory\n", *argv);
+ 	    ExitProgram(EXIT_FAILURE);
+@@ -340,48 +486,43 @@
+     }
+     napms(10);
+     refresh();
+-#ifndef TRACE
+     nodelay(stdscr, TRUE);
+-#endif
+ 
+     while (!done) {
+-#ifdef TRACE
+-	if (trace_start || trace_end) {
+-	    if (generation == trace_start) {
+-		trace(TRACE_CALLS);
+-		getch();
+-	    } else if (generation == trace_end) {
+-		trace(0);
+-		getch();
+-	    }
+-
+-	    if (singlestep && generation > trace_start && generation < trace_end)
+-		getch();
+-
+-	    generation++;
+-	}
+-#else
+ 	int ch;
+ 
+ 	if ((ch = getch()) > 0) {
++#ifdef TRACE
++	    if (trace_start || trace_end) {
++		if (generation == trace_start) {
++		    trace(TRACE_CALLS);
++		    getch();
++		} else if (generation == trace_end) {
++		    trace(0);
++		    getch();
++		}
++
++		generation++;
++	    }
++#endif
+ #ifdef KEY_RESIZE
+ 	    if (ch == KEY_RESIZE) {
+ 		if (last != COLS - 1) {
+ 		    for (y = 0; y <= bottom; y++) {
+-			ref[y] = typeRealloc(short, COLS, ref[y]);
++			refs[y] = typeRealloc(short, COLS, refs[y]);
+ 			for (x = last + 1; x < COLS; x++)
+-			    ref[y][x] = 0;
++			    refs[y][x] = 0;
+ 		    }
+ 		    last = COLS - 1;
+ 		}
+ 		if (bottom != LINES - 1) {
+ 		    for (y = LINES; y <= bottom; y++)
+-			free(ref[y]);
+-		    ref = typeRealloc(short *, LINES, ref);
++			free(refs[y]);
++		    refs = typeRealloc(short *, LINES, refs);
+ 		    for (y = bottom + 1; y < LINES; y++) {
+-			ref[y] = typeMalloc(short, COLS);
++			refs[y] = typeMalloc(short, COLS);
+ 			for (x = 0; x < COLS; x++)
+-			    ref[y][x] = 0;
++			    refs[y][x] = 0;
+ 		    }
+ 		    bottom = LINES - 1;
+ 		}
+@@ -400,55 +541,8 @@
+ 		nodelay(stdscr, TRUE);
+ 	    }
+ 	}
+-#endif /* TRACE */
+ 
+-	for (n = 0, w = &worm[0]; n < number; n++, w++) {
+-	    if ((x = w->xpos[h = w->head]) < 0) {
+-		move(y = w->ypos[h] = bottom, x = w->xpos[h] = 0);
+-		addch(flavor[n % SIZEOF(flavor)]);
+-		ref[y][x]++;
+-	    } else {
+-		y = w->ypos[h];
+-	    }
+-	    if (x > last)
+-		x = last;
+-	    if (y > bottom)
+-		y = bottom;
+-	    if (++h == length)
+-		h = 0;
+-	    if (w->xpos[w->head = h] >= 0) {
+-		int x1, y1;
+-		x1 = w->xpos[h];
+-		y1 = w->ypos[h];
+-		if (y1 < LINES
+-		    && x1 < COLS
+-		    && --ref[y1][x1] == 0) {
+-		    move(y1, x1);
+-		    addch(trail);
+-		}
+-	    }
+-	    op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
+-						left)) :
+-		   (x == last ? (y == 0 ? upright : (y == bottom ? lowright :
+-						     right)) :
+-		    (y == 0 ? upper : (y == bottom ? lower : normal))))[w->orientation];
+-	    switch (op->nopts) {
+-	    case 0:
+-		done = TRUE;
+-		continue;
+-	    case 1:
+-		w->orientation = op->opts[0];
+-		break;
+-	    default:
+-		w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
+-	    }
+-	    move(y += yinc[w->orientation], x += xinc[w->orientation]);
+-
+-	    if (y < 0)
+-		y = 0;
+-	    addch(flavor[n % SIZEOF(flavor)]);
+-	    ref[w->ypos[h] = y][w->xpos[h] = x]++;
+-	}
++	done = draw_all_worms();
+ 	napms(10);
+ 	refresh();
+     }
+@@ -456,9 +550,9 @@
+     cleanup();
+ #ifdef NO_LEAKS
+     for (y = 0; y < LINES; y++) {
+-	free(ref[y]);
++	free(refs[y]);
+     }
+-    free(ref);
++    free(refs);
+     for (n = number, w = &worm[0]; --n >= 0; w++) {
+ 	free(w->xpos);
+ 	free(w->ypos);
diff -Naur ncurses-5.6.orig/panel/Makefile.in ncurses-5.6/panel/Makefile.in
--- ncurses-5.6.orig/panel/Makefile.in	2006-10-14 16:40:36.000000000 -0400
+++ ncurses-5.6/panel/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.47 2006/10/14 20:40:36 tom Exp $
+# $Id: Makefile.in,v 1.52 2007/04/28 14:56:11 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -27,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1996-2002
+# Author: Thomas E. Dickey 1996-on
 #
 # Makefile for panels source code.
 #
@@ -92,7 +92,7 @@
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
 
-LINK		= $(LIBTOOL_LINK) $(CC)
+LINK		= $(LIBTOOL_LINK)
 LDFLAGS		= @LDFLAGS@ @LD_MODEL@ @LIBS@
 
 SHLIB_DIRS	= -L../lib
@@ -107,8 +107,6 @@
 
 RANLIB		= @LIB_PREP@
 
-IMPORT_LIB	= @IMPORT_LIB@
-SHARED_LIB	= @SHARED_LIB@
 LIBRARIES	= @LIBS_TO_MAKE@
 
 LINT		= @LINT@
@@ -127,7 +125,7 @@
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 # make a copy to simplify include-paths while still keeping panel's include
 # file in this directory.
diff -Naur ncurses-5.6.orig/panel/headers ncurses-5.6/panel/headers
--- ncurses-5.6.orig/panel/headers	1998-02-11 07:14:01.000000000 -0500
+++ ncurses-5.6/panel/headers	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -29,3 +29,4 @@
 # Author: Thomas E. Dickey <dickey@clark.net> 1996
 #
 $(srcdir)/panel.h
+# vile:makemode
diff -Naur ncurses-5.6.orig/panel/modules ncurses-5.6/panel/modules
--- ncurses-5.6.orig/panel/modules	1998-02-11 07:14:02.000000000 -0500
+++ ncurses-5.6/panel/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,6 @@
+# $Id: modules,v 1.9 2006/12/24 00:53:17 tom Exp $
 ##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc.                          #
+# Copyright (c) 1998,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"), #
@@ -26,7 +27,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
+# Author: Thomas E. Dickey	1995-on
 #
 
 @ base
@@ -47,3 +48,4 @@
 p_user		lib		$(srcdir)	$(PANEL_PRIV_H)
 p_win		lib		$(srcdir)	$(PANEL_PRIV_H)
 
+# vile:makemode
diff -Naur ncurses-5.6.orig/progs/Makefile.in ncurses-5.6/progs/Makefile.in
--- ncurses-5.6.orig/progs/Makefile.in	2006-12-17 10:55:48.000000000 -0500
+++ ncurses-5.6/progs/Makefile.in	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.70 2006/12/17 15:55:48 tom Exp $
+# $Id: Makefile.in,v 1.77 2007/10/13 22:25:53 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -98,9 +98,8 @@
 LOCAL_LIBDIR	= @top_builddir@/lib
 
 LD		= @LD@
-LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
-LDFLAGS		= @EXTRA_LDFLAGS@ \
-		@TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
+LINK		= @LINK_PROGS@ $(LIBTOOL_LINK)
+LDFLAGS		= @EXTRA_LDFLAGS@ @LDFLAGS@
 
 LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LIBTOOL)
 LDFLAGS_NORMAL	= $(LDFLAGS) $(CFLAGS_NORMAL)
@@ -110,6 +109,12 @@
 
 LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@)
 
+LIBS_TIC	= @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
+LDFLAGS_TIC	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
+
+LIBS_TINFO	= @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
+LDFLAGS_TINFO	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
+
 LINT		= @LINT@
 LINT_OPTS	= @LINT_OPTS@
 LINT_LIBS	= -lncurses @LIBS@
@@ -200,7 +205,7 @@
 	-@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
 
 $(DESTDIR)$(bindir) :
-	sh $(srcdir)/../mkinstalldirs $@
+	sh $(srcdir)/../mkdirs.sh $@
 
 #
 # Utilities normally built by make all start here
@@ -211,40 +216,38 @@
 	$(MODEL)/dump_entry$o
 
 tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
-	@ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
 
 DEPS_TOE = \
-	$(MODEL)/toe$o \
-	$(MODEL)/dump_entry$o
+	$(MODEL)/toe$o
 
 toe$x: $(DEPS_TOE) $(DEPS_CURSES)
-	@ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
 
 DEPS_CLEAR = \
 	$(MODEL)/clear$o
 
 clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
-	@ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
 
 DEPS_TPUT = \
 	$(MODEL)/tput$o
 
 tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
-	@ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
 
 DEPS_INFOCMP = \
 	$(MODEL)/infocmp$o \
 	$(MODEL)/dump_entry$o
 
 infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
-	@ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
 
 DEPS_TSET = \
-	$(MODEL)/tset$o \
-	$(MODEL)/dump_entry$o
+	$(MODEL)/tset$o
 
 tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
-	@ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
+	@ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
 
 termsort.c: $(srcdir)/MKtermsort.sh
 	sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
diff -Naur ncurses-5.6.orig/progs/clear.c ncurses-5.6/progs/clear.c
--- ncurses-5.6.orig/progs/clear.c	2006-05-20 13:47:47.000000000 -0400
+++ ncurses-5.6/progs/clear.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -36,9 +36,10 @@
  * clear.c --  clears the terminal's screen
  */
 
+#define USE_LIBTINFO
 #include <progs.priv.h>
 
-MODULE_ID("$Id: clear.c,v 1.10 2006/05/20 17:47:47 tom Exp $")
+MODULE_ID("$Id: clear.c,v 1.11 2007/10/13 22:16:02 tom Exp $")
 
 static int
 putch(int c)
diff -Naur ncurses-5.6.orig/progs/dump_entry.c ncurses-5.6/progs/dump_entry.c
--- ncurses-5.6.orig/progs/dump_entry.c	2006-09-30 16:18:15.000000000 -0400
+++ ncurses-5.6/progs/dump_entry.c	2008-06-18 06:49:50.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,7 +39,7 @@
 #include "termsort.c"		/* this C file is generated */
 #include <parametrized.h>	/* so is this */
 
-MODULE_ID("$Id: dump_entry.c,v 1.79 2006/09/30 20:18:15 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.82 2008/04/19 22:27:04 tom Exp $")
 
 #define INDENT			8
 #define DISCARD(string) string = ABSENT_STRING
@@ -352,14 +352,17 @@
 	}
 	break;
 
+#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \
+			  type##_from_termcap[idx])
+
     case V_BSD:		/* BSD */
 	switch (type) {
 	case BOOLEAN:
-	    return bool_from_termcap[idx];
+	    return is_termcap(bool);
 	case NUMBER:
-	    return num_from_termcap[idx];
+	    return is_termcap(num);
 	case STRING:
-	    return str_from_termcap[idx];
+	    return is_termcap(str);
 	}
 	break;
     }
@@ -536,6 +539,10 @@
 	    params = FALSE;
 	    percent = FALSE;
 	    break;
+	case ' ':
+	    strncpy_DYN(&tmpbuf, "\\s", 2);
+	    ++src;
+	    continue;
 	default:
 	    percent = FALSE;
 	    break;
@@ -788,11 +795,11 @@
      * Much more work should be done on this to support dumping termcaps.
      */
     if (tversion == V_HPUX) {
-	if (memory_lock) {
+	if (VALID_STRING(memory_lock)) {
 	    (void) sprintf(buffer, "meml=%s", memory_lock);
 	    WRAP_CONCAT;
 	}
-	if (memory_unlock) {
+	if (VALID_STRING(memory_unlock)) {
 	    (void) sprintf(buffer, "memu=%s", memory_unlock);
 	    WRAP_CONCAT;
 	}
@@ -1223,7 +1230,7 @@
 	bool fix_needed = FALSE;
 
 	for (n = 0, source = 0; acs_chars[n] != 0; n++) {
-	    target = acs_chars[n];
+	    target = UChar(acs_chars[n]);
 	    if (source >= target) {
 		fix_needed = TRUE;
 		break;
@@ -1235,7 +1242,7 @@
 	if (fix_needed) {
 	    memset(mapped, 0, sizeof(mapped));
 	    for (n = 0; acs_chars[n] != 0; n++) {
-		source = acs_chars[n];
+		source = UChar(acs_chars[n]);
 		if ((target = (unsigned char) acs_chars[n + 1]) != 0) {
 		    mapped[source] = target;
 		    n++;
diff -Naur ncurses-5.6.orig/progs/infocmp.c ncurses-5.6/progs/infocmp.c
--- ncurses-5.6.orig/progs/infocmp.c	2006-08-19 17:20:37.000000000 -0400
+++ ncurses-5.6/progs/infocmp.c	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -35,18 +35,18 @@
 /*
  *	infocmp.c -- decompile an entry, or compare two entries
  *		written by Eric S. Raymond
+ *		and Thomas E Dickey
  */
 
 #include <progs.priv.h>
 
 #include <dump_entry.h>
 
-MODULE_ID("$Id: infocmp.c,v 1.85 2006/08/19 21:20:37 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.96 2008/01/19 21:08:07 tom Exp $")
 
 #define L_CURL "{"
 #define R_CURL "}"
 
-#define MAXTERMS	32	/* max # terminal arguments we can handle */
 #define MAX_STRING	1024	/* maximum formatted string */
 
 const char *_nc_progname = "infocmp";
@@ -60,8 +60,7 @@
  *
  ***************************************************************************/
 
-static char *tname[MAXTERMS];	/* terminal type names */
-static ENTRY entries[MAXTERMS];	/* terminfo entries */
+static ENTRY *entries;		/* terminfo entries */
 static int termcount;		/* count of terminal entries */
 
 static bool limited = TRUE;	/* "-r" option is not set */
@@ -96,7 +95,8 @@
     while (termcount-- > 0)
 	_nc_free_termtype(&entries[termcount].tterm);
     _nc_leaks_dump_entry();
-    _nc_free_and_exit(code);
+    free(entries);
+    _nc_free_tic(code);
 }
 #endif
 
@@ -932,7 +932,8 @@
 		case C_DIFFERENCE:
 		    if (itrace)
 			(void) fprintf(stderr,
-				       "infocmp: dumping differences\n");
+				       "%s: dumping differences\n",
+				       _nc_progname);
 		    (void) printf("comparing %s to %s.\n", name1, name2);
 		    compare_entry(compare_predicate, &entries->tterm, quiet);
 		    break;
@@ -940,7 +941,8 @@
 		case C_COMMON:
 		    if (itrace)
 			(void) fprintf(stderr,
-				       "infocmp: dumping common capabilities\n");
+				       "%s: dumping common capabilities\n",
+				       _nc_progname);
 		    (void) printf("comparing %s to %s.\n", name1, name2);
 		    compare_entry(compare_predicate, &entries->tterm, quiet);
 		    break;
@@ -948,7 +950,8 @@
 		case C_NAND:
 		    if (itrace)
 			(void) fprintf(stderr,
-				       "infocmp: dumping differences\n");
+				       "%s: dumping differences\n",
+				       _nc_progname);
 		    (void) printf("comparing %s to %s.\n", name1, name2);
 		    compare_entry(compare_predicate, &entries->tterm, quiet);
 		    break;
@@ -1083,7 +1086,6 @@
 	    }
 	    *tp++ = '"';
 	    *tp = '\0';
-	    size += (strlen(term->Strings[n]) + 1);
 	    (void) printf("static char %-20s[] = %s;\n",
 			  string_variable(ExtStrname(term, n, strnames)), buf);
 	}
@@ -1213,6 +1215,8 @@
 		  NUM_STRINGS(term) - STRCOUNT);
 
     (void) printf("#endif /* NCURSES_XNAMES */\n");
+#else
+    (void) term;
 #endif /* NCURSES_XNAMES */
     (void) printf("\t%s\n", R_CURL);
 }
@@ -1237,7 +1241,8 @@
 
     if ((terminal = getenv("TERM")) == 0) {
 	(void) fprintf(stderr,
-		       "infocmp: environment variable TERM not set\n");
+		       "%s: environment variable TERM not set\n",
+		       _nc_progname);
 	exit(EXIT_FAILURE);
     }
     return terminal;
@@ -1252,10 +1257,15 @@
 int
 main(int argc, char *argv[])
 {
-    char *firstdir, *restdir;
     /* Avoid "local data >32k" error with mwcc */
     /* Also avoid overflowing smaller stacks on systems like AmigaOS */
-    path *tfile = (path *) malloc(sizeof(path) * MAXTERMS);
+    path *tfile = 0;
+    char **tname = 0;
+    int maxterms;
+
+    char **myargv;
+
+    char *firstdir, *restdir;
     int c, i, len;
     bool formatted = FALSE;
     bool filecompare = FALSE;
@@ -1270,9 +1280,16 @@
     use_extended_names(FALSE);
 #endif
 
+    _nc_progname = _nc_rootname(argv[0]);
+
+    /* make sure we have enough space to add two terminal entries */
+    myargv = typeCalloc(char *, argc + 3);
+    memcpy(myargv, argv, sizeof(char *) * argc);
+    argv = myargv;
+
     while ((c = getopt(argc,
 		       argv,
-		       "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != EOF) {
+		       "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) {
 	switch (c) {
 	case '1':
 	    mwidth = 0;
@@ -1373,7 +1390,6 @@
 
 	case 'r':
 	    tversion = 0;
-	    limited = FALSE;
 	    break;
 
 	case 's':
@@ -1387,7 +1403,8 @@
 		sortmode = S_TERMCAP;
 	    else {
 		(void) fprintf(stderr,
-			       "infocmp: unknown sort mode\n");
+			       "%s: unknown sort mode\n",
+			       _nc_progname);
 		ExitProgram(EXIT_FAILURE);
 	    }
 	    break;
@@ -1435,6 +1452,18 @@
 	}
     }
 
+    maxterms = (argc + 2 - optind);
+    tfile = typeMalloc(path, maxterms);
+    tname = typeCalloc(char *, maxterms);
+    entries = typeCalloc(ENTRY, maxterms);
+
+    if (tfile == 0
+	|| tname == 0
+	|| entries == 0) {
+	fprintf(stderr, "%s: not enough memory\n", _nc_progname);
+	ExitProgram(EXIT_FAILURE);
+    }
+
     /* by default, sort by terminfo name */
     if (sortmode == S_DEFAULT)
 	sortmode = S_TERMINFO;
@@ -1458,53 +1487,56 @@
 	/* grab the entries */
 	termcount = 0;
 	for (; optind < argc; optind++) {
-	    if (termcount >= MAXTERMS) {
-		(void) fprintf(stderr,
-			       "infocmp: too many terminal type arguments\n");
-		ExitProgram(EXIT_FAILURE);
-	    } else {
-		const char *directory = termcount ? restdir : firstdir;
-		int status;
+	    const char *directory = termcount ? restdir : firstdir;
+	    int status;
 
-		tname[termcount] = argv[optind];
+	    tname[termcount] = argv[optind];
 
-		if (directory) {
+	    if (directory) {
 #if USE_DATABASE
-		    (void) sprintf(tfile[termcount], "%s/%c/%s",
-				   directory,
-				   *argv[optind], argv[optind]);
-		    if (itrace)
-			(void) fprintf(stderr,
-				       "infocmp: reading entry %s from file %s\n",
-				       argv[optind], tfile[termcount]);
-
-		    status = _nc_read_file_entry(tfile[termcount],
-						 &entries[termcount].tterm);
+#if MIXEDCASE_FILENAMES
+#define LEAF_FMT "%c"
 #else
-		    (void) fprintf(stderr, "terminfo files not supported\n");
-		    ExitProgram(EXIT_FAILURE);
+#define LEAF_FMT "%02x"
 #endif
-		} else {
-		    if (itrace)
-			(void) fprintf(stderr,
-				       "infocmp: reading entry %s from database\n",
-				       tname[termcount]);
-
-		    status = _nc_read_entry(tname[termcount],
-					    tfile[termcount],
-					    &entries[termcount].tterm);
-		    directory = TERMINFO;	/* for error message */
-		}
+		(void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s",
+			       directory,
+			       UChar(*argv[optind]), argv[optind]);
+		if (itrace)
+		    (void) fprintf(stderr,
+				   "%s: reading entry %s from file %s\n",
+				   _nc_progname,
+				   argv[optind], tfile[termcount]);
 
-		if (status <= 0) {
+		status = _nc_read_file_entry(tfile[termcount],
+					     &entries[termcount].tterm);
+#else
+		(void) fprintf(stderr, "%s: terminfo files not supported\n",
+			       _nc_progname);
+		ExitProgram(EXIT_FAILURE);
+#endif
+	    } else {
+		if (itrace)
 		    (void) fprintf(stderr,
-				   "infocmp: couldn't open terminfo file %s.\n",
-				   tfile[termcount]);
-		    ExitProgram(EXIT_FAILURE);
-		}
-		repair_acsc(&entries[termcount].tterm);
-		termcount++;
+				   "%s: reading entry %s from database\n",
+				   _nc_progname,
+				   tname[termcount]);
+
+		status = _nc_read_entry(tname[termcount],
+					tfile[termcount],
+					&entries[termcount].tterm);
+		directory = TERMINFO;	/* for error message */
+	    }
+
+	    if (status <= 0) {
+		(void) fprintf(stderr,
+			       "%s: couldn't open terminfo file %s.\n",
+			       _nc_progname,
+			       tfile[termcount]);
+		ExitProgram(EXIT_FAILURE);
 	    }
+	    repair_acsc(&entries[termcount].tterm);
+	    termcount++;
 	}
 
 #if NCURSES_XNAMES
@@ -1542,7 +1574,8 @@
 	    case C_DEFAULT:
 		if (itrace)
 		    (void) fprintf(stderr,
-				   "infocmp: about to dump %s\n",
+				   "%s: about to dump %s\n",
+				   _nc_progname,
 				   tname[0]);
 		(void) printf("#\tReconstructed via infocmp from file: %s\n",
 			      tfile[0]);
@@ -1553,12 +1586,12 @@
 			   NULL);
 		len = show_entry();
 		if (itrace)
-		    (void) fprintf(stderr, "infocmp: length %d\n", len);
+		    (void) fprintf(stderr, "%s: length %d\n", _nc_progname, len);
 		break;
 
 	    case C_DIFFERENCE:
 		if (itrace)
-		    (void) fprintf(stderr, "infocmp: dumping differences\n");
+		    (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
 		compare_entry(compare_predicate, &entries->tterm, quiet);
 		break;
@@ -1566,7 +1599,8 @@
 	    case C_COMMON:
 		if (itrace)
 		    (void) fprintf(stderr,
-				   "infocmp: dumping common capabilities\n");
+				   "%s: dumping common capabilities\n",
+				   _nc_progname);
 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
 		compare_entry(compare_predicate, &entries->tterm, quiet);
 		break;
@@ -1574,14 +1608,15 @@
 	    case C_NAND:
 		if (itrace)
 		    (void) fprintf(stderr,
-				   "infocmp: dumping differences\n");
+				   "%s: dumping differences\n",
+				   _nc_progname);
 		(void) printf("comparing %s to %s.\n", tname[0], tname[1]);
 		compare_entry(compare_predicate, &entries->tterm, quiet);
 		break;
 
 	    case C_USEALL:
 		if (itrace)
-		    (void) fprintf(stderr, "infocmp: dumping use entry\n");
+		    (void) fprintf(stderr, "%s: dumping use entry\n", _nc_progname);
 		dump_entry(&entries[0].tterm,
 			   suppress_untranslatable,
 			   limited,
@@ -1592,7 +1627,7 @@
 					  || outform == F_TCONVERR));
 		len = show_entry();
 		if (itrace)
-		    (void) fprintf(stderr, "infocmp: length %d\n", len);
+		    (void) fprintf(stderr, "%s: length %d\n", _nc_progname, len);
 		break;
 	    }
 	}
@@ -1606,7 +1641,11 @@
     else
 	file_comparison(argc - optind, argv + optind);
 
+#if NO_LEAKS
+    free(myargv);
     free(tfile);
+    free(tname);
+#endif
     ExitProgram(EXIT_SUCCESS);
 }
 
diff -Naur ncurses-5.6.orig/progs/modules ncurses-5.6/progs/modules
--- ncurses-5.6.orig/progs/modules	2005-09-24 20:54:22.000000000 -0400
+++ ncurses-5.6/progs/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,7 @@
-# $Id: modules,v 1.12 2005/09/25 00:54:22 tom Exp $
+# $Id: modules,v 1.13 2006/12/24 00:53:21 tom Exp $
 # Program modules (some are in ncurses lib!)
 ##############################################################################
-# Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2005,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"), #
@@ -28,7 +28,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
+# Author: Thomas E. Dickey	1995-on
 #
 
 @ base
@@ -39,3 +39,5 @@
 infocmp		progs		$(srcdir)	$(HEADER_DEPS)             $(srcdir)/dump_entry.h
 tput		progs		$(srcdir)	$(HEADER_DEPS) transform.h termsort.c
 tset		progs		$(srcdir)	$(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/progs/progs.priv.h ncurses-5.6/progs/progs.priv.h
--- ncurses-5.6.orig/progs/progs.priv.h	2006-11-25 19:28:01.000000000 -0500
+++ ncurses-5.6/progs/progs.priv.h	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,7 +30,7 @@
  *  Author: Thomas E. Dickey                    1997-on                     *
  ****************************************************************************/
 /*
- * $Id: progs.priv.h,v 1.30 2006/11/26 00:28:01 tom Exp $
+ * $Id: progs.priv.h,v 1.33 2007/10/13 20:33:53 tom Exp $
  *
  *	progs.priv.h
  *
@@ -110,7 +110,16 @@
 #include <term_entry.h>
 #include <tic.h>
 #include <nc_tparm.h>
+
 #include <nc_alloc.h>
+#if HAVE_NC_FREEALL
+#undef ExitProgram
+#ifdef USE_LIBTINFO
+#define ExitProgram(code) _nc_free_tinfo(code)
+#else
+#define ExitProgram(code) _nc_free_tic(code)
+#endif
+#endif
 
 /* usually in <unistd.h> */
 #ifndef STDOUT_FILENO
diff -Naur ncurses-5.6.orig/progs/tic.c ncurses-5.6/progs/tic.c
--- ncurses-5.6.orig/progs/tic.c	2006-12-02 17:13:17.000000000 -0500
+++ ncurses-5.6/progs/tic.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -44,7 +44,7 @@
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.131 2006/12/02 22:13:17 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.133 2007/07/21 17:45:59 tom Exp $")
 
 const char *_nc_progname = "tic";
 
@@ -353,11 +353,24 @@
     return fp;
 }
 
+#if NO_LEAKS
+static void
+free_namelist(char **src)
+{
+    if (src != 0) {
+	int n;
+	for (n = 0; src[n] != 0; ++n)
+	    free(src[n]);
+	free(src);
+    }
+}
+#endif
+
 /* Parse the "-e" option-value into a list of names */
-static const char **
+static char **
 make_namelist(char *src)
 {
-    const char **dst = 0;
+    char **dst = 0;
 
     char *s, *base;
     unsigned pass, n, nn;
@@ -374,11 +387,13 @@
 		if ((s = stripped(buffer)) != 0) {
 		    if (dst != 0)
 			dst[nn] = s;
+		    else
+			free(s);
 		    nn++;
 		}
 	    }
 	    if (pass == 1) {
-		dst = typeCalloc(const char *, nn + 1);
+		dst = typeCalloc(char *, nn + 1);
 		rewind(fp);
 	    }
 	}
@@ -401,10 +416,10 @@
 		    break;
 	    }
 	    if (pass == 1)
-		dst = typeCalloc(const char *, nn + 1);
+		dst = typeCalloc(char *, nn + 1);
 	}
     }
-    if (showsummary) {
+    if (showsummary && (dst != 0)) {
 	fprintf(log_fp, "Entries that will be compiled:\n");
 	for (n = 0; dst[n] != 0; n++)
 	    fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
@@ -413,7 +428,7 @@
 }
 
 static bool
-matches(const char **needle, const char *haystack)
+matches(char **needle, const char *haystack)
 /* does entry in needle list match |-separated field in haystack? */
 {
     bool code = FALSE;
@@ -468,7 +483,7 @@
     bool limited = TRUE;
     char *tversion = (char *) NULL;
     const char *source_file = "terminfo";
-    const char **namelst = 0;
+    char **namelst = 0;
     char *outdir = (char *) NULL;
     bool check_only = FALSE;
     bool suppress_untranslatable = FALSE;
@@ -495,7 +510,7 @@
      * be optional.
      */
     while ((this_opt = getopt(argc, argv,
-			      "0123456789CILNR:TUVace:fGgo:rstvwx")) != EOF) {
+			      "0123456789CILNR:TUVace:fGgo:rstvwx")) != -1) {
 	if (isdigit(this_opt)) {
 	    switch (last_opt) {
 	    case 'v':
@@ -784,6 +799,9 @@
 	else
 	    fprintf(log_fp, "No entries written\n");
     }
+#if NO_LEAKS
+    free_namelist(namelst);
+#endif
     cleanup();
     ExitProgram(EXIT_SUCCESS);
 }
diff -Naur ncurses-5.6.orig/progs/toe.c ncurses-5.6/progs/toe.c
--- ncurses-5.6.orig/progs/toe.c	2006-08-19 14:18:09.000000000 -0400
+++ ncurses-5.6/progs/toe.c	2008-06-18 06:49:45.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,13 +40,11 @@
 
 #include <sys/stat.h>
 
-#include <dump_entry.h>
-
 #if USE_HASHED_DB
 #include <hashed_db.h>
 #endif
 
-MODULE_ID("$Id: toe.c,v 1.41 2006/08/19 18:18:09 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.48 2008/01/05 20:41:26 tom Exp $")
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
@@ -59,8 +57,7 @@
 ExitProgram(int code)
 {
     _nc_free_entries(_nc_head);
-    _nc_leaks_dump_entry();
-    _nc_free_and_exit(code);
+    _nc_free_tic(code);
 }
 #endif
 
@@ -319,6 +316,7 @@
     bool direct_dependencies = FALSE;
     bool invert_dependencies = FALSE;
     bool header = FALSE;
+    char *report_file = 0;
     int i;
     int code;
     int this_opt, last_opt = '?';
@@ -326,7 +324,7 @@
 
     _nc_progname = _nc_rootname(argv[0]);
 
-    while ((this_opt = getopt(argc, argv, "0123456789ahuvUV")) != EOF) {
+    while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) {
 	/* handle optional parameter */
 	if (isdigit(this_opt)) {
 	    switch (last_opt) {
@@ -352,12 +350,14 @@
 	    break;
 	case 'u':
 	    direct_dependencies = TRUE;
+	    report_file = optarg;
 	    break;
 	case 'v':
 	    v_opt = 1;
 	    break;
 	case 'U':
 	    invert_dependencies = TRUE;
+	    report_file = optarg;
 	    break;
 	case 'V':
 	    puts(curses_version());
@@ -368,15 +368,15 @@
     }
     set_trace_level(v_opt);
 
-    if (direct_dependencies || invert_dependencies) {
-	if (freopen(argv[optind], "r", stdin) == 0) {
+    if (report_file != 0) {
+	if (freopen(report_file, "r", stdin) == 0) {
 	    (void) fflush(stdout);
-	    fprintf(stderr, "%s: can't open %s\n", _nc_progname, argv[optind]);
+	    fprintf(stderr, "%s: can't open %s\n", _nc_progname, report_file);
 	    ExitProgram(EXIT_FAILURE);
 	}
 
 	/* parse entries out of the source file */
-	_nc_set_source(argv[optind]);
+	_nc_set_source(report_file);
 	_nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK);
     }
 
diff -Naur ncurses-5.6.orig/progs/tput.c ncurses-5.6/progs/tput.c
--- ncurses-5.6.orig/progs/tput.c	2006-11-25 19:27:47.000000000 -0500
+++ ncurses-5.6/progs/tput.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -38,6 +38,7 @@
  * Ross Ridge's mytinfo package.
  */
 
+#define USE_LIBTINFO
 #include <progs.priv.h>
 
 #if !PURE_TERMINFO
@@ -45,7 +46,7 @@
 #endif
 #include <transform.h>
 
-MODULE_ID("$Id: tput.c,v 1.38 2006/11/26 00:27:47 tom Exp $")
+MODULE_ID("$Id: tput.c,v 1.41 2007/10/13 20:34:16 tom Exp $")
 
 #define PUTS(s)		fputs(s, stdout)
 #define PUTCHAR(c)	putchar(c)
@@ -325,6 +326,7 @@
 	    case Num_Str_Str:
 		s = TPARM_3(s, numbers[1], strings[2], strings[3]);
 		break;
+	    case Numbers:
 	    default:
 		(void) _nc_tparm_analyze(s, p_is_s, &popcount);
 #define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
@@ -363,7 +365,7 @@
 
     term = getenv("TERM");
 
-    while ((c = getopt(argc, argv, "ST:V")) != EOF) {
+    while ((c = getopt(argc, argv, "ST:V")) != -1) {
 	switch (c) {
 	case 'S':
 	    cmdline = FALSE;
diff -Naur ncurses-5.6.orig/progs/tset.c ncurses-5.6/progs/tset.c
--- ncurses-5.6.orig/progs/tset.c	2006-09-16 13:51:10.000000000 -0400
+++ ncurses-5.6/progs/tset.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -73,6 +73,7 @@
  * SUCH DAMAGE.
  */
 
+#define USE_LIBTINFO
 #define __INTERNAL_CAPS_VISIBLE	/* we need to see has_hardware_tabs */
 #include <progs.priv.h>
 
@@ -103,7 +104,7 @@
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tset.c,v 1.67 2006/09/16 17:51:10 tom Exp $")
+MODULE_ID("$Id: tset.c,v 1.70 2007/10/13 22:22:04 tom Exp $")
 
 extern char **environ;
 
@@ -777,7 +778,22 @@
 		      | OFDEL
 #endif
 #ifdef NLDLY
-		      | NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY
+		      | NLDLY
+#endif
+#ifdef CRDLY 
+		      | CRDLY
+#endif
+#ifdef TABDLY 
+		      | TABDLY
+#endif
+#ifdef BSDLY 
+		      | BSDLY
+#endif
+#ifdef VTDLY 
+		      | VTDLY
+#endif
+#ifdef FFDLY
+		      | FFDLY
 #endif
 	);
 
@@ -1129,7 +1145,7 @@
 
     obsolete(argv);
     noinit = noset = quiet = Sflag = sflag = showterm = 0;
-    while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != EOF) {
+    while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != -1) {
 	switch (ch) {
 	case 'c':		/* set control-chars */
 	    opt_c = TRUE;
diff -Naur ncurses-5.6.orig/tack/COPYING ncurses-5.6/tack/COPYING
--- ncurses-5.6.orig/tack/COPYING	2005-09-17 15:46:56.000000000 -0400
+++ ncurses-5.6/tack/COPYING	1969-12-31 19:00:00.000000000 -0500
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff -Naur ncurses-5.6.orig/tack/HISTORY ncurses-5.6/tack/HISTORY
--- ncurses-5.6.orig/tack/HISTORY	2006-11-25 19:28:49.000000000 -0500
+++ ncurses-5.6/tack/HISTORY	1969-12-31 19:00:00.000000000 -0500
@@ -1,49 +0,0 @@
-
-Current history:
-
-2006/11/25		Fixes for ncurses tparm() prototype.
-2006/06/24	1.02	Modify to support ncurses extended string capabilities.
-2003/10/18	1.01	Fix some logic in pad.c, improve bce test.
-2003/09/20		Modified to allow running from compiled-in terminfo.
-2001/10/20		Make menu titles agree with descriptions.
-2000/03/04		Fix a few spelling errors
-1999/09/04		Minor fix to build/link on BeOS
-1999/05/16		Minor fix to build/link on CLIX
-1999/05/09		Update to build/link on NeXT
-1999/04/17		Update to work with ncurses 5.0 beta1 (TERMTYPE struct)
-1999/02/07		Build with ncurses 4.2 981219 (renamed function)
-1998/01/09	1.00	First release under GPL
-1997/12/24	0.02	First version that requires ncurses
-1997/10/29	0.01	Second beta release to the ncurses mailing list.
-1997/10/06	0.00	First beta release to the ncurses mailing list.
-
-Ancient history:	TACK -- the terminfo action checker
-
-   The purpose of this program is to verify the correctness of
-terminfos and to calculate the pads needed for each capability.
-This program is not designed to test curses and therefore uses
-as little of curses as possible.
-
-   This program was originally called TED.  In 1991 it was
-released to USENET in comp.sources.  TED was originally written to
-test both terminfos and termcaps.  The original intent was to
-create a terminfo editor.  This code fell quite short of its goal.
-Tests were controlled by command line switches and editing was done
-with pen and paper.
-
-   In 1995 Eric S. Raymond got interested in the program and added
-a first cut at making the program menu driven.  He also converted
-the code from K&R C to an ANSI/POSIX-conforming C.  He re-christened
-the program TAC (Terminfo Action Checker).  Eric also wrote a man
-page for TAC.
-
-   In 1997 I decided to dust off the code and make it easier to
-use by the novice.  I totally rewrote the menu system and added
-the editing features I originally planned for TED.  I also did
-a total rewrite of the code that does the timings.  In the process
-of rewriting the code I changed it to be more tightly coupled
-with ncurses.  By this time someone had taken the name TAC so
-I re-christened the program TACK.
-
-Daniel Weaver
-<danw@znyx.com>
diff -Naur ncurses-5.6.orig/tack/Makefile.in ncurses-5.6/tack/Makefile.in
--- ncurses-5.6.orig/tack/Makefile.in	2006-12-17 10:58:32.000000000 -0500
+++ ncurses-5.6/tack/Makefile.in	1969-12-31 19:00:00.000000000 -0500
@@ -1,211 +0,0 @@
-# $Id: Makefile.in,v 1.38 2006/12/17 15:58:32 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2005,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.                                                             #
-##############################################################################
-# Makefile for tack
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL		= /bin/sh
-THIS		= Makefile
-
-CF_MFLAGS 	= @cf_cv_makeflags@
-@SET_MAKE@
-
-x		= @EXEEXT@
-o		= .@OBJEXT@
-
-MODEL		= ../@DFT_OBJ_SUBDIR@
-DESTDIR		= @DESTDIR@
-srcdir		= @srcdir@
-prefix		= @prefix@
-exec_prefix	= @exec_prefix@
-bindir		= @bindir@
-libdir		= @libdir@
-mandir		= @mandir@
-includedir	= @includedir@
-datadir		= @datadir@
-
-LIBTOOL		= @LIBTOOL@
-LIBTOOL_CLEAN	= @LIB_CLEAN@
-LIBTOOL_COMPILE	= @LIB_COMPILE@
-LIBTOOL_LINK	= @LIB_LINK@
-LIBTOOL_INSTALL	= @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL		= @INSTALL@
-INSTALL_PROG	= @INSTALL_PROGRAM@
-INSTALL_DATA	= @INSTALL_DATA@
-
-AWK		= @AWK@
-LN_S		= @LN_S@
-
-CC		= @CC@
-CPP		= @CPP@
-CFLAGS		= @CFLAGS@
-
-INCDIR		= $(srcdir)/../include
-CPPFLAGS	= -DHAVE_CONFIG_H -I../tack -I$(srcdir) @CPPFLAGS@
-
-CCFLAGS		= $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL	= $(CCFLAGS)
-CFLAGS_NORMAL	= $(CCFLAGS)
-CFLAGS_DEBUG	= $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE	= $(CCFLAGS) -pg
-CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
-
-REL_VERSION	= @cf_cv_rel_version@
-ABI_VERSION	= @cf_cv_abi_version@
-LOCAL_LIBDIR	= @top_builddir@/lib
-
-LD		= @LD@
-LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
-LDFLAGS		= @EXTRA_LDFLAGS@ \
-		@TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LIBTOOL)
-LDFLAGS_NORMAL	= $(LDFLAGS) $(CFLAGS_NORMAL)
-LDFLAGS_DEBUG	= $(LDFLAGS) $(CFLAGS_DEBUG)
-LDFLAGS_PROFILE	= $(LDFLAGS) $(CFLAGS_PROFILE)
-LDFLAGS_SHARED	= $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT		= @LINT@
-LINT_OPTS	= @LINT_OPTS@
-LINT_LIBS	= -lncurses@LIB_SUFFIX@ @LIBS@
-
-PROGS = tack$x
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-################################################################################
-all:	$(PROGS)
-
-sources:
-
-install: install.tack
-uninstall: uninstall.tack
-
-# this line simplifies the configure-script
-libs \
-install.libs \
-uninstall.libs:
-
-EDITARGS = $(DESTDIR)$(mandir) $(srcdir) $(srcdir)/*.[0-9]*
-
-install.tack: $(PROGS) \
-	$(DESTDIR)$(bindir) \
-	$(DESTDIR)$(mandir)
-	$(LIBTOOL_INSTALL) $(INSTALL_PROG) tack$x $(DESTDIR)$(bindir)/tack$x
-	sh ../edit_man.sh normal installing $(EDITARGS)
-
-uninstall.tack:
-	-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(bindir)/tack$x
-	-sh ../edit_man.sh normal removing $(EDITARGS)
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(mandir) :
-	sh $(srcdir)/../mkinstalldirs $@
-
-#
-# Rules for building tack
-#
-
-DEPS_TACK = \
-	$(MODEL)/ansi$o \
-	$(MODEL)/charset$o \
-	$(MODEL)/color$o \
-	$(MODEL)/control$o \
-	$(MODEL)/crum$o \
-	$(MODEL)/edit$o \
-	$(MODEL)/fun$o \
-	$(MODEL)/init$o \
-	$(MODEL)/menu$o \
-	$(MODEL)/modes$o \
-	$(MODEL)/output$o \
-	$(MODEL)/pad$o \
-	$(MODEL)/scan$o \
-	$(MODEL)/sync$o \
-	$(MODEL)/sysdep$o \
-	$(MODEL)/tack$o
-
-tack$x: $(DEPS_TACK) $(DEPS_CURSES)
-	@ECHO_LINK@ $(LINK) $(DEPS_TACK) $(LDFLAGS_DEFAULT) -o $@
-
-#
-# Utility productions start here
-#
-
-tags:
-	ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@	etags *.[ch]
-
-mostlyclean ::
-	-rm -f core tags TAGS *~ *.bak *.i *.atac trace
-
-clean :: mostlyclean
-	-sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi"
-	-rm -f $(PROGS)
-	-rm -rf .libs
-
-distclean :: clean
-	-rm -f Makefile
-
-realclean :: distclean
-
-tack.tar: Makefile.in modules *.[ch] tack.1 HISTORY COPYING
-	tar -cvf tack.tar Makefile.in modules *.[ch] tack.1 HISTORY COPYING
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
-	cd ../include; $(MAKE) $(CF_MFLAGS)
-
-$(DEPS_CURSES) :
-	cd ../ncurses; $(MAKE) $(CF_MFLAGS)
-
-lint:
-	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/*.c $(LINT_LIBS)
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff -Naur ncurses-5.6.orig/tack/README ncurses-5.6/tack/README
--- ncurses-5.6.orig/tack/README	2000-03-11 21:39:12.000000000 -0500
+++ ncurses-5.6/tack/README	1969-12-31 19:00:00.000000000 -0500
@@ -1,14 +0,0 @@
--- $Id: README,v 1.2 2000/03/12 02:39:12 Daniel.Weaver Exp $
-
-The 'tack' program is a diagnostic that is designed to create and
-verify the correctness of terminfo's.  This program can be used to
-create new terminal descriptions that are not included in the standard
-release.  Although 'tack' is distributed with ncurses, it is not an
-integral part of ncurses.  It may be removed from the release without
-limiting the usefulness of ncurses on those terminals described in the
-terminfo data base.  The best way to remove 'tack' from the build is
-to delete or rename the 'tack' directory before running the configure
-script.
-
-Unlike most of ncurses the 'tack' program is covered under the GNU
-Public License.
diff -Naur ncurses-5.6.orig/tack/ansi.c ncurses-5.6/tack/ansi.c
--- ncurses-5.6.orig/tack/ansi.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/ansi.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,854 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: ansi.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
-
-/*
- * Standalone tests for ANSI terminals.  Three entry points:
- * test_ansi_graphics(), test_ansi_reports() and test_ansi_sgr().
- */
-
-/*****************************************************************************
- *
- * Test ANSI status reports
- *
- *****************************************************************************/
-
-/* ASCII control characters */
-#define A_DC1 0x11		/* Control Q */
-#define A_DC3 0x13		/* Control S */
-#define A_ESC 0x1b
-#define A_DCS 0x90
-#define A_CSI 0x9b
-#define A_ST  0x9c
-
-#define MAX_MODES 256
-
-static char default_bank[] = "\033(B\017";
-static int private_use, ape, terminal_class;
-static short ansi_value[256];
-static unsigned char ansi_buf[512], pack_buf[512];
-
-struct ansi_reports {
-	int lvl, final;
-	const char *text;
-	const char *request;
-};
-
-static struct ansi_reports report_list[] = {
-	{0, 'c', "(DA) Primary device attributes", "\033[0c"},
-	{1, 0, "(DSR) Terminal status", "\033[5n"},
-	{1, 'R', "(DSR) Cursor position", "\033[6n"},
-	{62, 0, "(DA) Secondary device attributes", "\033[>0c"},
-	{62, 0, "(DSR) Printer status", "\033[?15n"},
-	{62, 0, "(DSR) Function key definition", "\033[?25n"},
-	{62, 0, "(DSR) Keyboard language", "\033[?26n"},
-	{63, 0, "(DECRQSS) Data destination", "\033P$q$}\033\\"},
-	{63, 0, "(DECRQSS) Status line type", "\033P$q$~\033\\"},
-	{63, 0, "(DECRQSS) Erase attribute", "\033P$q\"q\033\\"},
-	{63, 0, "(DECRQSS) Personality", "\033P$q\"p\033\\"},
-	{63, 0, "(DECRQSS) Top and bottom margins", "\033P$qr\033\\"},
-	{63, 0, "(DECRQSS) Character attributes", "\033P$qm\033\\"},
-	{63, 0, "(DECRQSS) Illegal request", "\033P$q@\033\\"},
-	{63, 0, "(DECRQUPSS) User pref supplemental set", "\033[&u"},
-	{63, 0, "(DECRQPSR) Cursor information", "\033[1$w"},
-	{63, 0, "(DECRQPSR) Tab stop information", "\033[2$w"},
-	{64, 0, "(DA) Tertiary device attributes", "\033[=0c"},
-	{64, 0, "(DSR) Extended cursor position", "\033[?6n"},
-	{64, 0, "(DSR) Macro space", "\033[?62n"},
-	{64, 0, "(DSR) Memory checksum", "\033[?63n"},
-	{64, 0, "(DSR) Data integrity", "\033[?75n"},
-	{64, 0, "(DSR) Multiple session status", "\033[?85n"},
-	{64, 0, "(DECRQSS) Attribute change extent", "\033P$q*x\033\\"},
-	{64, 0, "(DECRQSS) Columns per page", "\033P$q$|\033\\"},
-	{64, 0, "(DECRQSS) Lines per page", "\033P$qt\033\\"},
-	{64, 0, "(DECRQSS) Lines per screen", "\033P$q*|\033\\"},
-	{64, 0, "(DECRQSS) Left and right margins", "\033P$qs\033\\"},
-	{64, 0, "(DECRQSS) Local functions", "\033P$q+q\033\\"},
-	{64, 0, "(DECRQSS) Local function key control", "\033P$q=}\033\\"},
-	{64, 0, "(DECRQSS) Select modifier key reporting", "\033P$q+r\033\\"},
-	{64, 0, "(DECRQDE) Window report", "\033[\"v"},
-	{0, 0, 0, 0}
-};
-
-struct request_control {
-	const char *text;
-	const char *expect;
-	const char *request;
-	const char *set_mode;
-	const char *reset_mode;
-};
-
-/* Request control function selection or setting */
-static const struct request_control rqss[] = {
-	{"Data sent to screen", "0", "$}", "\033[0$}", 0},
-	{"Data sent to disabled status line", "0", "$}", 0, 0},
-	{"\033[0$~\033[1$}", "\033[0$}", 0, 0, 0},
-	{"Data sent to enabled status line", "1", "$}", 0, 0},
-	{"\033[2$~\033[1$}", "\033[0$}", 0, 0, 0},
-	{"Disable status line", "0", "$~", "\033[0$~", 0},
-	{"Top status line", "1", "$~", "\033[1$~", 0},
-	{"Bottom status line", "2", "$~", "\033[2$~", 0},
-	{"Erasable character", "0", "\"q", "\033[0\"q", 0},
-	{"Nonerasable character", "1", "\"q", "\033[1\"q", "\033[0\"q"},
-	{"Top and bottom margins", "3;10", "r", "\0337\033[3;10r", 0},
-	{"\033[r\0338", 0, 0, 0, 0},
-	{"Top and bottom margins", "default", "r", "\0337\033[r", "\0338"},
-	{"Character attributes, dim, bold", "1", "m", "\033[2;1m", "\033[m"},
-	{"Character attributes, bold, dim", "2", "m", "\033[1;2m", "\033[m"},
-	{"Character attributes, under, rev", "4;7", "m", "\033[4;7m", "\033[m"},
-	{"Character attributes, color", "35;42", "m", "\033[35;42m", "\033[m"},
-	{"All character attributes", "", "m", "\033[1;2;3;4;5;6;7;8;9m", 0},
-	{"\033[m", 0, 0, 0, 0},
-	{0, 0, 0, 0, 0}
-};
-
-
-/*
-**	read_ansi()
-**
-**	read an ANSI status report from terminal
-*/
-static void
-read_ansi(void)
-{
-	int ch, i, j, last_escape;
-
-	fflush(stdout);
-	read_key((char *)ansi_buf, sizeof(ansi_buf));
-	/* Throw away control characters inside CSI sequences.
-	   Convert two character 7-bit sequences into 8-bit sequences. */
-	for (i = j = last_escape = 0; (ch = ansi_buf[i]) != 0; i++) {
-		if (ch == A_ESC) {
-			if (last_escape == A_ESC) {
-				pack_buf[j++] = A_ESC;
-			}
-			last_escape = A_ESC;
-		} else
-		if (last_escape == A_ESC && ch >= '@' && ch <= '_') {
-			pack_buf[j++] = last_escape = ch + 0x40;
-		} else
-		if (last_escape != A_CSI || (ch > 0x20 && ch != 0x80)) {
-			if (last_escape == A_ESC) {
-				pack_buf[j++] = A_ESC;
-			}
-			if (ch > 0x80 && ch < 0xa0) {
-				last_escape = ch;
-			}
-			pack_buf[j++] = ch;
-		}
-	}
-	if (last_escape == A_ESC) {
-		pack_buf[j++] = A_ESC;
-	}
-	pack_buf[j] = '\0';
-	return;
-}
-
-/*
-**	valid_mode(expected)
-**
-**	read a terminal mode status report and parse the result
-**	Return TRUE if we got the expected terminating character.
-*/
-static int
-valid_mode(int expected)
-{
-	unsigned char *s;
-	int ch, terminator;
-
-	read_ansi();
-
-	ape = 0;
-	ch = UChar(pack_buf[0]);
-	ansi_value[0] = 0;
-	if (ch != A_CSI && ch != A_DCS)
-		return FALSE;
-
-	s = pack_buf + 1;
-	private_use = 0;
-	if ((*s >= '<') & (*s <= '?')) {
-		private_use = *s++;
-	}
-	terminator = 0;
-	for (; (ch = *s); s++) {
-		if (ch >= '0' && ch <= '9')
-			ansi_value[ape] = ansi_value[ape] * 10 + ch - '0';
-		else if (ch == ';' || ch == ':')
-			ansi_value[++ape] = 0;
-		else if (ch >= '<' && ch <= '?')
-			private_use = ch;
-		else if (ch >= ' ')
-			terminator = (terminator << 8) | ch;
-		else
-			break;
-	}
-	return terminator == expected;
-}
-
-/*
-**	read_reports()
-**
-**	read all the reports in the ANSI report structure
-*/
-static int
-read_reports(void)
-{
-	int i, j, k, tc, vcr, lc;
-	char *s;
-	const char *t;
-
-	lc = 5;
-	terminal_class = tc = 0;
-	for (i = 0; report_list[i].text; i++, lc++) {
-		if (terminal_class < report_list[i].lvl &&
-			tc < report_list[i].lvl) {
-			put_crlf();
-			menu_prompt();
-			ptext("/status [q] > ");
-			j = wait_here();
-			if (j != 'n' && j != 'N')
-				return 0;
-			tc = report_list[i].lvl;
-			lc = 1;
-		} else if (lc + 2 >= lines) {
-			put_crlf();
-			ptext("Hit any key to continue ");
-			(void) wait_here();
-			lc = 1;
-		}
-		sprintf(temp, "%s (%s) ", report_list[i].text,
-			expand_command(report_list[i].request));
-		ptext(temp);
-		for (j = strlen(temp); j < 49; j++)
-			putchp(' ');
-		tc_putp(report_list[i].request);
-		vcr = 0;
-		if (report_list[i].final == 0) {
-			read_ansi();
-		} else if (valid_mode(report_list[i].final))
-			switch (report_list[i].final) {
-			case 'c':
-				terminal_class = ansi_value[0];
-				break;
-			case 'R':
-				vcr = TRUE;
-				break;
-			}
-		j = UChar(pack_buf[0]);
-		if (j != A_CSI && j != A_DCS) {
-			put_crlf();
-			t = "*** The above request gives illegal response ***";
-			ptext(t);
-			for (j = strlen(t); j < 49; j++)
-				putchp(' ');
-		}
-		s = expand((const char *)ansi_buf);
-		if (char_count + expand_chars >= columns) {
-			put_str("\r\n        ");
-			lc++;
-		}
-		putln(s);
-		if (vcr) {	/* find out how big the screen is */
-			tc_putp(report_list[i].request);
-			if (!valid_mode('R'))
-				continue;
-			j = ansi_value[0];
-			k = ansi_value[1];
-			tc_putp("\033[255B\033[255C\033[6n");
-			if (!valid_mode('R'))
-				continue;
-			sprintf(temp, "\033[%d;%dH", j, k);
-			tc_putp(temp);
-			ptext("(DSR) Screen size (CSI 6 n)");
-			for (j = char_count; j < 50; j++)
-				putchp(' ');
-			sprintf(temp, "%d x %d", ansi_value[1], ansi_value[0]);
-			ptextln(temp);
-
-		}
-	}
-	menu_prompt();
-	ptext("/status r->repeat test, <return> to continue > ");
-	return wait_here();
-}
-
-/*
-**	request_cfss()
-**
-**	Request Control function selection or settings
-*/
-static int
-request_cfss(void)
-{
-	int i, j, k, l, ch;
-	char *s;
-
-	put_clear();
-	ptextln("Request                         Expected  Received");
-	put_crlf();
-	for (i = 0; rqss[i].text; i++) {
-		ptext(rqss[i].text);
-		j = strlen(rqss[i].text) + strlen(rqss[i].expect);
-		putchp(' ');
-		for (j++; j < 40; j++)
-			putchp(' ');
-		ptext(rqss[i].expect);
-		putchp(' ');
-		tc_putp(rqss[i].set_mode);
-		sprintf(temp, "\033P$q%s\033\\", rqss[i].request);
-		tc_putp(temp);
-		read_ansi();
-		tc_putp(rqss[i].reset_mode);
-		putchp(' ');
-		for (j = 0; ansi_buf[j]; j++) {
-			if (ansi_buf[j] == 'r') {
-				for (k = j++; (ch = UChar(ansi_buf[k])) != 0; k++)
-					if (ch == A_ESC) {
-						break;
-					} else if (ch == A_ST) {
-						break;
-					}
-				ansi_buf[k] = '\0';
-				s = expand((const char *)&ansi_buf[j]);
-				if (char_count + expand_chars >= columns)
-					put_str("\r\n        ");
-				put_str(s);
-			}
-		}
-		put_crlf();
-	}
-	/* calculate the valid attributes */
-	ptext("Valid attributes:         0");
-	j = 0;
-	for (i = 1; i < 20; i++) {
-		sprintf(temp, "\033[0;%dm\033P$qm\033\\", i);
-		tc_putp(temp);
-		(void) valid_mode('m');
-		if (ape > 0) {
-			j = i;
-			sprintf(temp, "\033[0m; %d", i);
-			tc_putp(temp);
-		}
-	}
-	put_crlf();
-	/* calculate how many parameters can be sent */
-	ptext("Max number of parameters: ");
-	sprintf(temp, "%dm\033P$qm\033\\", j);
-	l = -1;
-	if (j > 0)
-		for (l = 1; l < 33; l++) {
-			tc_putp("\033[0");
-			for (ch = 1; ch <= l; ch++)
-				put_this(';');
-			tc_putp(temp);
-			(void) valid_mode('m');
-			if (ape == 0)
-				break;
-		}
-	tc_putp("\033[m");
-	if (l >= 0) {
-		sprintf(temp, "%d", l);
-		ptext(temp);
-	} else
-		ptext("unknown");
-	put_crlf();
-	return wait_here();
-}
-
-/*
-**	mode_display(puc, mode, initial, set, reset)
-**
-**	print the mode display entry
-*/
-static void
-mode_display(const char *p, int n, int c, char s, char r)
-{
-	int k;
-
-	sprintf(temp, "%s%d (%c, %c, %c)", p, n, c, s, r);
-	k = strlen(temp);
-	if (char_count + k >= columns)
-		put_crlf();
-	for (; k < 14; k++)
-		putchp(' ');
-	put_str(temp);
-}
-
-/*
-**	terminal_state()
-**
-**	test DECRQM status reports
-*/
-static void
-terminal_state(void)
-{
-	static const char *puc[] = {"", "<", "=", ">", "?", 0};
-
-	int i, j, k, l, modes_found;
-	char *s;
-	char buf[256], tms[256];
-	int mode_puc[MAX_MODES], mode_number[MAX_MODES];
-	char set_value[MAX_MODES], reset_value[MAX_MODES];
-	char current_value[MAX_MODES];
-
-	ptext("Testing terminal mode status. (CSI 0 $ p)");
-	tc_putp("\033[0$p");
-	modes_found = 0;
-	tms[0] = '\0';
-	if (valid_mode(('$' << 8) | 'y')) {
-		for (i = 0; puc[i]; i++) {
-			put_crlf();
-			if (i) {
-				sprintf(temp, "Private use: %c", puc[i][0]);
-			} else {
-				strcpy(temp, "Standard modes:");
-			}
-			k = strlen(temp);
-			ptext(temp);
-			for (j = 0; j < (int) sizeof(buf); buf[j++] = ' ')
-				;
-			for (j = l = 0; j < 255 && j - l < 50; j++) {
-				sprintf(temp, "\033[%s%d$p", puc[i], j);
-				tc_putp(temp);
-				if (!valid_mode(('$' << 8) | 'y')) {
-					/* not valid, save terminating value */
-					s = expand((const char *)ansi_buf);
-					sprintf(tms, "%s%s%d %s  ", tms,
-						puc[i], j, s);
-					break;
-				}
-				if (private_use != puc[i][0])
-					break;
-				if (ansi_value[0] != j)
-					break;
-				if (ansi_value[1]) {
-					l = j;
-					if (k > 70) {
-						buf[k] = '\0';
-						put_crlf();
-						ptextln(buf);
-						for (k = 0; k < (int) sizeof(buf);) {
-							buf[k++] = ' ';
-						}
-						k = 0;
-					}
-					sprintf(temp, " %d", j);
-					ptext(temp);
-					k += strlen(temp);
-					buf[k - 1] = ansi_value[1] + '0';
-					if (modes_found >= MAX_MODES)
-						continue;
-					current_value[modes_found] =
-						ansi_value[1] + '0';
-					/* some modes never return */
-					if ((i == 0 && j == 13)	/* control execution */
-						|| (puc[i][0] == '?' && j == 2))	/* VT52 */
-						set_value[modes_found] =
-							reset_value[modes_found] = '-';
-					else
-						set_value[modes_found] =
-							reset_value[modes_found] = ' ';
-					mode_puc[modes_found] = i;
-					mode_number[modes_found++] = j;
-				}
-			}
-			buf[k] = '\0';
-			if (buf[k - 1] != ' ') {
-				put_crlf();
-				ptext(buf);
-			}
-		}
-
-	if ((i = modes_found) != 0) {
-		put_crlf();
-		put_crlf();
-		if (tms[0]) {
-			ptextln(tms);
-		}
-		ptext("Hit 'Y' to test mode set/reset states: ");
-		i = wait_here();
-	}
-	if (i == 'y' || i == 'Y')
-		while (1) {
-#ifdef STATUSFIX
-			FILE *fp;
-
-#ifdef TEDANSI
-			fp = fopen("ted.ansi", "w");
-#else
-			fp = fopen("/dev/console", "w");
-#endif
-#endif
-			for (i = j = 0; j < modes_found; j = ++i >> 1) {
-				if (set_value[j] == '-')
-					continue;
-				k = (current_value[j] ^ i) & 1;
-				sprintf(temp, "\033[%s%d%c\033[%s%d$p",
-					puc[mode_puc[j]], mode_number[j],
-					k ? 'l' : 'h',
-					puc[mode_puc[j]], mode_number[j]);
-#ifdef STATUSFIX
-				if (fp) {
-					fprintf(fp, "%s\n", expand(temp));
-					fflush(fp);
-				}
-#endif
-				tc_putp(temp);
-				if (!valid_mode(('$' << 8) | 'y'))
-					continue;
-				if (k) {
-					reset_value[j] = ansi_value[1] + '0';
-				} else {
-					set_value[j] = ansi_value[1] + '0';
-				}
-			}
-			put_str("\033[30l");	/* added for GORT bug
-						   (WY-185) */
-#ifdef STATUSFIX
-			if (fp)
-				fclose(fp);
-#endif
-			tty_set();
-			/* print the results */
-			put_clear();
-			putln("mode (initial, set, reset)");
-			for (j = 0; j < modes_found; j++) {
-				mode_display(puc[mode_puc[j]], mode_number[j],
-					current_value[j], set_value[j], reset_value[j]);
-			}
-			ptext("\n\nHit 'R' to repeat test.  'S' to sort results: ");
-			i = wait_here();
-			if (i == 's' || i == 'S') {	/* print the same stuff,
-							   sorted by
-							   current_value */
-				put_crlf();
-				for (i = '1'; i <= '4'; i++) {
-					for (j = 0; j < modes_found; j++) {
-						if (current_value[j] == i)
-							mode_display(puc[mode_puc[j]],
-								mode_number[j], current_value[j],
-								set_value[j], reset_value[j]);
-					}
-				}
-				ptext("\n\nHit 'R' to repeat test: ");
-				i = wait_here();
-			}
-			if (i != 'r' && i != 'R')
-				break;
-			tty_raw(1, char_mask);
-		}
-	} else {
-		tty_set();
-	}
-}
-
-
-/*
-**	ansi_report_help()
-**
-**	Display the informational data for the ANSI report test.
-*/
-static void
-ansi_report_help(void)
-{
-	ptext("Begin ANSI status report testing. ");
-	ptext(" Parity bit set will be displayed in reverse video. ");
-	ptext(" If the terminal hangs, hit any alphabetic key. ");
-	ptextln(" Use n to continue testing.  Use q to quit.");
-	put_crlf();
-}
-
-/*
-**	test_ansi_reports()
-**
-**	Test the ANSI status report functions
-*/
-void
-tools_status(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int i;
-
-	put_clear();
-	ansi_report_help();
-	tty_raw(1, char_mask);
-
-	do {
-		i = read_reports();
-		if (i != 'r' && i != 'R') {
-			*ch = i;
-			return;
-		}
-	} while (i);
-
-	if (terminal_class >= 63) {
-		do {
-			i = request_cfss();
-		} while (i == 'r' || i == 'R');
-		*ch = i;
-		terminal_state();
-	} else {
-		tty_set();
-	}
-}
-
-
-/*
-**	display_sgr()
-**
-**	Test a range of ANSI sgr attributes
-**	puc -> Private Use Character
-*/
-static void 
-display_sgr(int puc)
-{
-	int k;
-
-	temp[0] = puc;
-	temp[1] = '\0';
-	for (k = 0; k < 80; k++) {
-		if (char_count + 8 > 80)
-			put_crlf();
-		else if (char_count + 8 > columns)
-			put_crlf();
-		else if (k > 0)
-			printf(" ");
-		printf("\033[%s%dmMode %2d\033[0m", temp, k, k);
-		char_count += 8;
-		if (puc == '\0') {
-			if (k == 19)
-				printf("\033[10m");
-			if (k == 39)
-				printf("\033[37m");
-			if (k == 49)
-				printf("\033[40m");
-		}
-	}
-	put_crlf();
-	if (puc == '<')
-		printf("\033[<1m");
-	else if (puc)
-		printf("\033[%s0m", temp);
-	set_attr(0);
-}
-
-/*
-**	print_sgr20(on, off)
-**
-**	print the sgr line for sgr20()
-*/
-static void 
-print_sgr20(int on, int off)
-{
-	if (char_count > columns - 13) {
-		put_crlf();
-	} else if (char_count) {
-		put_str("  ");
-	}
-	char_count += 11;
-	printf("%d/%d \033[%dmon\033[%dm off\033[0m", on, off, on, off);
-}
-
-/*
-**	sgr20(void)
-**
-**	display the enter/exit attributes 1-9 and 20-29
-*/
-static void 
-sgr20(void)
-{
-	int k;
-
-	put_crlf();
-	ptextln("Test enter/exit attributes 1-9 and 21-29.");
-	for (k = 1; k < 10; k++) {
-		print_sgr20(k, k + 20);
-	}
-	print_sgr20(1, 22);	/* bold */
-	print_sgr20(2, 22);	/* dim */
-	print_sgr20(8, 22);	/* blank */
-	printf("\033[0m");
-	set_attr(0);
-}
-
-/*
-**	tools_sgr(testlist, state, ch)
-**
-**	Run the ANSI graphics rendition mode tool
-**	Return the last character typed.
-*/
-void
-tools_sgr(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int k;
-
-	put_clear();
-	for (k = 0;;) {
-		display_sgr(k);
-		put_crlf();
-		menu_prompt();
-		ptext("/sgr Enter =><?r [<cr>] > ");
-		k = wait_here();
-		if ((k == 'r') || (k == 'R')) {
-			k = 0;
-		} else if ((k < '<') || (k > '?')) {
-			break;
-		}
-	}
-	sgr20();
-
-	put_newlines(2);
-	*ch = REQUEST_PROMPT;
-}
-
-/*****************************************************************************
- *
- * Test ANSI graphics
- *
- *****************************************************************************/
-/*
-**	select_bank(bank)
-**
-**	select a graphics character set for ANSI terminals
-*/
-static void
-select_bank(char *bank)
-{
-	tc_putp(bank);
-	switch (bank[1] & 3) {
-	case 0:
-		putchp('O' & 0x1f);	/* control O */
-		break;
-	case 1:
-		putchp('N' & 0x1f);	/* control N */
-		tc_putp("\033~");
-		break;
-	case 2:
-		tc_putp("\033n\033}");
-		break;
-	case 3:
-		tc_putp("\033o\033|");
-		break;
-	}
-}
-
-/*
-**	show_characters(bank, bias)
-**
-**	print the ANSI graphics characters
-*/
-static void
-show_characters(char *bank, int bias)
-{
-	int i;
-
-	sprintf(temp, "G%d GL   ", bank[1] & 3);
-	ptext(temp);
-	select_bank(bank);
-	for (i = ' '; i < 0x80; i++) {
-		if (char_count >= columns ||
-			(i != ' ' && (i & 31) == 0))
-			put_str("\n        ");
-		putchp(i + bias);
-	}
-	select_bank(default_bank);
-	put_str("   DEL <");
-	select_bank(bank);
-	putchp(0x7f + bias);
-	select_bank(default_bank);
-	putchp('>');
-	put_crlf();
-	put_crlf();
-}
-
-
-/* ANSI graphics test
-        94     96   character sets
-   G0   (      ,
-   G1   )      -
-   G2   *      .
-   G3   +      /
-
-Standard Definitions
-   A    UK
-   B    US ASCII
-
-Dec extended definitions
-   0    Special graphics
-
- */
-
-/*
-**	tools_charset(testlist, state, ch)
-**
-**	Run the ANSI alt-charset mode tool
-*/
-void
-tools_charset(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *chp GCC_UNUSED)
-{
-	int j, ch;
-	char bank[32];
-
-	put_clear();
-	ptext("Enter the bank ()*+,-./ followed by the character set");
-	ptext(" 0123456789:;<=>? for private use, and");
-	ptextln(" @A...Z[\\]^_`a...z{|}~ for standard sets.");
-	strcpy(bank, "\033)0");
-	for (; bank[0];) {
-		put_crlf();
-		show_characters(bank, 0);
-
-		/* G0 will not print in GR */
-		if (bank[1] & 3) {
-			show_characters(bank, 0x80);
-		}
-		ptext("bank+set> ");
-		for (j = 1; (ch = getchp(char_mask)); j++) {
-			if (ch == EOF)
-				break;
-			putchp(ch);
-			if (j == 1 && ch > '/')
-				j++;
-			bank[j] = ch;
-			if (ch < ' ' || ch > '/')
-				break;
-			if (j + 1 >= (int) sizeof(bank))
-				break;
-		}
-		if (j == 1)
-			break;
-		if (bank[j] < '0' || bank[j] > '~')
-			break;
-		bank[j + 1] = '\0';
-	}
-	put_crlf();
-}
diff -Naur ncurses-5.6.orig/tack/charset.c ncurses-5.6/tack/charset.c
--- ncurses-5.6.orig/tack/charset.c	2006-11-25 19:13:36.000000000 -0500
+++ ncurses-5.6/tack/charset.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,711 +0,0 @@
-/*
-** Copyright (C) 1991, 1997-2000 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: charset.c,v 1.11 2006/11/26 00:13:36 tom Exp $")
-
-/*
-	Menu definitions for alternate character set and SGR tests.
-*/
-
-static void charset_bel(struct test_list *t, int *state, int *ch);
-static void charset_flash(struct test_list *t, int *state, int *ch);
-static void charset_civis(struct test_list *t, int *state, int *ch);
-static void charset_cvvis(struct test_list *t, int *state, int *ch);
-static void charset_cnorm(struct test_list *t, int *state, int *ch);
-static void charset_hs(struct test_list *t, int *state, int *ch);
-static void charset_status(struct test_list *t, int *state, int *ch);
-static void charset_dsl(struct test_list *t, int *state, int *ch);
-static void charset_enacs(struct test_list *t, int *state, int *ch);
-static void charset_smacs(struct test_list *t, int *state, int *ch);
-static void charset_attributes(struct test_list *t, int *state, int *ch);
-static void charset_sgr(struct test_list *t, int *state, int *ch);
-
-struct test_list acs_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_NEXT, 3, "bel", 0, 0, charset_bel, 0},
-	{MENU_NEXT, 3, "flash", 0, 0, charset_flash, 0},
-	{MENU_NEXT, 3, "civis", 0, 0, charset_civis, 0},
-	{MENU_NEXT, 3, "cvvis", 0, 0, charset_cvvis, 0},
-	{MENU_NEXT, 3, "cnorm", 0, 0, charset_cnorm, 0},
-	{MENU_NEXT, 3, "hs", 0, 0, charset_hs, 0},
-	{MENU_NEXT, 3, "tsl) (fsl) (wsl", "hs", 0, charset_status, 0},
-	{MENU_NEXT, 3, "dsl", "hs", 0, charset_dsl, 0},
-	{MENU_NEXT, 0, "acsc) (enacs) (smacs) (rmacs", 0, 0, charset_enacs, 0},
-	{MENU_NEXT, 0, "smacs) (rmacs", 0, 0, charset_smacs, 0},
-	{MENU_NEXT, 11, 0, 0, 0, charset_attributes, 0},
-	{MENU_NEXT, 11, "sgr) (sgr0", "ma", 0, charset_sgr, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-const struct mode_list alt_modes[] = {
-	{"normal", "(sgr0)", "(sgr0)", 1},
-	{"standout", "(smso)", "(rmso)", 2},
-	{"underline", "(smul)", "(rmul)", 4},
-	{"reverse", "(rev)", "(sgr0)", 8},
-	{"blink", "(blink)", "(sgr0)", 16},
-	{"dim", "(dim)", "(sgr0)", 32},
-	{"bold", "(bold)", "(sgr0)", 64},
-	{"invis", "(invis)", "(sgr0)", 128},
-	{"protect", "(prot)", "(sgr0)", 256},
-	{"altcharset", "(smacs)", "(rmacs)", 512}
-};
-
-/* On many terminals the underline attribute is the last scan line.
-   This is OK unless the following line is reverse video.
-   Then the underline attribute does not show up.  The following map
-   will reorder the display so that the underline attribute will
-   show up. */
-const int mode_map[10] = {0, 1, 3, 4, 5, 6, 7, 8, 9, 2};
-
-struct graphics_pair {
-	unsigned char c;
-	const char *name;
-};
-
-static struct graphics_pair glyph[] = {
-	{'+', "arrow pointing right"},
-	{',', "arrow pointing left"},
-	{'.', "arrow pointing down"},
-	{'0', "solid square block"},
-	{'i', "lantern symbol"},
-	{'-', "arrow pointing up"},
-	{'`', "diamond"},
-	{'a', "checker board (stipple)"},
-	{'f', "degree symbol"},
-	{'g', "plus/minus"},
-	{'h', "board of squares"},
-	{'j', "lower right corner"},
-	{'k', "upper right corner"},
-	{'l', "upper left corner"},
-	{'m', "lower left corner"},
-	{'n', "plus"},
-	{'o', "scan line 1"},
-	{'p', "scan line 3"},
-	{'q', "horizontal line"},
-	{'r', "scan line 7"},
-	{'s', "scan line 9"},
-	{'t', "left tee (|-)"},
-	{'u', "right tee (-|)"},
-	{'v', "bottom tee(_|_)"},
-	{'w', "top tee (T)"},
-	{'x', "vertical line"},
-	{'y', "less/equal"},
-	{'z', "greater/equal"},
-	{'{', "Pi"},
-	{'|', "not equal"},
-	{'}', "UK pound sign"},
-	{'~', "bullet"},
-	{'\0', "\0"}
-};
-
-/*
-**	charset_hs(test_list, status, ch)
-**
-**	(hs) test Has status line
-*/
-static void
-charset_hs(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (has_status_line != 1) {
-		ptext("(hs) Has-status line is not defined.  ");
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	charset_status(test_list, status, ch)
-**
-**	(tsl) (fsl) (wsl) test Status line
-*/
-static void
-charset_status(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, max;
-	char *s;
-	static char m[] = "*** status line *** 123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.";
-
-	if (has_status_line != 1) {
-		return;
-	}
-	put_clear();
-	max = width_status_line == -1 ? columns : width_status_line;
-	sprintf(temp, "Terminal has status line of %d characters", max);
-	ptextln(temp);
-
-	put_str("This line s");
-	s = TPARM_1(to_status_line, 0);
-	tc_putp(s);
-	for (i = 0; i < max; i++)
-		putchp(m[i]);
-	tc_putp(from_status_line);
-	putln("hould not be broken.");
-	ptextln("If the previous line is not a complete sentence then (tsl) to-status-line, (fsl) from-status-line, or (wsl) width-of-status-line is incorrect."  );
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	charset_dsl(test_list, status, ch)
-**
-**	(dsl) test Disable status line
-*/
-static void
-charset_dsl(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (has_status_line != 1) {
-		return;
-	}
-	if (dis_status_line) {
-		ptextln("Disable status line (dsl)");
-		tc_putp(dis_status_line);
-		ptext("If you can still see the status line then (dsl) disable-status-line has failed.  ");
-	} else {
-		ptext("(dsl) Disable-status-line is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-
-void
-eat_cookie(void)
-{				/* put a blank if this is not a magic cookie
-				   terminal */
-	if (magic_cookie_glitch < 1)
-		putchp(' ');
-}
-
-
-void
-put_mode(char *s)
-{				/* send the attribute string (with or without
-				   % execution) */
-	tc_putp(TPARM_0(s));		/* allow % execution */
-}
-
-
-void
-set_attr(int a)
-{				/* set the attribute from the bits in a */
-	int i, b[32];
-
-	if (magic_cookie_glitch > 0) {
-		char_count += magic_cookie_glitch;
-	}
-	if (a == 0 && exit_attribute_mode) {
-		put_mode(exit_attribute_mode);
-		return;
-	}
-	for (i = 0; i < 31; i++) {
-		b[i] = (a >> i) & 1;
-	}
-	tc_putp(TPARM_9(set_attributes, b[1], b[2], b[3], b[4], b[5],
-			b[6], b[7], b[8], b[9]));
-}
-
-/*
-**	charset_sgr(test_list, status, ch)
-**
-**	(sgr) test Set Graphics Rendition
-*/
-static void
-charset_sgr(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!set_attributes) {
-		ptext("(sgr) Set-graphics-rendition is not defined.  ");
-		generic_done_message(t, state, ch);
-		return;
-	}
-	if (!exit_attribute_mode) {
-		ptextln("(sgr0) Set-graphics-rendition-zero is not defined.");
-		/* go ahead and test anyway */
-	}
-	ptext("Test video attributes (sgr)");
-
-	for (i = 0; i < (int) (sizeof(alt_modes) / sizeof(struct mode_list));
-		i++) {
-		put_crlf();
-		sprintf(temp, "%d %-20s", i, alt_modes[i].name);
-		put_str(temp);
-		set_attr(alt_modes[i].number);
-		sprintf(temp, "%s", alt_modes[i].name);
-		put_str(temp);
-		set_attr(0);
-	}
-
-	putln("\n\nDouble mode test");
-	for (i = 0; i <= 9; i++) {
-		sprintf(temp, " %2d ", mode_map[i]);
-		put_str(temp);
-	}
-	for (i = 0; i <= 9; i++) {
-		put_crlf();
-		sprintf(temp, "%d", mode_map[i]);
-		put_str(temp);
-		for (j = 0; j <= 9; j++) {
-			eat_cookie();
-			set_attr((1 << mode_map[i]) | (1 << mode_map[j]));
-			put_str("Aa");
-			set_attr(0);
-			if (j < 9)
-				eat_cookie();
-		}
-	}
-	put_crlf();
-
-#ifdef max_attributes
-	if (max_attributes >= 0) {
-		sprintf(temp, "(ma) Maximum attributes %d  ", max_attributes);
-		ptext(temp);
-	}
-#endif
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	test_one_attr(mode-number, begin-string, end-string)
-**
-**	Display one attribute line.
-*/
-static void
-test_one_attr(
-	int n,
-	char *begin_mode,
-	char *end_mode)
-{
-	int i;
-
-	sprintf(temp, "%-10s %s ", alt_modes[n].name, alt_modes[n].begin_mode);
-	ptext(temp);
-	for (; char_count < 19;) {
-		putchp(' ');
-	}
-	if (begin_mode) {
-		putchp('.');
-		put_mode(begin_mode);
-		put_str(alt_modes[n].name);
-		for (i = strlen(alt_modes[n].name); i < 13; i++) {
-			putchp(' ');
-		}
-		if (end_mode) {
-			put_mode(end_mode);
-			sprintf(temp, ". %s", alt_modes[n].end_mode);
-		} else {
-			set_attr(0);
-			strcpy(temp, ". (sgr)");
-		}
-		ptextln(temp);
-	} else {
-		for (i = 0; i < magic_cookie_glitch; i++)
-			putchp('*');
-		put_str("*** missing ***");
-		for (i = 0; i < magic_cookie_glitch; i++)
-			putchp('*');
-		put_crlf();
-	}
-}
-
-/*
-**	charset_attributes(test_list, status, ch)
-**
-**	Test SGR
-*/
-static void
-charset_attributes(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	putln("Test video attributes");
-	test_one_attr(1, enter_standout_mode, exit_standout_mode);
-	test_one_attr(2, enter_underline_mode, exit_underline_mode);
-	test_one_attr(9, enter_alt_charset_mode, exit_alt_charset_mode);
-	if (!exit_attribute_mode && !set_attributes) {
-		ptextln("(sgr0) exit attribute mode is not defined.");
-		generic_done_message(t, state, ch);
-		return;
-	}
-	test_one_attr(3, enter_reverse_mode, exit_attribute_mode);
-	test_one_attr(4, enter_blink_mode, exit_attribute_mode);
-	test_one_attr(5, enter_dim_mode, exit_attribute_mode);
-	test_one_attr(6, enter_bold_mode, exit_attribute_mode);
-	test_one_attr(7, enter_secure_mode, exit_attribute_mode);
-	test_one_attr(8, enter_protected_mode, exit_attribute_mode);
-	generic_done_message(t, state, ch);
-}
-
-#define GLYPHS 256
-
-/*
-**	charset_smacs(test_list, status, ch)
-**
-**	display all possible acs characters
-**	(smacs) (rmacs)
-*/
-static void
-charset_smacs(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, c;
-
-	if (enter_alt_charset_mode) {
-		put_clear();
-		ptextln("The following characters are available. (smacs) (rmacs)");
-		for (i = ' '; i <= '`'; i += 32) {
-			put_crlf();
-			put_mode(exit_alt_charset_mode);
-			for (c = 0; c < 32; c++) {
-				putchp(c + i);
-			}
-			put_crlf();
-			put_mode(enter_alt_charset_mode);
-			for (c = 0; c < 32; c++) {
-				putchp(c + i);
-			}
-			put_mode(exit_alt_charset_mode);
-			put_crlf();
-		}
-		put_mode(exit_alt_charset_mode);
-		put_crlf();
-		generic_done_message(t, state, ch);
-	}
-}
-
-
-static void
-test_acs(
-	int attr)
-{				/* alternate character set */
-	int i, j;
-	char valid_glyph[GLYPHS];
-	char acs_table[GLYPHS];
-	static unsigned char vt100[] = "`afgjklmnopqrstuvwxyz{|}~";
-
-	line_count = 0;
-	for (i = 0; i < GLYPHS; i++) {
-		valid_glyph[i] = FALSE;
-		acs_table[i] = i;
-	}
-	if (acs_chars) {
-		sprintf(temp, "Alternate character set map: %s",
-			expand(acs_chars));
-		putln(temp);
-		for (i = 0; acs_chars[i]; i += 2) {
-			if (acs_chars[i + 1] == 0) {
-				break;
-			}
-			for (j = 0;; j++) {
-				if (glyph[j].c == (unsigned char) acs_chars[i]) {
-					acs_table[glyph[j].c] = acs_chars[i + 1];
-					valid_glyph[glyph[j].c] = TRUE;
-					break;
-				}
-				if (glyph[j].name[0] == '\0') {
-					if (isgraph(UChar(acs_chars[i]))) {
-						sprintf(temp, "    %c",
-							acs_chars[i]);
-					} else {
-						sprintf(temp, " 0x%02x",
-							UChar(acs_chars[i]));
-					}
-					strcpy(&temp[5], " *** has no mapping ***");
-					putln(temp);
-					break;
-				}
-			}
-		}
-	} else {
-		ptextln("acs_chars not defined (acsc)");
-		/* enable the VT-100 graphics characters (default) */
-		for (i = 0; vt100[i]; i++) {
-			valid_glyph[vt100[i]] = TRUE;
-		}
-	}
-	if (attr) {
-		set_attr(attr);
-	}
-	_nc_init_acs();	/* puts 'ena_acs' and incidentally links acs_map[] */
-	for (i = 0; glyph[i].name[0]; i++) {
-		if (valid_glyph[glyph[i].c]) {
-			put_mode(enter_alt_charset_mode);
-			put_this(acs_table[glyph[i].c]);
-			char_count++;
-			put_mode(exit_alt_charset_mode);
-			if (magic_cookie_glitch >= 1) {
-				sprintf(temp, " %-30.30s", glyph[i].name);
-				put_str(temp);
-				if (char_count + 33 >= columns)
-					put_crlf();
-			} else {
-				sprintf(temp, " %-24.24s", glyph[i].name);
-				put_str(temp);
-				if (char_count + 26 >= columns)
-					put_crlf();
-			}
-			if (line_count >= lines) {
-				(void) wait_here();
-				put_clear();
-			}
-		}
-	}
-	if (char_count > 1) {
-		put_crlf();
-	}
-#ifdef ACS_ULCORNER
-	maybe_wait(5);
-	put_mode(enter_alt_charset_mode);
-	put_that(ACS_ULCORNER);
-	put_that(ACS_TTEE);
-	put_that(ACS_URCORNER);
-	put_that(ACS_ULCORNER);
-	put_that(ACS_HLINE);
-	put_that(ACS_URCORNER);
-	char_count += 6;
-	put_mode(exit_alt_charset_mode);
-	put_crlf();
-	put_mode(enter_alt_charset_mode);
-	put_that(ACS_LTEE);
-	put_that(ACS_PLUS);
-	put_that(ACS_RTEE);
-	put_that(ACS_VLINE);
-	if (magic_cookie_glitch >= 1)
-		put_this(' ');
-	else {
-		put_mode(exit_alt_charset_mode);
-		put_this(' ');
-		put_mode(enter_alt_charset_mode);
-	}
-	put_that(ACS_VLINE);
-	char_count += 6;
-	put_mode(exit_alt_charset_mode);
-	put_str("   Here are 2 boxes");
-	put_crlf();
-	put_mode(enter_alt_charset_mode);
-	put_that(ACS_LLCORNER);
-	put_that(ACS_BTEE);
-	put_that(ACS_LRCORNER);
-	put_that(ACS_LLCORNER);
-	put_that(ACS_HLINE);
-	put_that(ACS_LRCORNER);
-	char_count += 6;
-	put_mode(exit_alt_charset_mode);
-	put_crlf();
-#endif
-}
-
-/*
-**	charset_bel(test_list, status, ch)
-**
-**	(bel) test Bell
-*/
-static void
-charset_bel(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (bell) {
-		ptextln("Testing bell (bel)");
-		tc_putp(bell);
-		ptext("If you did not hear the Bell then (bel) has failed.  ");
-	} else {
-		ptext("(bel) Bell is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	charset_flash(test_list, status, ch)
-**
-**	(flash) test Visual bell
-*/
-static void
-charset_flash(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (flash_screen) {
-		ptextln("Testing visual bell (flash)");
-		tc_putp(flash_screen);
-		ptext("If you did not see the screen flash then (flash) has failed.  ");
-	} else {
-		ptext("(flash) Flash is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	charset_civis(test_list, status, ch)
-**
-**	(civis) test Cursor invisible
-*/
-static void
-charset_civis(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (cursor_normal) {
-		if (cursor_invisible) {
-			ptext("(civis) Turn off the cursor.  ");
-			tc_putp(cursor_invisible);
-			ptext("If you can still see the cursor then (civis) has failed.  ");
-		} else {
-			ptext("(civis) Cursor-invisible is not defined.  ");
-		}
-		generic_done_message(t, state, ch);
-		tc_putp(cursor_normal);
-	}
-}
-
-/*
-**	charset_cvvis(test_list, status, ch)
-**
-**	(cvvis) test Cursor very visible
-*/
-static void
-charset_cvvis(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (cursor_normal) {
-		if (cursor_visible) {
-			ptext("(cvvis) Make cursor very visible.  ");
-			tc_putp(cursor_visible);
-			ptext("If the cursor is not very visible then (cvvis) has failed.  ");
-		} else {
-			ptext("(cvvis) Cursor-very-visible is not defined.  ");
-		}
-		generic_done_message(t, state, ch);
-		tc_putp(cursor_normal);
-	}
-}
-
-/*
-**	charset_cnorm(test_list, status, ch)
-**
-**	(cnorm) test Cursor normal
-*/
-static void
-charset_cnorm(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (cursor_normal) {
-		ptext("(cnorm) Normal cursor.  ");
-		tc_putp(cursor_normal);
-		ptext("If the cursor is not normal then (cnorm) has failed.  ");
-	} else {
-		ptext("(cnorm) Cursor-normal is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	charset_enacs(test_list, status, ch)
-**
-**	test Alternate character set mode and alternate characters
-**	(acsc) (enacs) (smacs) (rmacs)
-*/
-static void
-charset_enacs(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int c, i;
-
-	if (enter_alt_charset_mode || acs_chars) {
-		c = 0;
-		while (1) {
-			put_clear();
-			/*
-			   for terminals that use separate fonts for
-			   attributes (such as X windows) the line
-			   drawing characters must be checked for
-			   each font.
-			*/
-			if (c >= '0' && c <= '9') {
-				test_acs(alt_modes[c - '0'].number);
-				set_attr(0);
-			} else {
-				test_acs(0);
-			}
-
-			while (1) {
-				ptextln("[r] to repeat, [012345789] to test with attributes on, [?] for a list of attributes, anything else to go to next test.  ");
-				generic_done_message(t, state, ch);
-				if (*ch != '?') {
-					break;
-				}
-				for (i = 0; i <= 9; i++) {
-					sprintf(temp, " %d %s %s", i, alt_modes[i].begin_mode,
-						alt_modes[i].name);
-					ptextln(temp);
-				}
-			}
-			if (*ch >= '0' && *ch <= '9') {
-				c = *ch;
-			} else
-			if (*ch != 'r') {
-				break;
-			}
-		}
-	} else {
-		ptext("(smacs) Enter-alt-char-set-mode and (acsc) Alternate-char-set are not defined.  ");
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	charset_can_test()
-**
-**	Initialize the can_test data base
-*/
-void
-charset_can_test(void)
-{
-	int i;
-
-	for (i = 0; i < 9; i++) {
-		can_test(alt_modes[i].begin_mode, FLAG_CAN_TEST);
-		can_test(alt_modes[i].end_mode, FLAG_CAN_TEST);
-	}
-}
diff -Naur ncurses-5.6.orig/tack/color.c ncurses-5.6/tack/color.c
--- ncurses-5.6.orig/tack/color.c	2006-11-25 19:14:25.000000000 -0500
+++ ncurses-5.6/tack/color.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,769 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: color.c,v 1.7 2006/11/26 00:14:25 tom Exp $")
-
-/*
- * Color terminal tests.  Has only one entry point: test_color().
- */
-
-static void color_check(struct test_list *, int *, int *);
-static void color_setf(struct test_list *, int *, int *);
-static void color_matrix(struct test_list *, int *, int *);
-static void color_ncv(struct test_list *, int *, int *);
-static void color_ccc(struct test_list *, int *, int *);
-static void color_bce(struct test_list *, int *, int *);
-
-struct test_list color_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_NEXT, 2, "colors) (pairs", 0, 0, color_check, 0},
-	{MENU_NEXT, 12, "setf) (setb) (scp", 0, 0, color_setf, 0},
-	{MENU_NEXT, 24, "op", 0, 0, color_matrix, 0},
-	{MENU_NEXT, 16, "ncv", 0, 0, color_ncv, 0},
-	{MENU_NEXT, 0, "bce", 0, 0, color_bce, 0},
-	{MENU_NEXT | MENU_CLEAR, 0, "ccc) (initc) (initp", "hls op oc", 0, color_ccc, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-#ifndef COLOR_BLACK
-#define COLOR_BLACK     0
-#define COLOR_BLUE      1
-#define COLOR_GREEN     2
-#define COLOR_CYAN      3
-#define COLOR_RED       4
-#define COLOR_MAGENTA   5
-#define COLOR_YELLOW    6
-#define COLOR_WHITE     7
-#endif
-
-struct color_table {
-	const char *name;
-	int index;
-	int r, g, b;
-	int h, l, s;
-};
-
-static struct color_table def_colors[8] = {
-	{"black  ", COLOR_BLACK, 0, 0, 0, 0, 0, 0},
-	{"blue   ", COLOR_BLUE, 0, 0, 1000, 330, 50, 100},
-	{"green  ", COLOR_GREEN, 0, 1000, 0, 240, 50, 100},
-	{"cyan   ", COLOR_CYAN, 0, 1000, 1000, 300, 50, 100},
-	{"red    ", COLOR_RED, 1000, 0, 0, 120, 50, 100},
-	{"magenta", COLOR_MAGENTA, 1000, 0, 1000, 60, 50, 100},
-	{"yellow ", COLOR_YELLOW, 1000, 1000, 0, 180, 50, 100},
-	{"white  ", COLOR_WHITE, 1000, 1000, 1000, 0, 100, 0}
-};
-
-#define MAX_PAIR	256
-static int fg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLUE, COLOR_GREEN,
-COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE};
-static int bg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLACK, COLOR_BLACK,
-COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK};
-static int pairs_used = 8;
-static int a_bright_color, bright_value;
-static int cookie_monster, color_step, colors_per_line;
-static int R, G, B;
-
-static void reset_colors(void)
-{
-	tc_putp(orig_colors);
-	tc_putp(TPARM_0(orig_pair));
-}
-
-static int
-color_trans(int c)
-{				/* translate or load the color */
-	int i;
-
-	for (i = 0; i < pairs_used; i++) {
-		if (fg_color[i] == c) {
-			return i;
-		}
-	}
-	if (!can_change) {
-		return 0;
-	}
-	if (pairs_used > max_colors || pairs_used >= MAX_PAIR) {
-		pairs_used = 0;
-		ptextln("Ran out of colors");
-	}
-	fg_color[pairs_used] = c;
-	bg_color[pairs_used] = c;
-	if (hue_lightness_saturation) {
-		tc_putp(TPARM_4(initialize_color, pairs_used,
-			def_colors[c].h, def_colors[c].l, def_colors[c].s));
-	} else {
-		tc_putp(TPARM_4(initialize_color, pairs_used,
-			def_colors[c].r, def_colors[c].g, def_colors[c].b));
-	}
-	return pairs_used++;
-}
-
-static void
-new_color(
-	int fg,
-	int bg,
-	int hungry)
-{				/* change the color to fg and bg. */
-	int i;
-
-	if (hungry) {
-		eat_cookie();
-	}
-	if (set_a_foreground) {
-		/* set ANSI color (setaf) (setab) */
-		tc_putp(TPARM_1(set_a_foreground, fg));
-		tc_putp(TPARM_1(set_a_background, bg));
-	} else if (set_foreground) {
-		/* make sure black is zero */
-		(void) color_trans(COLOR_BLACK);
-		tc_putp(TPARM_1(set_foreground, color_trans(fg)));
-		tc_putp(TPARM_1(set_background, color_trans(bg)));
-	} else {	/* set color pair */
-		for (i = 0; i < pairs_used; i++) {
-			if (fg_color[i] == fg && bg_color[i] == bg) {
-				tc_putp(TPARM_1(set_color_pair, i));
-				if (hungry) {
-					eat_cookie();
-				}
-				return;
-			}
-		}
-		if (!can_change) {
-			/* try to set just the foreground */
-			for (i = pairs_used - 1; i; i--) {
-				if (fg_color[i] == fg)
-					break;
-			}
-			tc_putp(TPARM_1(set_color_pair, i));
-			if (hungry) {
-				eat_cookie();
-			}
-			return;
-		}
-		if (pairs_used > max_pairs || pairs_used >= MAX_PAIR) {
-			pairs_used = 0;
-			ptextln("Ran out of color pairs");
-		}
-		fg_color[pairs_used] = fg;
-		bg_color[pairs_used] = bg;
-		if (hue_lightness_saturation) {
-			tc_putp(TPARM_7(initialize_pair, pairs_used,
-				def_colors[fg].h, def_colors[fg].l, def_colors[fg].s,
-				def_colors[bg].h, def_colors[bg].l, def_colors[bg].s));
-		} else {
-			tc_putp(TPARM_7(initialize_pair, pairs_used,
-				def_colors[fg].r, def_colors[fg].g, def_colors[fg].b,
-				def_colors[bg].r, def_colors[bg].g, def_colors[bg].b));
-		}
-		tc_putp(TPARM_1(set_color_pair, pairs_used));
-		pairs_used++;
-	}
-	if (hungry) {
-		eat_cookie();
-	}
-}
-
-
-static void
-set_color_step(void)
-{				/* set the color_step for the (ccc) display */
-	int i;
-
-	for (i = 2; i < 1000; i++) {
-		if ((i * i * i) >= max_colors) {
-			break;
-		}
-	}
-	color_step = 1000 / (i - 1);
-}
-
-
-static void
-rgb_2_hls(int r, int g, int b, int *h, int *l, int *s)
-{				/* convert RGB to HLS system */
-	int min, max, t;
-
-	if ((min = g < r ? g : r) > b) {
-		min = b;
-	}
-	if ((max = g > r ? g : r) < b) {
-		max = b;
-	}
-
-	/* calculate lightness */
-	*l = (min + max) / 20;
-
-	if (min == max) {	/* black, white and all shades of gray */
-		*h = 0;
-		*s = 0;
-		return;
-	}
-	/* calculate saturation */
-	if (*l < 50) {
-		*s = ((max - min) * 100) / (max + min);
-	} else {
-		*s = ((max - min) * 100) / (2000 - max - min);
-	}
-
-	/* calculate hue */
-	if (r == max) {
-		t = 120 + ((g - b) * 60) / (max - min);
-	} else if (g == max) {
-		t = 240 + ((b - r) * 60) / (max - min);
-	} else {
-		t = 360 + ((r - g) * 60) / (max - min);
-	}
-	*h = t % 360;
-}
-
-
-static void
-send_color(int p, int r, int g, int b)
-{				/* send the initialize_color (initc) command */
-	int h, l, s;
-
-	if (hue_lightness_saturation) {
-		rgb_2_hls(r, g, b, &h, &l, &s);
-		tc_putp(TPARM_4(initialize_color, p, h, l, s));
-	} else {
-		tc_putp(TPARM_4(initialize_color, p, r, g, b));
-	}
-}
-
-
-static void
-send_pair(int p, int fr, int fg, int fb, int br, int bg, int bb)
-{				/* send the initialize_pair (initp) command */
-	int fh, fl, fs, bh, bl, bs;
-
-	if (hue_lightness_saturation) {
-		rgb_2_hls(fr, fg, fb, &fh, &fl, &fs);
-		rgb_2_hls(br, bg, bb, &bh, &bl, &bs);
-		tc_putp(TPARM_7(initialize_pair, p, fh, fl, fs, bh, bl, bs));
-	} else {
-		tc_putp(TPARM_7(initialize_pair, p, fr, fg, fb, bb, bg, bb));
-	}
-}
-
-
-static int
-load_palette(int n)
-{				/* load the color palette */
-	int rgb;
-
-	for (;;) {
-		if (pairs_used >= n) {
-			return FALSE;
-		}
-		if (set_a_foreground || set_foreground) {
-			if (pairs_used >= max_colors) {
-				return FALSE;
-			}
-			send_color(pairs_used, R, G, B);
-			rgb = R + G + B;
-			if (rgb > bright_value) {
-				bright_value = rgb;
-				a_bright_color = pairs_used;
-			}
-		} else {
-			if (pairs_used >= max_pairs) {
-				return FALSE;
-			}
-			if (pairs_used == 0) {
-				send_pair(pairs_used, 1000, 1000, 1000, R, G, B);
-			} else {
-				send_pair(pairs_used, R, G, B, R, G, B);
-			}
-		}
-		pairs_used++;
-		if ((B += color_step) > 1000) {
-			B = 0;
-			if ((G += color_step) > 1000) {
-				G = 0;
-				if ((R += color_step) > 1000) {
-					return TRUE;
-				}
-			}
-		}
-	}
-}
-
-
-static int
-rainbow(int n)
-{				/* print the programmable color display */
-	int i, c, d, palette_full, initial_pair;
-	static const struct {
-		const char *name;
-		char ch;
-	}  splat[] = {
-		{"Bg normal", ' '},
-		{"Fg normal", ' '},
-		{0, 0}
-	};
-
-	if ((set_a_foreground || set_foreground)
-	  ? pairs_used >= max_colors
-	  : pairs_used >= max_pairs) {
-		ptext("New palette: ");
-		(void) wait_here();
-		initial_pair = pairs_used = 1;
-		bright_value = 0;
-	} else if (line_count + 3 >= lines) {
-		ptext("Go: ");
-		(void) wait_here();
-		put_clear();
-		initial_pair = pairs_used = 1;
-		bright_value = 0;
-		n++;
-	} else {
-		initial_pair = pairs_used;
-		n += initial_pair;
-	}
-	palette_full = load_palette(n);
-	for (d = 0; splat[d].name; d++) {
-		c = splat[d].ch;
-		if (d == 1) {
-			put_mode(enter_reverse_mode);
-		}
-		for (i = initial_pair; i < n; i++) {
-			if (i >= pairs_used) {
-				break;
-			}
-			if (set_a_foreground) {
-				if (i >= max_colors) {
-					break;
-				}
-				tc_putp(TPARM_1(set_a_foreground, i));
-				tc_putp(TPARM_1(set_a_background, i));
-			} else if (set_foreground) {
-				if (i >= max_colors) {
-					break;
-				}
-				tc_putp(TPARM_1(set_foreground, i));
-				tc_putp(TPARM_1(set_background, i));
-			} else {
-				if (i >= max_pairs) {
-					break;
-				}
-				tc_putp(TPARM_1(set_color_pair, i));
-			}
-			putchp(c);
-		}
-		if (d == 1) {
-			put_mode(exit_attribute_mode);
-		}
-		if (set_a_foreground) {
-			tc_putp(TPARM_1(set_a_foreground, a_bright_color));
-			tc_putp(TPARM_1(set_a_background, 0));
-		} else if (set_foreground) {
-			tc_putp(TPARM_1(set_foreground, a_bright_color));
-			tc_putp(TPARM_1(set_background, 0));
-		} else {
-			tc_putp(TPARM_1(set_color_pair, 0));
-		}
-		put_str("   ");
-		put_str(splat[d].name);
-		put_crlf();
-	}
-	return palette_full;
-}
-
-
-static void
-ncv_display(int m)
-{				/* print the no_color_video (ncv) test line */
-	putchp('0' + m);
-	putchp(' ');
-	eat_cookie();
-	set_attr(1 << m);
-	sprintf(temp, "%-11s", alt_modes[m].name);
-	put_str(temp);
-
-	new_color(COLOR_BLUE, COLOR_BLACK, TRUE);
-	put_str("blue");
-
-	new_color(COLOR_BLACK, COLOR_GREEN, TRUE);
-	put_str("green");
-
-	new_color(COLOR_WHITE, COLOR_BLACK, TRUE);
-	put_str(alt_modes[m].name);
-	eat_cookie();
-	set_attr(0);
-	reset_colors();
-	put_crlf();
-}
-
-
-static void
-dump_colors(void)
-{				/* display the colors in some esthetic
-				   pattern */
-	static int xmap[8] = {0, 3, 4, 7, 1, 2, 5, 6};
-	int i, j, k, xi, xj, width, p, cs;
-	int found_one;
-
-	cs = color_step <= 125 ? 125 : color_step;
-	width = (1000 / cs) + 1;
-	for (xi = 0; xi < 16; xi++) {
-		i = (xi & 8) ? xi ^ 15 : xi;
-		R = i * cs;
-		if (R <= 1000) {
-			found_one = FALSE;
-			for (xj = 0; xj < 32; xj++) {
-				j = ((xj & 8) ? xj ^ 15 : xj) & 7;
-				k = xmap[((xi >> 1) & 4) + (xj >> 3)];
-				G = j * cs;
-				B = k * cs;
-				if (G <= 1000 && B <= 1000) {
-					p = (k * width + j) * width + i;
-					if (set_a_background) {
-						if (p >= max_colors) {
-							continue;
-						}
-						send_color(p, R, G, B);
-						tc_putp(TPARM_1(set_a_background, p));
-					} else if (set_background) {
-						if (p >= max_colors) {
-							continue;
-						}
-						send_color(p, R, G, B);
-						tc_putp(TPARM_1(set_background, p));
-					} else {
-						if (p >= max_pairs) {
-							continue;
-						}
-						send_pair(p, R, G, B, R, G, B);
-						tc_putp(TPARM_1(set_color_pair, p));
-					}
-					found_one = TRUE;
-					putchp(' ');
-					putchp(' ');
-				}
-			}
-			if (found_one) {
-				put_crlf();
-			}
-		}
-	}
-}
-
-/*
-**	color_check(test_list, status, ch)
-**
-**	test (colors) and (pairs)
-*/
-static void
-color_check(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (max_colors <= 0 && max_pairs <= 0) {
-		ptext("This is not a color terminal; (colors) and (pairs) are missing.  ");
-		*state |= MENU_STOP;
-	} else {
-		sprintf(temp, "This terminal can display %d colors and %d color pairs.  (colors) (pairs)",
-			max_colors, max_pairs);
-		ptextln(temp);
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	color_setf(test_list, status, ch)
-**
-**	test (setf) (setb) and (scp)
-*/
-static void
-color_setf(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (max_colors <= 0 && max_pairs <= 0) {
-		ptext("This is not a color terminal; (colors) and (pairs) are missing.  ");
-		generic_done_message(t, state, ch);
-		*state |= MENU_STOP;
-		return;
-	}
-	if ((set_a_foreground == NULL || set_a_background == NULL)
-	 && (set_foreground == NULL   || set_background == NULL)
-	 && set_color_pair == NULL) {
-		ptextln("Both set foreground (setaf/setf) and set color pair (scp) are not present.");
-		if (!set_a_background || !set_background) {
-			ptextln("(setab/setb) set background not present");
-		}
-		ptext("These must be defined for color testing.  ");
-		generic_done_message(t, state, ch);
-		*state |= MENU_STOP;
-		return;
-	}
-	/* initialize the color palette */
-	pairs_used = max_colors >= 8 ? 8 : max_colors;
-	reset_colors();
-	new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-
-	ptextln("(setf) (setb) (scp) The following colors are predefined:");
-	ptextln("\n   Foreground     Background");
-	put_crlf();
-	j = max_colors > 8 ? 8 : max_colors;
-	/*
-	 * the black on white test is the same as the white on black test.
-	 */
-	for (i = 1; i < j; i++) {
-		putchp('0' + def_colors[i].index);
-		putchp(' ');
-		sprintf(temp, " %s ", def_colors[i].name);
-
-		new_color(def_colors[i].index, COLOR_BLACK, TRUE);
-		put_str(temp);
-
-		new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
-		put_str("  ");
-
-		new_color(COLOR_BLACK, def_colors[i].index, TRUE);
-		put_str(temp);
-
-		new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-		put_crlf();
-	}
-	reset_colors();
-	put_crlf();
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	color_matrix(test_list, status, ch)
-**
-**	test (pairs) (op)
-*/
-static void
-color_matrix(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, matrix_size, matrix_area, brightness;
-
-	matrix_size = max_colors > 8 ? 8 : max_colors;
-
-	sprintf(temp, "(pairs) There are %d color pairs.", max_pairs);
-	ptextln(temp);
-
-	for ( ; matrix_size; matrix_size--) {
-		if (matrix_size * matrix_size <= max_pairs) {
-			break;
-		}
-	}
-	matrix_area = matrix_size * matrix_size;
-	for (brightness = 0; brightness < 2; brightness++) {
-		put_crlf();
-		sprintf(temp,
-			"%dx%d matrix of foreground/background colors, bright *o%s*",
-			matrix_size, matrix_size, brightness ? "n" : "ff");
-		put_str(temp);
-
-		put_str("\n          ");
-		for (i = 0; i < matrix_size; i++) {
-			(void) sprintf(temp, "%-8s", def_colors[i].name);
-			put_str(temp);
-		}
-		for (j = 0; j < matrix_area; j++) {
-			if (j % matrix_size == 0) {
-				reset_colors();
-				put_crlf();
-				if (brightness) {
-					tc_putp(exit_attribute_mode);
-				}
-				(void) sprintf(temp, "%-8s", def_colors[j / matrix_size].name);
-				put_str(temp);
-				if (brightness) {
-					put_mode(enter_bold_mode);
-				}
-			}
-			new_color(def_colors[j % matrix_size].index,
-				def_colors[j / matrix_size].index,
-				FALSE);
-			put_str("  Hello ");
-		}
-		reset_colors();
-		if (brightness) {
-			tc_putp(exit_attribute_mode);
-		}
-		put_crlf();
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	color_ncv(test_list, status, ch)
-**
-**	test (ncv)
-*/
-static void
-color_ncv(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (no_color_video == -1) {
-		/* I have no idea what this means */
-		return;
-	}
-	sprintf(temp, "According to no_color_video (ncv) which is %d, the following attributes should work correctly with color.", no_color_video);
-	ptextln(temp);
-	put_crlf();
-	set_attr(0);
-	ncv_display(0);
-	for (i = 1; i <= 9; i++) {
-		if (((no_color_video >> (mode_map[i] - 1)) & 1) == 0) {
-			ncv_display(mode_map[i]);
-		}
-	}
-	if (no_color_video & 0x3ff) {
-		ptextln("\nThe following attributes should not work correctly with color. (ncv)\n");
-		for (i = 1; i <= 9; i++) {
-			if ((no_color_video >> (mode_map[i] - 1)) & 1) {
-				ncv_display(mode_map[i]);
-			}
-		}
-	}
-	reset_colors();
-	put_crlf();
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	color_bce(test_list, status, ch)
-**
-**	test (bce) background color erase
-*/
-static void
-color_bce(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	new_color(COLOR_CYAN, COLOR_BLUE, FALSE);
-	put_clear();
-	put_newlines(2);
-	reset_colors();
-	ptextln("If the two lines above are blue then back_color_erase (bce) should be true.");
-	sprintf(temp, "(bce) is %s in the data base.", back_color_erase ? "true" : "false");
-	ptextln(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	color_ccc(test_list, status, ch)
-**
-**	test (ccc) color palette test (oc) (op) (initc) (initp)
-*/
-static void
-color_ccc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!can_change) {
-		ptextln("Terminal can not change colors (ccc)");
-		generic_done_message(t, state, ch);
-		return;
-	}
-	reset_colors();
-	pairs_used = 0;
-	new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-	sprintf(temp, "Reloading colors (init%c) using %s method",
-		set_foreground ? 'c' : 'p',
-		hue_lightness_saturation ? "HLS" : "RGB");
-	ptextln(temp);
-	put_crlf();
-	j = max_colors > 7 ? 7 : max_colors;
-	/* redisplay the above test with reinitialized colors */
-	/* If these colors don't look right to you... */
-	for (i = 0; i < j; i++) {
-		sprintf(temp, " %s ", def_colors[i ^ 7].name);
-
-		new_color(i ^ 7, COLOR_BLACK, TRUE);
-		put_str(temp);
-
-		new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
-		put_str("  ");
-
-		new_color(COLOR_BLACK, i ^ 7, TRUE);
-		put_str(temp);
-
-		new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-		put_crlf();
-	}
-	generic_done_message(t, state, ch);
-	if (*ch != 0 && *ch != 'n') {
-		reset_colors();
-		return;
-	}
-
-	pairs_used = 0;
-	cookie_monster = 0;
-	if (magic_cookie_glitch > 0) {
-		cookie_monster =
-			((set_a_foreground || set_foreground)
-				? magic_cookie_glitch : 0) +
-			((set_a_background || set_background)
-				? magic_cookie_glitch : 0) +
-			(set_color_pair ? magic_cookie_glitch : 0);
-	}
-	set_color_step();
-	colors_per_line = max_colors > max_pairs
-		? max_pairs : max_colors;
-	j = (columns - 14) / (cookie_monster + 1);
-	if (colors_per_line > j) {
-		colors_per_line = (j / i) * i;
-	}
-	sprintf(temp, "RGB color step %d, cookies %d", color_step,
-		cookie_monster);
-	ptextln(temp);
-
-	R = G = B = 0;
-	pairs_used = 0;
-	for (;;) {
-		if (rainbow(colors_per_line)) {
-			break;
-		}
-	}
-	generic_done_message(t, state, ch);
-	if (*ch != 0 && *ch != 'n') {
-		reset_colors();
-		return;
-	}
-	dump_colors();
-	reset_colors();
-	generic_done_message(t, state, ch);
-}
diff -Naur ncurses-5.6.orig/tack/control.c ncurses-5.6/tack/control.c
--- ncurses-5.6.orig/tack/control.c	2006-06-24 17:27:53.000000000 -0400
+++ ncurses-5.6/tack/control.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,664 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-MODULE_ID("$Id: control.c,v 1.9 2006/06/24 21:27:53 tom Exp $")
-
-/* terminfo test program control subroutines */
-
-#if HAVE_GETTIMEOFDAY
-#define MY_TIMER struct timeval
-#else
-#define MY_TIMER time_t
-#endif
-
-/* globals */
-int test_complete;		/* counts number of tests completed */
-
-char txt_longer_test_time[80];	/* +) use longer time */
-char txt_shorter_test_time[80];	/* -) use shorter time */
-static int pad_test_duration = 1;	/* number of seconds for a pad test */
-int auto_pad_mode;		/* run the time tests */
-int no_alarm_event;		/* TRUE if the alarm has not gone off yet */
-unsigned long usec_run_time;	/* length of last test in microseconds */
-static MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
-
-char txt_longer_augment[80];	/* >) use bigger augment */
-char txt_shorter_augment[80];	/* <) use smaller augment */
-
-/* caps under test data base */
-int tt_delay_max;		/* max number of milliseconds we can delay */
-int tt_delay_used;		/* number of milliseconds consumed in delay */
-const char *tt_cap[TT_MAX];	/* value of string */
-int tt_affected[TT_MAX];	/* lines or columns effected (repetition factor) */
-int tt_count[TT_MAX];		/* Number of times sent */
-int tt_delay[TT_MAX];		/* Number of milliseconds delay */
-int ttp;			/* number of entries used */
-
-/* Saved value of the above data base */
-const char *tx_cap[TT_MAX];	/* value of string */
-int tx_affected[TT_MAX];	/* lines or columns effected (repetition factor) */
-int tx_count[TT_MAX];		/* Number of times sent */
-int tx_index[TT_MAX];		/* String index */
-int tx_delay[TT_MAX];		/* Number of milliseconds delay */
-int txp;			/* number of entries used */
-int tx_characters;		/* printing characters sent by test */
-unsigned long tx_cps;		/* characters per second */
-static struct test_list *tx_source;	/* The test that generated this data */
-
-#define RESULT_BLOCK		1024
-static int blocks;		/* number of result blocks available */
-static struct test_results *results;	/* pointer to next available */
-static struct test_results **pads;	/* save pad results here */
-
-static void
-alloc_arrays(void)
-{
-    	if (pads == 0) {
-	    	pads = (struct test_results **)calloc(MAX_STRINGS, sizeof(struct test_results *));
-	}
-}
-
-/*
-**	event_start(number)
-**
-**	Begin the stopwatch at the current time-of-day.
-*/
-void
-event_start(int n)
-{
-#if HAVE_GETTIMEOFDAY
-	(void) gettimeofday(&stop_watch[n], (struct timezone *)0);
-#else
-	stop_watch[n] = time((time_t *)0);
-#endif
-}
-
-/*
-**	event_time(number)
-**
-**	Return the number of milliseconds since this stop watch began.
-*/
-long
-event_time(int n)
-{
-#if HAVE_GETTIMEOFDAY
-	MY_TIMER current_time;
-
-	(void) gettimeofday(&current_time, (struct timezone *)0);
-	return ((current_time.tv_sec - stop_watch[n].tv_sec) * 1000000)
-		+ current_time.tv_usec - stop_watch[n].tv_usec;
-#else
-	return (time((time_t *)0) - stop_watch[n]) * 1000;
-#endif
-}
-
-/*****************************************************************************
- *
- * Execution control for string capability tests
- *
- *****************************************************************************/
-
-/*
-**	get_next_block()
-**
-**	Get a results block for pad test data.
-*/
-static struct test_results *
-get_next_block(void)
-{
-	if (blocks <= 0) {
-		results = (struct test_results *)
-			malloc(sizeof(struct test_results) * RESULT_BLOCK);
-		if (!results) {
-			ptextln("Malloc failed");
-			return (struct test_results *) 0;
-		}
-		blocks = RESULT_BLOCK;
-	}
-	blocks--;
-	return results++;
-}
-
-/*
-**	set_augment_txt()
-**
-**	Initialize the augment menu selections
-*/
-void
-set_augment_txt(void)
-{
-	sprintf(txt_longer_augment,
-		">) Change lines/characters effected to %d", augment << 1);
-	sprintf(txt_shorter_augment,
-		"<) Change lines/characters effected to %d", augment >> 1);
-}
-
-void
-control_init(void)
-{
-	sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
-		pad_test_duration + 1);
-	sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
-		pad_test_duration - 1);
-	set_augment_txt();
-}
-
-/*
-**	msec_cost(cap, affected-count)
-**
-**	Return the number of milliseconds delay needed by the cap.
-*/
-int
-msec_cost(
-	const char *const cap,
-	int affcnt)
-{
-	int dec, value, total, star, ch;
-	const char *cp;
-
-	if (!cap) {
-		return 0;
-	}
-	total = 0;
-	for (cp = cap; *cp; cp++) {
-		if (*cp == '$' && cp[1] == '<') {
-			star = 1;
-			value = dec = 0;
-			for (cp += 2; (ch = *cp); cp++) {
-				if (ch >= '0' && ch <= '9') {
-					value = value * 10 + (ch - '0');
-					dec *= 10;
-				} else
-				if (ch == '.') {
-					dec = 1;
-				} else
-				if (ch == '*') {
-					star = affcnt;
-				} else
-				if (ch == '>') {
-					break;
-				}
-			}
-			if (dec > 1) {
-				total += (value * star) / dec;
-			} else {
-				total += (value * star);
-			}
-		}
-	}
-	return total;
-}
-
-/*
-**	liberated(cap)
-**
-**	Return the cap without padding
-*/
-char *
-liberated(char *cap)
-{
-	static char cb[1024];
-	char *ts, *ls;
-
-	cb[0] = '\0';
-	ls = NULL;
-	if (cap) {
-		for (ts = cb; (*ts = *cap); ++cap) {
-			if (*cap == '$' && cap[1] == '<') {
-				ls = ts;
-			}
-			++ts;
-			if (*cap == '>') {
-				if (ls) {
-					ts = ls;
-					ls = NULL;
-				}
-			}
-		}
-	}
-	return cb;
-}
-
-/*
-**	page_loop()
-**
-**	send CR/LF or go home and bump letter
-*/
-void
-page_loop(void)
-{
-	if (line_count + 2 >= lines) {
-		NEXT_LETTER;
-		go_home();
-	} else {
-		put_crlf();
-	}
-}
-
-/*
-**	skip_pad_test(test-list-entry, state, ch, text)
-**
-**	Print the start test line.  Handle start up commands.
-**	Return TRUE if a return is requested.
-*/
-int
-skip_pad_test(
-	struct test_list *test,
-	int *state,
-	int *ch,
-	const char *text)
-{
-	char rep_text[16];
-
-	while(1) {
-		if (text) {
-			ptext(text);
-		}
-		if ((test->flags & MENU_LC_MASK)) {
-			sprintf(rep_text, " *%d", augment);
-			ptext(rep_text);
-		}
-		ptext(" [n] > ");
-		*ch = wait_here();
-		if (*ch == 's') {
-			/* Skip is converted to next */
-			*ch = 'n';
-			return TRUE;
-		}
-		if (*ch == 'q') {
-			/* Quit is converted to help */
-			*ch = '?';
-			return TRUE;
-		}
-		if (*ch == '\r' || *ch == '\n' || *ch == 'n' || *ch == 'r') {
-			/* this is the only response that allows the test to run */
-			*ch = 0;
-		}
-		if (subtest_menu(pad_test_list, state, ch)) {
-			continue;
-		}
-		return (*ch != 0);
-	}
-}
-
-/*
-**	pad_done_message(test_list)
-**
-**	Print the Done message and request input.
-*/
-void
-pad_done_message(
-	struct test_list *test,
-	int *state,
-	int *ch)
-{
-	int default_action = 0;
-	char done_message[128];
-	char rep_text[16];
-
-	while (1) {
-		if ((test->flags & MENU_LC_MASK)) {
-			sprintf(rep_text, "*%d", augment);
-		} else {
-			rep_text[0] = '\0';
-		}
-		if (test->caps_done) {
-			sprintf(done_message, "(%s)%s Done ", test->caps_done,
-			rep_text);
-			ptext(done_message);
-		} else {
-			if (rep_text[0]) {
-				ptext(rep_text);
-				ptext(" ");
-			}
-			ptext("Done ");
-		}
-		if (debug_level & 2) {
-			dump_test_stats(test, state, ch);
-		} else {
-			*ch = wait_here();
-		}
-		if (*ch == '\r' || *ch == '\n') {
-			*ch = default_action;
-			return;
-		}
-		if (*ch == 's' || *ch == 'n') {
-			*ch = 0;
-			return;
-		}
-		if (strchr(pad_repeat_test, *ch)) {
-			/* default action is now repeat */
-			default_action = 'r';
-		}
-		if (subtest_menu(pad_test_list, state, ch)) {
-			continue;
-		}
-		return;
-	}
-}
-
-/*
-**	sliding_scale(dividend, factor, divisor)
-**
-**	Return (dividend * factor) / divisor
-*/
-int
-sliding_scale(
-	int dividend,
-	int factor,
-	unsigned long divisor)
-{
-	double d = dividend;
-
-	if (divisor) {
-		d = (d * (double) factor) / (double) divisor;
-		return (int) (d + 0.5);
-	}
-	return 0;
-}
-
-/*
-**	pad_test_startup()
-**
-**	Do the stuff needed to begin a test.
-*/
-void
-pad_test_startup(
-	int do_clear)
-{
-	if (do_clear) {
-		put_clear();
-	}
-	repeats = augment;
-	raw_characters_sent = 0;
-	test_complete = ttp = char_count = tt_delay_used = 0;
-	letter = letters[letter_number = 0];
-	if (pad_test_duration <= 0) {
-		pad_test_duration = 1;
-	}
-	tt_delay_max = pad_test_duration * 1000;
-	set_alarm_clock(pad_test_duration);
-	event_start(TIME_TEST);
-}
-
-/*
-**	still_testing()
-**
-**	This function is called to see if the test loop should be terminated.
-*/
-int
-still_testing(void)
-{
-	fflush(stdout);
-	test_complete++;
-	return EXIT_CONDITION;
-}
-
-/*
-**	pad_test_shutdown()
-**
-**	Do the stuff needed to end a test.
-*/
-void
-pad_test_shutdown(
-	struct test_list *t,
-	int crlf)
-{
-	int i;
-	int counts;			/* total counts */
-	int ss;				/* Save string index */
-	int cpo;			/* characters per operation */
-	int delta;			/* difference in characters */
-	int bogus;			/* Time is inaccurate */
-	struct test_results *r;		/* Results of current test */
-	int ss_index[TT_MAX];		/* String index */
-
-	alloc_arrays();
-	if (tty_can_sync == SYNC_TESTED) {
-		bogus = tty_sync_error();
-	} else {
-		bogus = 1;
-	}
-	usec_run_time = event_time(TIME_TEST);
-	tx_source = t;
-	tx_characters = raw_characters_sent;
-	tx_cps = sliding_scale(tx_characters, 1000000, usec_run_time);
-
-	/* save the data base */
-	for (txp = ss = counts = 0; txp < ttp; txp++) {
-		tx_cap[txp]   = tt_cap[txp];
-		tx_count[txp] = tt_count[txp];
-		tx_delay[txp] = tt_delay[txp];
-		tx_affected[txp] = tt_affected[txp];
-		tx_index[txp] = get_string_cap_byvalue(tt_cap[txp]);
-		if (tx_index[txp] >= 0) {
-			if (cap_match(t->caps_done, strnames[tx_index[txp]])) {
-				ss_index[ss++] = txp;
-				counts += tx_count[txp];
-			}
-		}
-	}
-
-	if (crlf) {
-		put_crlf();
-	}
-	if (counts == 0 || tty_cps == 0 || bogus) {
-		/* nothing to do */
-		return;
-	}
-	/* calculate the suggested pad times */
-	delta = usec_run_time - sliding_scale(tx_characters, 1000000, tty_cps);
-	if (delta < 0) {
-		/* probably should bump tx_characters */
-		delta = 0;
-	}
-	cpo = delta / counts;
-	for (i = 0; i < ss; i++) {
-		if (!(r = get_next_block())) {
-			return;
-		}
-		r->next = pads[tx_index[ss_index[i]]];
-		pads[tx_index[ss_index[i]]] = r;
-		r->test = t;
-		r->reps = tx_affected[ss_index[i]];
-		r->delay = cpo;
-	}
-}
-
-/*
-**	show_cap_results(index)
-**
-**	Display the previous results
-*/
-static void
-show_cap_results(
-	int x)
-{
-	struct test_results *r;		/* a result */
-	int delay;
-
-	alloc_arrays();
-	if ((r = pads[x])) {
-		sprintf(temp, "(%s)", strnames[x]);
-		ptext(temp);
-		while (r) {
-			sprintf(temp, "$<%d>", r->delay / 1000);
-			put_columns(temp, (int) strlen(temp), 10);
-			r = r->next;
-		}
-		r = pads[x];
-		while (r) {
-			if (r->reps > 1) {
-				delay = r->delay / (r->reps * 100);
-				sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
-				put_columns(temp, (int) strlen(temp), 10);
-			}
-			r = r->next;
-		}
-		put_crlf();
-	}
-}
-
-/*
-**	dump_test_stats(test_list, status, ch)
-**
-**	Dump the statistics about the last test
-*/
-void
-dump_test_stats(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-	char tbuf[32];
-	int x[32];
-
-	put_crlf();
-	if (tx_source && tx_source->caps_done) {
-		cap_index(tx_source->caps_done, x);
-		if (x[0] >= 0) {
-			sprintf(temp, "Caps summary for (%s)",
-				tx_source->caps_done);
-			ptextln(temp);
-			for (i = 0; x[i] >= 0; i++) {
-				show_cap_results(x[i]);
-			}
-			put_crlf();
-		}
-	}
-	sprintf(tbuf, "%011lu", usec_run_time);
-	sprintf(temp, "Test time: %lu.%s, characters per second %lu, characters %d",
-		usec_run_time / 1000000UL, &tbuf[5], tx_cps, tx_characters);
-	ptextln(temp);
-	for (i = 0; i < txp; i++) {
-		if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {
-			sprintf(tbuf, "(%s)", strnames[j]);
-		} else {
-			strcpy(tbuf, "(?)");
-		}
-		sprintf(temp, "%8d  %3d  $<%3d>  %8s %s",
-			tx_count[i], tx_affected[i], tx_delay[i],
-			tbuf, expand(tx_cap[i]));
-		putln(temp);
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	longer_test_time(test_list, status, ch)
-**
-**	Extend the number of seconds for each test.
-*/
-void
-longer_test_time(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	pad_test_duration += 1;
-	sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
-		pad_test_duration + 1);
-	sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
-		pad_test_duration - 1);
-	sprintf(temp, "Tests will run for %d seconds", pad_test_duration);
-	ptext(temp);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	shorter_test_time(test_list, status, ch)
-**
-**	Shorten the number of seconds for each test.
-*/
-void
-shorter_test_time(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	if (pad_test_duration > 1) {
-		pad_test_duration -= 1;
-		sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
-			pad_test_duration + 1);
-		sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
-			pad_test_duration - 1);
-	}
-	sprintf(temp, "Tests will run for %d second%s", pad_test_duration,
-		pad_test_duration > 1 ? "s" : "");
-	ptext(temp);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	longer_augment(test_list, status, ch)
-**
-**	Lengthen the number of lines/characters effected
-*/
-void
-longer_augment(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	augment <<= 1;
-	set_augment_txt();
-	if (augment_test) {
-		t = augment_test;
-	}
-	sprintf(temp, "The pad tests will effect %d %s.", augment,
-		((t->flags & MENU_LC_MASK) == MENU_lines) ?
-		"lines" : "characters");
-	ptextln(temp);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	shorter_augment(test_list, status, ch)
-**
-**	Shorten the number of lines/characters effected
-*/
-void
-shorter_augment(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	if (augment > 1) {
-		/* don't let the augment go to zero */
-		augment >>= 1;
-	}
-	set_augment_txt();
-	if (augment_test) {
-		t = augment_test;
-	}
-	sprintf(temp, "The pad tests will effect %d %s.", augment,
-		((t->flags & MENU_LC_MASK) == MENU_lines) ?
-		"lines" : "characters");
-	ptextln(temp);
-	*ch = REQUEST_PROMPT;
-}
diff -Naur ncurses-5.6.orig/tack/crum.c ncurses-5.6/tack/crum.c
--- ncurses-5.6.orig/tack/crum.c	2006-11-25 19:15:02.000000000 -0500
+++ ncurses-5.6/tack/crum.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,426 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: crum.c,v 1.5 2006/11/26 00:15:02 tom Exp $")
-
-/*
- * Test cursor movement.
- */
-
-static void crum_clear(struct test_list *t, int *state, int *ch);
-static void crum_home(struct test_list *t, int *state, int *ch);
-static void crum_ll(struct test_list *t, int *state, int *ch);
-static void crum_move(struct test_list *t, int *state, int *ch);
-static void crum_os(struct test_list *t, int *state, int *ch);
-
-static char crum_text[5][80];
-
-struct test_list crum_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_NEXT, 0, "clear", 0, 0, crum_clear, 0},
-	{MENU_NEXT, 0, "home", 0, 0, crum_home, 0},
-	{MENU_NEXT, 0, "ll", 0, 0, crum_ll, 0},
-	{MENU_NEXT, 0, crum_text[0], "home cuu1", 0, crum_move, 0},
-	{MENU_NEXT + 1, 0, crum_text[1], "cub1 cud1 cuf1 cuu1", 0, crum_move, 0},
-	{MENU_NEXT + 2, 0, crum_text[2], "cub cud cuf cuu", 0, crum_move, 0},
-	{MENU_NEXT + 3, 0, crum_text[3], "vpa hpa", 0, crum_move, 0},
-	{MENU_NEXT + 4, 0, crum_text[4], "cup", 0, crum_move, 0},
-	{MENU_NEXT, 0, "cup", "os", 0, crum_os, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-**	move_to(from-row, from-column, to-row, to-column, selection)
-**
-**	move the cursor from (rf, cf) to (rt, ct) using sel
-*/
-static void
-move_to(
-	int rf,
-	int cf,
-	int rt,
-	int ct,
-	int sel)
-{
-	char *s;
-
-	if (sel & 16) {	/* use (cup) */
-		s = TPARM_2(cursor_address, rt, ct);
-		tputs(s, lines, tc_putch);
-		return;
-	}
-	if (sel & 8) {	/* use (hpa) (vpa) */
-		if (column_address) {
-			s = TPARM_1(column_address, ct);
-			tputs(s, 1, tc_putch);
-			cf = ct;
-		}
-		if (row_address) {
-			s = TPARM_1(row_address, rt);
-			tputs(s, 1, tc_putch);
-			rf = rt;
-		}
-	}
-	if (sel & 4) {	/* parameterized relative cursor movement */
-		if (parm_right_cursor)
-			if (cf < ct) {
-				s = TPARM_1(parm_right_cursor, ct - cf);
-				tputs(s, ct - cf, tc_putch);
-				cf = ct;
-			}
-		if (parm_left_cursor)
-			if (cf > ct) {
-				s = TPARM_1(parm_left_cursor, cf - ct);
-				tputs(s, cf - ct, tc_putch);
-				cf = ct;
-			}
-		if (parm_down_cursor)
-			if (rf < rt) {
-				s = TPARM_1(parm_down_cursor, rt - rf);
-				tputs(s, rt - rf, tc_putch);
-				rf = rt;
-			}
-		if (parm_up_cursor)
-			if (rf > rt) {
-				s = TPARM_1(parm_up_cursor, rf - rt);
-				tputs(s, rf - rt, tc_putch);
-				rf = rt;
-			}
-	}
-	if (sel & 2) {
-		if (cursor_left)
-			while (cf > ct) {
-				tc_putp(cursor_left);
-				cf--;
-			}
-		/*
-		   do vertical motion next.  Just in case cursor_down has a
-		   side effect of changing the column.  This could happen if
-		   the tty handler translates NL to CRNL.
-		*/
-		if (cursor_down)
-			while (rf < rt) {
-				tc_putp(cursor_down);
-				rf++;
-			}
-		if (cursor_up)
-			while (rf > rt) {
-				tc_putp(cursor_up);
-				rf--;
-			}
-		if (cursor_right)
-			while (cf < ct) {
-				tc_putp(cursor_right);
-				cf++;
-			}
-	}
-	/* last chance */
-	if (rf > rt) {
-		if (can_go_home) {	/* a bit drastic but ... */
-			go_home();
-			cf = 0;
-			rf = 0;
-		} else if (cursor_up) {
-			while (rf > rt) {
-				tc_putp(cursor_up);
-				rf--;
-			}
-		}
-	}
-	if (ct == 0 && rt > rf) {
-		put_crlf();
-		cf = 0;
-		rf++;
-	}
-	if (ct == 0 && cf != 0) {
-		put_cr();
-		cf = 0;
-	}
-	while (rf < rt) {
-		put_lf();
-		rf++;
-	}
-	while (cf > ct) {
-		put_str("\b");
-		cf--;
-	}
-	if (cursor_right) {
-		while (cf < ct) {
-			tc_putp(cursor_right);
-			cf++;
-		}
-	} else {
-		/* go ahead and trash my display */
-		while (cf < ct) {
-			putchp(' ');
-			cf++;
-		}
-	}
-}
-
-/*
-**	display_it(selection, text)
-**
-**	print the display using sel
-*/
-static void
-display_it(
-	int sel,
-	char *txt)
-{
-	int i, done_line;
-
-	put_clear();
-	go_home();
-	put_newlines(2);
-	ptextln("    The top line should be alternating <'s and >'s");
-	ptextln("    The left side should be alternating A's and V's");
-	ptext("    Testing ");
-	ptext(txt);
-	put_cr();
-
-	/* horizontal */
-	move_to(done_line = line_count, 0, 0, 2, sel);
-	for (i = 4; i < columns - 2; i += 2) {
-		putchp('>');
-		move_to(0, i - 1, 0, i, sel);
-	}
-	putchp('>');
-	i -= 2;
-	move_to(0, i + 1, 0, i - 1, sel);
-	for (; i > 2; i -= 2) {
-		putchp('<');
-		move_to(0, i, 0, i - 3, sel);
-	}
-	putchp('<');
-
-	/* vertical */
-	move_to(0, 2, 0, 0, sel);
-	for (i = 2; i < lines - 1; i += 2) {
-		putchp('V');
-		move_to(i - 2, 1, i, 0, sel);
-	}
-	putchp('V');
-	i -= 2;
-	move_to(i, 1, i + 1, 0, sel);
-	for (; i > 0; i -= 2) {
-		putchp('A');
-		move_to(i + 1, 1, i - 1, 0, sel);
-	}
-	putchp('A');
-	move_to(i + 1, 1, 0, 0, sel);	/* go home first */
-	move_to(0, 0, done_line + 1, 3, sel);
-	put_str(txt);
-	put_str(" Done. ");
-}
-
-/*
-**	crum_clear(test_list, status, ch)
-**
-**	(clear) test Clear screen
-*/
-static void
-crum_clear(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (clear_screen) {
-		for (i = lines; i > 1; i--) {
-			putln("garbage");
-		}
-		put_clear();
-		ptextln("This line should start in the home position.");
-		ptext("The rest of the screen should be clear.  ");
-	} else {
-		ptextln("(clear) Clear screen is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	crum_home(test_list, status, ch)
-**
-**	(home) test Home cursor
-*/
-static void
-crum_home(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (cursor_home) {
-		put_clear();
-		put_newlines(lines / 2);
-		go_home();
-		put_crlf();
-		ptext("The bottom line should have text.");
-		go_home();
-		put_newlines(lines - 1);
-		ptext("This line is on the bottom.");
-		go_home();
-		ptextln("This line starts in the home position.");
-		put_crlf();
-	} else {
-		ptextln("(home) Home cursor is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	crum_ll(test_list, status, ch)
-**
-**	(ll) test Last line
-*/
-static void
-crum_ll(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	/*
-	   (ll) may be simulated with (cup).  Don't complain if (cup) is present.
-	*/
-	if (cursor_to_ll) {
-		put_clear();
-		put_str("This line could be anywhere.");
-		tc_putp(cursor_to_ll);
-		ptext("This line should be on the bottom");
-		go_home();
-		put_crlf();
-	} else
-	if (cursor_address) {
-		return;
-	} else {
-		ptextln("(ll) Move to last line is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	crum_move(test_list, status, ch)
-**
-**	(*) test all cursor move commands
-*/
-static void
-crum_move(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	char buf[80];
-	int n;
-
-	switch (n = (t->flags & 15)) {
-	case 0:
-		sprintf(buf, " (cr) (nel) (cub1)%s",
-			cursor_home ? " (home)" : (cursor_up ? " (cuu1)" : ""));
-		break;
-	case 1:
-		sprintf(buf, "%s%s%s%s", cursor_left ? " (cub1)" : "",
-			cursor_down ? " (cud1)" : "", cursor_right ? " (cuf1)" : "",
-			cursor_up ? " (cuu1)" : "");
-		if (buf[0] == '\0') {
-			ptext("    (cub1) (cud1) (cuf1) (cuu1) not defined.");
-		}
-		break;
-	case 2:
-		sprintf(buf, "%s%s%s%s", parm_left_cursor ? " (cub)" : "",
-			parm_down_cursor ? " (cud)" : "",
-			parm_right_cursor ? " (cuf)" : "",
-			parm_up_cursor ? " (cuu)" : "");
-		if (buf[0] == '\0') {
-			ptext("    (cub) (cud) (cuf) (cuu) not defined.");
-		}
-		break;
-	case 3:
-		sprintf(buf, "%s%s", row_address ? " (vpa)" : "",
-			column_address ? " (hpa)" : "");
-		if (buf[0] == '\0') {
-			ptext("    (vpa) (hpa) not defined.");
-		}
-		break;
-	case 4:
-		if (!cursor_address) {
-			ptext("    (cup) not defined.  ");
-			generic_done_message(t, state, ch);
-			return;
-		}
-		strcpy(buf, " (cup)");
-		break;
-	}
-	if (buf[0] == '\0') {
-		put_str("  Done. ");
-	} else {
-		can_test(buf, FLAG_TESTED);
-		strcpy(crum_text[n], &buf[2]);
-		crum_text[n][strlen(buf) - 3] = '\0';
-
-		display_it(1 << n, buf);
-	}
-	*ch = wait_here();
-	if (*ch != 'r') {
-		put_clear();
-	}
-}
-
-/*
-**	crum_os(test_list, status, ch)
-**
-**	(cup) test Cursor position on overstrike terminals
-*/
-static void
-crum_os(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (cursor_address && over_strike) {
-		put_clear();
-		for (i = 0; i < columns - 2; i++) {
-			tc_putch('|');
-		}
-		for (i = 1; i < lines - 2; i++) {
-			put_crlf();
-			tc_putch('_');
-		}
-		for (i = 0; i < columns - 2; i++) {
-			tputs(TPARM_2(cursor_address, 0, i), lines, tc_putch);
-			tc_putch('+');
-		}
-		for (i = 0; i < lines - 2; i++) {
-			tputs(TPARM_2(cursor_address, i, 0), lines, tc_putch);
-			tc_putch(']');
-			tc_putch('_');
-		}
-		go_home();
-		put_newlines(3);
-		ptext("    All the characters should look the same.  ");
-		generic_done_message(t, state, ch);
-		put_clear();
-	}
-}
diff -Naur ncurses-5.6.orig/tack/edit.c ncurses-5.6/tack/edit.c
--- ncurses-5.6.orig/tack/edit.c	2006-06-24 17:22:42.000000000 -0400
+++ ncurses-5.6/tack/edit.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,992 +0,0 @@
-/*
-** Copyright (C) 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-#include <time.h>
-#include <tic.h>
-
-MODULE_ID("$Id: edit.c,v 1.11 2006/06/24 21:22:42 tom Exp $")
-
-/*
- * Terminfo edit features
- */
-static void show_info(struct test_list *, int *, int *);
-static void show_value(struct test_list *, int *, int *);
-static void show_untested(struct test_list *, int *, int *);
-static void show_changed(struct test_list *, int *, int *);
-
-#define SHOW_VALUE	1
-#define SHOW_EDIT	2
-#define SHOW_DELETE	3
-
-struct test_list edit_test_list[] = {
-	{MENU_CLEAR, 0, 0, 0, "i) display current terminfo", show_info, 0},
-	{0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
-	{SHOW_VALUE, 3, 0, 0, "v) show value of a selected cap", show_value, 0},
-	{SHOW_EDIT, 4, 0, 0, "e) edit value of a selected cap", show_value, 0},
-	{SHOW_DELETE, 3, 0, 0, "d) delete string", show_value, 0},
-	{0, 3, 0, 0, "m) show caps that have been modified", show_changed, 0},
-	{MENU_CLEAR + FLAG_CAN_TEST, 0, 0, 0, "c) show caps that can be tested", show_report, 0},
-	{MENU_CLEAR + FLAG_TESTED, 0, 0, 0, "t) show caps that have been tested", show_report, 0},
-	{MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
-	{MENU_CLEAR, 0, 0, 0, "u) show caps defined that can not be tested", show_untested, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static char change_pad_text[MAX_CHANGES][80];
-static struct test_list change_pad_list[MAX_CHANGES] = {
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void build_change_menu(struct test_menu *);
-static void change_one_entry(struct test_list *, int *, int *);
-
-struct test_menu change_pad_menu = {
-	0, 'q', 0,
-	"Select cap name", "change", 0,
-	build_change_menu, change_pad_list, 0, 0, 0
-};
-
-static TERMTYPE	original_term;		/* terminal type description */
-
-static char flag_boolean[BOOLCOUNT];	/* flags for booleans */
-static char flag_numerics[NUMCOUNT];	/* flags for numerics */
-static char *flag_strings;		/* flags for strings */
-static int *label_strings;
-static int xon_index;			/* Subscript for (xon) */
-static int xon_shadow;
-
-static int start_display;		/* the display has just started */
-static int display_lines;		/* number of lines displayed */
-
-static void
-alloc_arrays(void)
-{
-	if (flag_strings == 0) {
-		label_strings = (int *)calloc(MAX_STRINGS, sizeof(int));
-		flag_strings = (char *)calloc(MAX_STRINGS, sizeof(char));
-	}
-}
-
-/*
-**	send_info_string(str)
-**
-**	Return the terminfo string prefixed by the correct separator
-*/
-static void
-send_info_string(
-	const char *str,
-	int *ch)
-{
-	int len;
-
-	if (display_lines == -1) {
-		return;
-	}
-	len = strlen(str);
-	if (len + char_count + 3 >= columns) {
-		if (start_display == 0) {
-			put_str(",");
-		}
-		put_crlf();
-		if (++display_lines > lines) {
-			ptext("-- more -- ");
-			*ch = wait_here();
-			if (*ch == 'q') {
-				display_lines = -1;
-				return;
-			}
-			display_lines = 0;
-		}
-		if (len >= columns) {
-			/* if the terminal does not (am) then this loses */
-			if (columns) {
-				display_lines += ((strlen(str) + 3) / columns) + 1;
-			}
-			put_str("   ");
-			put_str(str);
-			start_display = 0;
-			return;
-		}
-		ptext("   ");
-	} else
-	if (start_display == 0) {
-		ptext(", ");
-	} else {
-		ptext("   ");
-	}
-	ptext(str);
-	start_display = 0;
-}
-
-/*
-**	show_info(test_list, status, ch)
-**
-**	Display the current terminfo
-*/
-static void
-show_info(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int i;
-	char buf[1024];
-
-	display_lines = 1;
-	start_display = 1;
-	for (i = 0; i < BOOLCOUNT; i++) {
-		if ((i == xon_index) ? xon_shadow : CUR Booleans[i]) {
-			send_info_string(boolnames[i], ch);
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (CUR Numbers[i] >= 0) {
-			sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
-			send_info_string(buf, ch);
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		if (CUR Strings[i]) {
-			sprintf(buf, "%s=%s", STR_NAME(i),
-				print_expand(CUR Strings[i]));
-			send_info_string(buf, ch);
-		}
-	}
-	put_newlines(2);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	save_info_string(str, fp)
-**
-**	Write the terminfo string prefixed by the correct separator
-*/
-static void
-save_info_string(
-	const char *str,
-	FILE *fp)
-{
-	int len;
-
-	len = strlen(str);
-	if (len + display_lines >= 77) {
-		if (display_lines > 0) {
-			(void) fprintf(fp, "\n\t");
-		}
-		display_lines = 8;
-	} else
-	if (display_lines > 0) {
-		(void) fprintf(fp, " ");
-		display_lines++;
-	} else {
-		(void) fprintf(fp, "\t");
-		display_lines = 8;
-	}
-	(void) fprintf(fp, "%s,", str);
-	display_lines += len + 1;
-}
-
-/*
-**	save_info(test_list, status, ch)
-**
-**	Write the current terminfo to a file
-*/
-void
-save_info(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	FILE *fp;
-	time_t now;
-	char buf[1024];
-
-	if ((fp = fopen(tty_basename, "w")) == (FILE *) NULL) {
-		(void) sprintf(temp, "can't open: %s", tty_basename);
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-		return;
-	}
-	time(&now);
-	/* Note: ctime() returns a newline at the end of the string */
-	(void) fprintf(fp, "# Terminfo created by TACK for TERM=%s on %s",
-		tty_basename, ctime(&now));
-	(void) fprintf(fp, "%s|%s,\n", tty_basename, longname());
-
-	display_lines = 0;
-	for (i = 0; i < BOOLCOUNT; i++) {
-		if (i == xon_index ? xon_shadow : CUR Booleans[i]) {
-			save_info_string(boolnames[i], fp);
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (CUR Numbers[i] >= 0) {
-			sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
-			save_info_string(buf, fp);
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		if (CUR Strings[i]) {
-			sprintf(buf, "%s=%s", STR_NAME(i),
-				_nc_tic_expand(CUR Strings[i], TRUE, TRUE));
-			save_info_string(buf, fp);
-		}
-	}
-	(void) fprintf(fp, "\n");
-	(void) fclose(fp);
-	sprintf(temp, "Terminfo saved as file: %s", tty_basename);
-	ptextln(temp);
-}
-
-/*
-**	show_value(test_list, status, ch)
-**
-**	Display the value of a selected cap
-*/
-static void
-show_value(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	struct name_table_entry const *nt;
-	char *s;
-	int n, op, b;
-	char buf[1024];
-	char tmp[1024];
-
-	ptext("enter name: ");
-	read_string(buf, 80);
-	if (buf[0] == '\0' || buf[1] == '\0') {
-		*ch = buf[0];
-		return;
-	}
-	if (line_count + 2 >= lines) {
-		put_clear();
-	}
-	op = t->flags & 255;
-	if ((nt = _nc_find_entry(buf, _nc_info_hash_table))) {
-		switch (nt->nte_type) {
-		case BOOLEAN:
-			if (op == SHOW_DELETE) {
-				if (nt->nte_index == xon_index) {
-					xon_shadow = 0;
-				} else {
-					CUR Booleans[nt->nte_index] = 0;
-				}
-				return;
-			}
-			b = nt->nte_index == xon_index ? xon_shadow :
-				CUR Booleans[nt->nte_index];
-			sprintf(temp, "boolean  %s %s", buf,
-				b ? "True" : "False");
-			break;
-		case STRING:
-			if (op == SHOW_DELETE) {
-				CUR Strings[nt->nte_index] = (char *) 0;
-				return;
-			}
-			if (CUR Strings[nt->nte_index]) {
-				sprintf(temp, "string  %s %s", buf,
-					expand(CUR Strings[nt->nte_index]));
-			} else {
-				sprintf(temp, "undefined string %s", buf);
-			}
-			break;
-		case NUMBER:
-			if (op == SHOW_DELETE) {
-				CUR Numbers[nt->nte_index] = -1;
-				return;
-			}
-			sprintf(temp, "numeric  %s %d", buf,
-				CUR Numbers[nt->nte_index]);
-			break;
-		default:
-			sprintf(temp, "unknown");
-			break;
-		}
-		ptextln(temp);
-	} else {
-		sprintf(temp, "Cap not found: %s", buf);
-		ptextln(temp);
-		return;
-	}
-	if (op != SHOW_EDIT) {
-		return;
-	}
-	if (nt->nte_type == BOOLEAN) {
-		ptextln("Value flipped");
-		if (nt->nte_index == xon_index) {
-			xon_shadow = !xon_shadow;
-		} else {
-			CUR Booleans[nt->nte_index] = !CUR Booleans[nt->nte_index];
-		}
-		return;
-	}
-	ptextln("Enter new value");
-	read_string(buf, sizeof(buf));
-
-	switch (nt->nte_type) {
-	case STRING:
-		_nc_reset_input((FILE *) 0, buf);
-		_nc_trans_string(tmp, tmp + sizeof(tmp));
-		s = (char *)malloc(strlen(tmp) + 1);
-		strcpy(s, tmp);
-		CUR Strings[nt->nte_index] = s;
-		sprintf(temp, "new string value  %s", nt->nte_name);
-		ptextln(temp);
-		ptextln(expand(CUR Strings[nt->nte_index]));
-		break;
-	case NUMBER:
-		if (sscanf(buf, "%d", &n) == 1) {
-			CUR Numbers[nt->nte_index] = n;
-			sprintf(temp, "new numeric value  %s %d",
-				nt->nte_name, n);
-			ptextln(temp);
-		} else {
-			sprintf(temp, "Illegal number: %s", buf);
-			ptextln(temp);
-		}
-		break;
-	default:
-		break;
-	}
-}
-
-/*
-**	get_string_cap_byname(name, long_name)
-**
-**	Given a cap name, find the value
-**	Errors are quietly ignored.
-*/
-char *
-get_string_cap_byname(
-	const char *name,
-	const char **long_name)
-{
-	struct name_table_entry const *nt;
-
-	if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
-		if (nt->nte_type == STRING) {
-			*long_name = strfnames[nt->nte_index];
-			return (CUR Strings[nt->nte_index]);
-		}
-	}
-	*long_name = "??";
-	return (char *) 0;
-}
-
-/*
-**	get_string_cap_byvalue(value)
-**
-**	Given a capability string, find its position in the data base.
-**	Return the index or -1 if not found.
-*/
-int
-get_string_cap_byvalue(
-	const char *value)
-{
-	int i;
-
-	if (value) {
-		for (i = 0; i < MAX_STRINGS; i++) {
-			if (CUR Strings[i] == value) {
-				return i;
-			}
-		}
-		/* search for translated strings */
-		for (i = 0; i < TM_last; i++) {
-			if (TM_string[i].value == value) {
-				return TM_string[i].index;
-			}
-		}
-	}
-	return -1;
-}
-
-/*
-**	show_changed(test_list, status, ch)
-**
-**	Display a list of caps that have been changed.
-*/
-static void
-show_changed(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int i, header = 1, v;
-	const char *a;
-	const char *b;
-	static char title[] = "                     old value   cap  new value";
-	char abuf[1024];
-
-	for (i = 0; i < BOOLCOUNT; i++) {
-		v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
-		if (original_term.Booleans[i] != v) {
-			if (header) {
-				ptextln(title);
-				header = 0;
-			}
-			sprintf(temp, "%30d %6s %d",
-				original_term.Booleans[i], boolnames[i], v);
-			ptextln(temp);
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (original_term.Numbers[i] != CUR Numbers[i]) {
-			if (header) {
-				ptextln(title);
-				header = 0;
-			}
-			sprintf(temp, "%30d %6s %d",
-				original_term.Numbers[i], numnames[i],
-				CUR Numbers[i]);
-			ptextln(temp);
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		a = original_term.Strings[i] ? original_term.Strings[i] : "";
-		b = CUR Strings[i] ?  CUR Strings[i] : "";
-		if (strcmp(a, b)) {
-			if (header) {
-				ptextln(title);
-				header = 0;
-			}
-			strcpy(abuf, _nc_tic_expand(a, TRUE, TRUE));
-			sprintf(temp, "%30s %6s %s", abuf, STR_NAME(i),
-				_nc_tic_expand(b, TRUE, TRUE));
-			putln(temp);
-		}
-	}
-	if (header) {
-		ptextln("No changes");
-	}
-	put_crlf();
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	user_modified()
-**
-**	Return TRUE if the user has modified the terminfo
-*/
-int
-user_modified(void)
-{
-	const char *a, *b;
-	int i, v;
-
-	for (i = 0; i < BOOLCOUNT; i++) {
-		v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
-		if (original_term.Booleans[i] != v) {
-			return TRUE;
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (original_term.Numbers[i] != CUR Numbers[i]) {
-			return TRUE;
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		a = original_term.Strings[i] ? original_term.Strings[i] : "";
-		b = CUR Strings[i] ?  CUR Strings[i] : "";
-		if (strcmp(a, b)) {
-			return TRUE;
-		}
-	}
-	return FALSE;
-}
-
-/*****************************************************************************
- *
- * Maintain the list of capabilities that can be tested
- *
- *****************************************************************************/
-
-/*
-**	mark_cap(name, flag)
-**
-**	Mark the cap data base with the flag provided.
-*/
-static void
-mark_cap(
-	char *name,
-	int flag)
-{
-	struct name_table_entry const *nt;
-
-	alloc_arrays();
-	if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
-		switch (nt->nte_type) {
-		case BOOLEAN:
-			flag_boolean[nt->nte_index] |= flag;
-			break;
-		case STRING:
-			flag_strings[nt->nte_index] |= flag;
-			break;
-		case NUMBER:
-			flag_numerics[nt->nte_index] |= flag;
-			break;
-		default:
-			sprintf(temp, "unknown cap type (%s)", name);
-			ptextln(temp);
-			break;
-		}
-	} else {
-		sprintf(temp, "Cap not found: %s", name);
-		ptextln(temp);
-		(void) wait_here();
-	}
-}
-
-/*
-**	can_test(name-list, flags)
-**
-**	Scan the name list and get the names.
-**	Enter each name into the can-test data base.
-**	<space> ( and ) may be used as separators.
-*/
-void
-can_test(
-	const char *s,
-	int flags)
-{
-	int ch, j;
-	char name[32];
-
-	if (s) {
-		for (j = 0; (name[j] = ch = *s); s++) {
-			if (ch == ' ' || ch == ')' || ch == '(') {
-				if (j) {
-					name[j] = '\0';
-					mark_cap(name, flags);
-				}
-				j = 0;
-			} else {
-				j++;
-			}
-		}
-		if (j) {
-			mark_cap(name, flags);
-		}
-	}
-}
-
-/*
-**	cap_index(name-list, index-list)
-**
-**	Scan the name list and return a list of indexes.
-**	<space> ( and ) may be used as separators.
-**	This list is terminated with -1.
-*/
-void
-cap_index(
-	const char *s,
-	int *inx)
-{
-	struct name_table_entry const *nt;
-	int ch, j;
-	char name[32];
-
-	if (s) {
-		for (j = 0; ; s++) {
-			name[j] = ch = *s;
-			if (ch == ' ' || ch == ')' || ch == '(' || ch == 0) {
-				if (j) {
-					name[j] = '\0';
-					if ((nt = _nc_find_entry(name,
-						_nc_info_hash_table)) &&
-						(nt->nte_type == STRING)) {
-						*inx++ = nt->nte_index;
-					}
-				}
-				if (ch == 0) {
-					break;
-				}
-				j = 0;
-			} else {
-				j++;
-			}
-		}
-	}
-	*inx = -1;
-}
-
-/*
-**	cap_match(name-list, cap)
-**
-**	Scan the name list and see if the cap is in the list.
-**	Return TRUE if we find an exact match.
-**	<space> ( and ) may be used as separators.
-*/
-int
-cap_match(
-	const char *names,
-	const char *cap)
-{
-	char *s;
-	int c, l, t;
-
-	if (names) {
-		l = strlen(cap);
-		while ((s = strstr(names, cap))) {
-			c = (names == s) ? 0 : *(s - 1);
-			t = s[l];
-			if ((c == 0 || c == ' ' || c == '(') &&
-				(t == 0 || t == ' ' || t == ')')) {
-				return TRUE;
-			}
-			if (t == 0) {
-				break;
-			}
-			names = s + l;
-		}
-	}
-	return FALSE;
-}
-
-/*
-**	show_report(test_list, status, ch)
-**
-**	Display a list of caps that can be tested
-*/
-void
-show_report(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int i, j, nc, flag;
-	const char *s;
-	const char **nx = malloc(BOOLCOUNT + NUMCOUNT + MAX_STRINGS);
-
-	alloc_arrays();
-	flag = t->flags & 255;
-	nc = 0;
-	for (i = 0; i < BOOLCOUNT; i++) {
-		if (flag_boolean[i] & flag) {
-			nx[nc++] = boolnames[i];
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (flag_numerics[i] & flag) {
-			nx[nc++] = numnames[i];
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		if (flag_strings[i] & flag) {
-			nx[nc++] = STR_NAME(i);
-		}
-	}
-	/* sort */
-	for (i = 0; i < nc - 1; i++) {
-		for (j = i + 1; j < nc; j++) {
-			if (strcmp(nx[i], nx[j]) > 0) {
-				s = nx[i];
-				nx[i] = nx[j];
-				nx[j] = s;
-			}
-		}
-	}
-	if (flag & FLAG_FUNCTION_KEY) {
-		ptextln("The following function keys can be tested:");
-	} else
-	if (flag & FLAG_CAN_TEST) {
-		ptextln("The following capabilities can be tested:");
-	} else
-	if (flag & FLAG_TESTED) {
-		ptextln("The following capabilities have been tested:");
-	}
-	put_crlf();
-	for (i = 0; i < nc; i++) {
-		sprintf(temp, "%s ", nx[i]);
-		ptext(temp);
-	}
-	put_newlines(1);
-	*ch = REQUEST_PROMPT;
-	free (nx);
-}
-
-/*
-**	show_untested(test_list, status, ch)
-**
-**	Display a list of caps that are defined but cannot be tested.
-**	Don't bother to sort this list.
-*/
-static void
-show_untested(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int i;
-
-	alloc_arrays();
-	ptextln("Caps that are defined but cannot be tested:");
-	for (i = 0; i < BOOLCOUNT; i++) {
-		if (flag_boolean[i] == 0 && CUR Booleans[i]) {
-			sprintf(temp, "%s ", boolnames[i]);
-			ptext(temp);
-		}
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		if (flag_numerics[i] == 0 && CUR Numbers[i] >= 0) {
-			sprintf(temp, "%s ", numnames[i]);
-			ptext(temp);
-		}
-	}
-	for (i = 0; i < MAX_STRINGS; i++) {
-		if (flag_strings[i] == 0 && CUR Strings[i]) {
-			sprintf(temp, "%s ", STR_NAME(i));
-			ptext(temp);
-		}
-	}
-	put_newlines(1);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	edit_init()
-**
-**	Initialize the function key data base
-*/
-void
-edit_init(void)
-{
-	int i, j, lc;
-	char *lab;
-	struct name_table_entry const *nt;
-
-	alloc_arrays();
-
-	_nc_copy_termtype(&original_term, &cur_term->type);
-	for (i = 0; i < BOOLCOUNT; i++) {
-		original_term.Booleans[i] = CUR Booleans[i];
-	}
-	for (i = 0; i < NUMCOUNT; i++) {
-		original_term.Numbers[i] = CUR Numbers[i];
-	}
-	/* scan for labels */
-	for (i = lc = 0; i < MAX_STRINGS; i++) {
-		original_term.Strings[i] = CUR Strings[i];
-		if (strncmp(STR_NAME(i), "lf", 2) == 0) {
-			flag_strings[i] |= FLAG_LABEL;
-			if (CUR Strings[i]) {
-				label_strings[lc++] = i;
-			}
-		}
-	}
-	/* scan for function keys */
-	for (i = 0; i < MAX_STRINGS; i++) {
-		const char *this_name = STR_NAME(i);
-		if ((this_name[0] == 'k') && strcmp(this_name, "kmous")) {
-			flag_strings[i] |= FLAG_FUNCTION_KEY;
-			lab = (char *) 0;
-			for (j = 0; j < lc; j++) {
-				if (!strcmp(this_name,
-					STR_NAME(label_strings[j]))) {
-					lab = CUR Strings[label_strings[j]];
-					break;
-				}
-			}
-			enter_key(this_name, CUR Strings[i], lab);
-		}
-	}
-	/* Lookup the translated strings */
-	for (i = 0; i < TM_last; i++) {
-		if ((nt = _nc_find_entry(TM_string[i].name,
-			_nc_info_hash_table)) && (nt->nte_type == STRING)) {
-			TM_string[i].index = nt->nte_index;
-		} else {
-			sprintf(temp, "TM_string lookup failed for: %s",
-				TM_string[i].name);
-			ptextln(temp);
-		}
-	}
-	if ((nt = _nc_find_entry("xon", _nc_info_hash_table)) != 0) {
-		xon_index = nt->nte_index;
-	}
-	xon_shadow = xon_xoff;
-	free(label_strings);
-}
-
-/*
-**	change_one_entry(test_list, status, ch)
-**
-**	Change the padding on the selected cap
-*/
-static void
-change_one_entry(
-	struct test_list *test,
-	int *state,
-	int *chp)
-{
-	struct name_table_entry const *nt;
-	int i, j, x, star, slash,  v, dot, ch;
-	const char *s;
-	char *t, *p;
-	const char *current_string;
-	char buf[1024];
-	char pad[1024];
-
-	i = test->flags & 255;
-	if (i == 255) {
-		/* read the cap name from the user */
-		ptext("enter name: ");
-		read_string(pad, 32);
-		if (pad[0] == '\0' || pad[1] == '\0') {
-			*chp = pad[0];
-			return;
-		}
-		if ((nt = _nc_find_entry(pad, _nc_info_hash_table)) &&
-			(nt->nte_type == STRING)) {
-			x = nt->nte_index;
-			current_string = CUR Strings[x];
-		} else {
-			sprintf(temp, "%s is not a string capability", pad);
-			ptext(temp);
-			generic_done_message(test, state, chp);
-			return;
-		}
-	} else {
-		x = tx_index[i];
-		current_string = tx_cap[i];
-		strcpy(pad, STR_NAME(x));
-	}
-	if (!current_string) {
-		ptextln("That string is not currently defined.  Please enter a new value, including the padding delay:");
-		read_string(buf, sizeof(buf));
-		_nc_reset_input((FILE *) 0, buf);
-		_nc_trans_string(pad, pad + sizeof(pad));
-		t = (char *)malloc(strlen(pad) + 1);
-		strcpy(t, pad);
-		CUR Strings[x] = t;
-		sprintf(temp, "new string value  %s", STR_NAME(x));
-		ptextln(temp);
-		ptextln(expand(t));
-		return;
-	}
-	sprintf(buf, "Current value: (%s) %s", pad, _nc_tic_expand(current_string, TRUE, TRUE));
-	putln(buf);
-	ptextln("Enter new pad.  0 for no pad.  CR for no change.");
-	read_string(buf, 32);
-	if (buf[0] == '\0' || (buf[1] == '\0' && isalpha(UChar(buf[0])))) {
-		*chp = buf[0];
-		return;
-	}
-	star = slash = FALSE;
-	for (j = v = dot = 0; (ch = buf[j]); j++) {
-		if (ch >= '0' && ch <= '9') {
-			v = ch - '0' + v * 10;
-			if (dot) {
-				dot++;
-			}
-		} else if (ch == '*') {
-			star = TRUE;
-		} else if (ch == '/') {
-			slash = TRUE;
-		} else if (ch == '.') {
-			dot = 1;
-		} else {
-			sprintf(temp, "Illegal character: %c", ch);
-			ptextln(temp);
-			ptext("General format:  99.9*/  ");
-			generic_done_message(test, state, chp);
-			return;
-		}
-	}
-	while (dot > 2) {
-		v /= 10;
-		dot--;
-	}
-	if (dot == 2) {
-		sprintf(pad, "%d.%d%s%s", v / 10, v % 10,
-				star ? "*" : "", slash ? "/" : "");
-	} else {
-		sprintf(pad, "%d%s%s",
-			v, star ? "*" : "", slash ? "/" : "");
-	}
-	s = current_string;
-	t = buf;
-	for (v = 0; (ch = *t = *s++); t++) {
-		if (v == '$' && ch == '<') {
-			while ((ch = *s++) && (ch != '>'));
-			for (p = pad; (*++t = *p++); );
-			*t++ = '>';
-			while ((*t++ = *s++));
-			pad[0] = '\0';
-			break;
-		}
-		v = ch;
-	}
-	if (pad[0]) {
-		sprintf(t, "$<%s>", pad);
-	}
-	if ((t = (char *)malloc(strlen(buf) + 1))) {
-		strcpy(t, buf);
-		CUR Strings[x] = t;
-		if (i != 255) {
-			tx_cap[i] = t;
-		}
-	}
-	generic_done_message(test, state, chp);
-}
-
-/*
-**	build_change_menu(menu_list)
-**
-**	Build the change pad menu list
-*/
-static void
-build_change_menu(
-	struct test_menu *m)
-{
-	int i, j, k;
-	char *s;
-
-	for (i = j = 0; i < txp; i++) {
-		if ((k = tx_index[i]) >= 0) {
-			s = _nc_tic_expand(tx_cap[i], TRUE, TRUE);
-			s[40] = '\0';
-			sprintf(change_pad_text[j], "%c) (%s) %s",
-				'a' + j, STR_NAME(k), s);
-			change_pad_list[j].flags = i;
-			change_pad_list[j].lines_needed = 4;
-			change_pad_list[j].menu_entry = change_pad_text[j];
-			change_pad_list[j].test_procedure = change_one_entry;
-			j++;
-		}
-	}
-	strcpy(change_pad_text[j], "z) enter name");
-	change_pad_list[j].flags = 255;
-	change_pad_list[j].lines_needed = 4;
-	change_pad_list[j].menu_entry = change_pad_text[j];
-	change_pad_list[j].test_procedure = change_one_entry;
-	j++;
-	change_pad_list[j].flags = MENU_LAST;
-	if (m->menu_title) {
-		put_crlf();
-		ptextln(m->menu_title);
-	}
-}
diff -Naur ncurses-5.6.orig/tack/fun.c ncurses-5.6/tack/fun.c
--- ncurses-5.6.orig/tack/fun.c	2006-11-25 19:15:53.000000000 -0500
+++ ncurses-5.6/tack/fun.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,925 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: fun.c,v 1.9 2006/11/26 00:15:53 tom Exp $")
-
-/*
- * Test the function keys on the terminal.  The code for echo tests
- * lives here too.
- */
-
-static void funkey_keys(struct test_list *, int *, int *);
-static void funkey_meta(struct test_list *, int *, int *);
-static void funkey_label(struct test_list *, int *, int *);
-static void funkey_prog(struct test_list *, int *, int *);
-static void funkey_local(struct test_list *, int *, int *);
-
-struct test_list funkey_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
-	{MENU_NEXT | MENU_CLEAR, 0, "smkx) (rmkx", 0,
-		"k) test function keys", funkey_keys, 0},
-	{MENU_NEXT, 10, "km", "smm rmm", 0, funkey_meta, 0},
-	{MENU_NEXT, 8, "nlab) (smln) (pln) (rmln", "lw lh", 0, funkey_label, 0},
-	{MENU_NEXT, 2, "pfx", 0, 0, funkey_prog, 0},
-	{MENU_NEXT, 2, "pfloc", 0, 0, funkey_local, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void printer_on(struct test_list *, int *, int *);
-static void printer_mc0(struct test_list *, int *, int *);
-
-struct test_list printer_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_NEXT | MENU_CLEAR, 0, "mc4) (mc5) (mc5i", 0, 0, printer_on, 0},
-	{MENU_NEXT | MENU_CLEAR, 0, "mc0", 0, 0, printer_mc0, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/* local definitions */
-static const char **fk_name;
-static char **fkval;
-static char **fk_label;		/* function key labels (if any) */
-static int *fk_tested;
-static int num_strings = 0;
-
-static int fkmax = 1;		/* length of longest key */
-static int got_labels = 0;	/* true if we have some labels */
-static int key_count = 0;
-static int end_state;
-
-/* unknown function keys */
-#define MAX_FK_UNK 50
-static char *fk_unknown[MAX_FK_UNK];
-static int fk_length[MAX_FK_UNK];
-static int funk;
-
-/*
- * Initialize arrays that depend on the actual number of strings.
- */
-static void
-alloc_strings(void)
-{
-	if (num_strings != MAX_STRINGS) {
-		num_strings = MAX_STRINGS;
-		fk_name = (const char **)calloc(num_strings, sizeof(const char *));
-		fkval = (char **)calloc(num_strings, sizeof(char *));
-		fk_label = (char **)calloc(num_strings, sizeof(char *));
-		fk_tested = (int *)calloc(num_strings, sizeof(int));
-	}
-}
-
-/*
-**	keys_tested(first-time, show-help, hex-output)
-**
-**	Display a list of the keys not tested.
-*/
-static void
-keys_tested(
-	int first_time,
-	int show_help,
-	int hex_output)
-{
-	int i, l;
-	char outbuf[256];
-
-	alloc_strings();
-	put_clear();
-	tty_set();
-	flush_input();
-	if (got_labels) {
-		putln("Function key labels:");
-		for (i = 0; i < key_count; ++i) {
-			if (fk_label[i]) {
-				sprintf(outbuf, "%s %s",
-					fk_name[i] ? fk_name[i] : "??", fk_label[i]);
-				put_columns(outbuf, (int) strlen(outbuf), 16);
-			}
-		}
-		put_newlines(2);
-	}
-	if (funk) {
-		putln("The following keys are not defined:");
-		for (i = 0; i < funk; ++i) {
-			put_columns(fk_unknown[i], fk_length[i], 16);
-		}
-		put_mode(exit_attribute_mode);
-		put_newlines(2);
-	}
-	if (first_time) {
-		putln("The following keys are defined:");
-	} else {
-		putln("The following keys have not been tested:");
-	}
-	if (scan_mode) {
-		for (i = 0; scan_down[i]; i++) {
-			if (!scan_tested[i]) {
-				if (hex_output) {
-					strcpy(outbuf, hex_expand_to(scan_down[i], 3));
-				} else {
-					strcpy(outbuf, expand(scan_down[i]));
-				}
-				l = expand_chars;
-				if (hex_output) {
-					strcat(outbuf, hex_expand_to(scan_up[i], 3));
-				} else {
-					strcat(outbuf, expand(scan_up[i]));
-				}
-				expand_chars += l;
-				l = strlen(scan_name[i]);
-				if (((char_count + 16) & ~15) +
-					((expand_chars + 7) & ~7) + l >= columns) {
-					put_crlf();
-				} else
-				if (char_count + 24 > columns) {
-					put_crlf();
-				} else if (char_count) {
-					putchp(' ');
-				}
-				put_columns(outbuf, expand_chars, 16);
-				put_columns(scan_name[i], l, 8);
-			}
-		}
-	} else {
-		for (i = 0; i < key_count; i++) {
-			if (!fk_tested[i]) {
-				if (hex_output) {
-					strcpy(outbuf, hex_expand_to(fkval[i], 3));
-				} else {
-					strcpy(outbuf, expand(fkval[i]));
-				}
-				l = strlen(fk_name[i]);
-				if (((char_count + 16) & ~15) +
-					((expand_chars + 7) & ~7) + l >= columns) {
-					put_crlf();
-				} else
-				if (char_count + 24 > columns) {
-					put_crlf();
-				} else
-				if (char_count) {
-					putchp(' ');
-				}
-				put_columns(outbuf, expand_chars, 16);
-				put_columns(fk_name[i], l, 8);
-			}
-		}
-	}
-	put_newlines(2);
-	if (show_help) {
-		ptextln("Hit any function key.  Type 'end' to quit.  Type ? to update the display.");
-		put_crlf();
-	}
-}
-
-/*
-**	enter_key(name, value, label)
-**
-**	Enter a function key into the data base
-*/
-void
-enter_key(
-	const char *name,
-	char *value,
-	char *lab)
-{
-	int j;
-
-	alloc_strings();
-	if (value) {
-		j = strlen(value);
-		fkmax = fkmax > j ? fkmax : j;
-		/* do not permit duplicates */
-		for (j = 0; j < key_count; j++) {
-			if (!strcmp(fk_name[j], name)) {
-				return;
-			}
-		}
-		fkval[key_count] = value;
-		fk_tested[key_count] = 0;
-		fk_label[key_count] = lab;
-		fk_name[key_count++] = name;
-		if (lab) {
-			got_labels = TRUE;
-		}
-	}
-}
-
-
-static void
-fresh_line(void)
-{				/* clear the line for a new function key line */
-	if (over_strike) {
-		put_crlf();
-	} else {
-		put_cr();
-		if (clr_eol) {
-			tc_putp(clr_eol);
-		} else {
-			put_str("                    \r");
-		}
-	}
-}
-
-
-static int
-end_funky(int ch)
-{				/* return true if this is the end */
-	switch (ch) {
-	case 'e':
-	case 'E':
-		end_state = 'e';
-		break;
-	case 'n':
-	case 'N':
-		if (end_state == 'e') {
-			end_state = 'n';
-		} else {
-			end_state = 0;
-		}
-		break;
-	case 'd':
-	case 'D':
-		if (end_state == 'n') {
-			end_state = 'd';
-		} else {
-			end_state = 0;
-		}
-		break;
-	case 'l':
-	case 'L':
-		if (end_state == 'l') {
-			end_state = '?';
-		} else {
-			end_state = 'l';
-		}
-		break;
-	default:
-		end_state = 0;
-		break;
-	}
-	return end_state == 'd';
-}
-
-
-static int
-found_match(char *s, int hx, int cc)
-{				/* return true if this string is a match */
-	int j, f;
-	char outbuf[256];
-
-	alloc_strings();
-	if (!*s) {
-		return 0;
-	}
-	if (scan_mode) {
-		for (j = f = 0; scan_down[j]; j++) {
-			if (scan_length[j] == 0) {
-				continue;
-			}
-			if (!strncmp(s, scan_down[j], scan_length[j])) {
-				if (!f) {	/* first match */
-					put_cr();
-					if (hx) {
-						put_str(hex_expand_to(s, 10));
-					} else {
-						put_str(expand_to(s, 10));
-					}
-					f = 1;
-				}
-				(void) end_funky(scan_name[j][0]);
-				put_str(" ");
-				put_str(scan_name[j]);
-				scan_tested[j] = 1;
-				s += scan_length[j];
-				if (strncmp(s, scan_up[j], scan_length[j])) {
-					put_str(" scan down");
-				} else {
-					s += scan_length[j];
-				}
-				if (!*s) {
-					break;
-				}
-				j = -1;
-			}
-			if (!strncmp(s, scan_up[j], scan_length[j])) {
-				if (!f) {	/* first match */
-					put_cr();
-					if (hx) {
-						put_str(hex_expand_to(s, 10));
-					} else {
-						put_str(expand_to(s, 10));
-					}
-					f = 1;
-				}
-				put_str(" ");
-				put_str(scan_name[j]);
-				put_str(" scan up");
-				s += scan_length[j];
-				if (!*s) {
-					break;
-				}
-				j = -1;
-			}
-		}
-	} else {
-		for (j = f = 0; j < key_count; j++) {
-			if (!strcmp(s, fkval[j])) {
-				if (!f) {	/* first match */
-					put_cr();
-					if (hx) {
-						put_str(hex_expand_to(s, 10));
-					} else {
-						put_str(expand_to(s, 10));
-					}
-					f = 1;
-				}
-				sprintf(outbuf, " (%s)", fk_name[j]);
-				put_str(outbuf);
-				if (fk_label[j]) {
-					sprintf(outbuf, " <%s>", fk_label[j]);
-					put_str(outbuf);
-				}
-				fk_tested[j] = 1;
-			}
-		}
-	}
-	if (end_state == '?') {
-		keys_tested(0, 1, hx);
-		tty_raw(cc, char_mask);
-		end_state = 0;
-	}
-	return f;
-}
-
-
-static int
-found_exit(char *keybuf, int hx, int cc)
-{				/* return true if the user wants to exit */
-	int j, k;
-	char *s;
-
-
-	if (scan_mode) {
-		if (*keybuf == '\0') {
-			return TRUE;
-		}
-	} else {
-		/* break is a special case */
-		if (*keybuf == '\0') {
-			fresh_line();
-			tty_set();
-			ptext("Hit X to exit: ");
-			if (wait_here() == 'X') {
-				return TRUE;
-			}
-			keys_tested(0, 1, hx);
-			tty_raw(cc, char_mask);
-			return FALSE;
-		}
-		/* is this the end? */
-		for (k = 0; (j = (keybuf[k] & STRIP_PARITY)); k++) {
-			if (end_funky(j)) {
-				return TRUE;
-			}
-		}
-
-		j = TRUE;	/* does he need an updated list? */
-		for (k = 0; keybuf[k]; k++) {
-			j &= (keybuf[k] & STRIP_PARITY) == '?';
-		}
-		if (j || end_state == '?') {
-			keys_tested(0, 1, hx);
-			tty_raw(cc, char_mask);
-			end_state = 0;
-			return FALSE;
-		}
-	}
-
-	put_cr();
-	if (hx) {
-		s = hex_expand_to(keybuf, 10);
-	} else {
-		s = expand_to(keybuf, 10);
-	}
-	sprintf(temp, "%s Unknown", s);
-	put_str(temp);
-	for (j = 0; j < MAX_FK_UNK; j++) {
-		if (j == funk) {
-			fk_length[funk] = expand_chars;
-			if ((fk_unknown[funk] = (char *)malloc(strlen(s) + 1))) {
-				strcpy(fk_unknown[funk++], s);
-			}
-			break;
-		}
-		if (fk_length[j] == expand_chars) {
-			if (!strcmp(fk_unknown[j], s)) {
-				break;
-			}
-		}
-	}
-	return FALSE;
-}
-
-/*
-**	funkey_keys(test_list, status, ch)
-**
-**	Test function keys
-*/
-static void
-funkey_keys(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	char keybuf[256];
-
-	if (keypad_xmit) {
-		tc_putp(keypad_xmit);
-	}
-	keys_tested(1, 1, hex_out);	/* also clears screen */
-	keybuf[0] = '\0';
-	end_state = 0;
-	if (scan_mode) {
-		fkmax = scan_max;
-	}
-	tty_raw(0, char_mask);
-	while (end_state != 'd') {
-		read_key(keybuf, sizeof(keybuf));
-		fresh_line();
-		if (found_match(keybuf, hex_out, 0)) {
-			continue;
-		}
-		if (found_exit(keybuf, hex_out, 0)) {
-			break;
-		}
-	}
-	if (keypad_local) {
-		tc_putp(keypad_local);
-	}
-	keys_tested(0, 0, hex_out);
-	ptext("Function key test ");
-	generic_done_message(t, state, ch);
-}
-
-int
-tty_meta_prep(void)
-{				/* print a warning before the meta key test */
-	if (not_a_tty) {
-		return 0;
-	}
-	if (initial_stty_query(TTY_8_BIT)) {
-		return 0;
-	}
-	ptext("The meta key test must be run with the");
-	ptext(" terminal set for 8 data bits.  Two stop bits");
-	ptext(" may also be needed for correct display.  I will");
-	ptext(" transmit 8 bit data but if the terminal is set for");
-	ptextln(" 7 bit data, garbage may appear on the screen.");
-	return 1;
-}
-
-/*
-**	funkey_meta(test_list, status, ch)
-**
-**	Test meta key (km) (smm) (rmm)
-*/
-static void
-funkey_meta(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, k, len;
-	char outbuf[256];
-
-	if (has_meta_key) {
-		put_crlf();
-		if (char_mask != ALLOW_PARITY) {
-			if (tty_meta_prep()) {
-				ptext("\nHit any key to continue > ");
-				(void) wait_here();
-				put_crlf();
-			}
-		}
-		ptext("Begin meta key test. (km) (smm) (rmm)  Hit any key");
-		ptext(" with the meta key.  The character will be");
-		ptext(" displayed in hex.  If the meta key is working");
-		ptext(" then the most significant bit will be set.  Type");
-		ptextln(" 'end' to exit.");
-		tty_raw(1, ALLOW_PARITY);
-		tc_putp(meta_on);
-
-		for (i = j = k = len = 0; i != 'e' || j != 'n' || k != 'd';) {
-			i = j;
-			j = k;
-			k = getchp(ALLOW_PARITY);
-			if (k == EOF) {
-				break;
-			}
-			if ((len += 3) >= columns) {
-				put_crlf();
-				len = 3;
-			}
-			sprintf(outbuf, "%02X ", k);
-			put_str(outbuf);
-			k &= STRIP_PARITY;
-		}
-		tc_putp(meta_off);
-		put_crlf();
-		tty_set();
-		put_crlf();
-	} else {
-		ptext("(km) Has-meta-key is not set.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	funkey_label(test_list, status, ch)
-**
-**	Test labels (nlab) (smln) (pln) (rmln) (lw) (lh)
-*/
-static void
-funkey_label(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	char outbuf[256];
-
-	if (num_labels == -1) {
-		ptextln("Your terminal has no labels. (nlab)");
-	} else {
-		sprintf(temp, "Your terminal has %d labels (nlab) that are %d characters wide (lw) and %d lines high (lh)",
-			num_labels, label_width, label_height);
-		ptext(temp);
-		ptextln(" Testing (smln) (pln) (rmln)");
-		if (label_on) {
-			tc_putp(label_on);
-		}
-		if (label_width <= 0) {
-			label_width = sizeof(outbuf) - 1;
-		}
-		for (i = 1; i <= num_labels; i++) {
-			sprintf(outbuf, "L%d..............................", i);
-			outbuf[label_width] = '\0';
-			tc_putp(TPARM_2(plab_norm, i, outbuf));
-		}
-		if (label_off) {
-			ptext("Hit any key to remove the labels: ");
-			(void) wait_here();
-			tc_putp(label_off);
-		}
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	funkey_prog(test_list, status, ch)
-**
-**	Test program function keys (pfx)
-*/
-static void
-funkey_prog(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, fk;
-	char mm[256];
-
-	fk = 1;	/* use function key 1 for now */
-	if (pkey_xmit) {
-		/* test program function key */
-		sprintf(temp,
-			"(pfx) Set function key %d to transmit abc\\n", fk);
-		ptextln(temp);
-		tc_putp(TPARM_2(pkey_xmit, fk, "abc\n"));
-		sprintf(temp, "Hit function key %d\n", fk);
-		ptextln(temp);
-		for (i = 0; i < 4; ++i)
-			mm[i] = getchp(STRIP_PARITY);
-		mm[i] = '\0';
-		put_crlf();
-		if (mm[0] != 'a' || mm[1] != 'b' || mm[2] != 'c') {
-			sprintf(temp, "Error string received was: %s", expand(mm));
-			ptextln(temp);
-		} else {
-			putln("Thank you\n");
-		}
-		flush_input();
-		if (key_f1) {
-			tc_putp(TPARM_2(pkey_xmit, fk, key_f1));
-		}
-	} else {
-		ptextln("Function key transmit (pfx), not present.");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	funkey_local(test_list, status, ch)
-**
-**	Test program local function keys (pfloc)
-*/
-static void
-funkey_local(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int fk;
-
-	fk = 1;
-	if (pkey_local) {
-		/* test local function key */
-		sprintf(temp,
-			"(pfloc) Set function key %d to execute a clear and print \"Done!\"", fk);
-		ptextln(temp);
-		sprintf(temp, "%sDone!", liberated(clear_screen));
-		tc_putp(TPARM_2(pkey_local, fk, temp));
-		sprintf(temp, "Hit function key %d.  Then hit return.", fk);
-		ptextln(temp);
-		(void) wait_here();
-		flush_input();
-		if (key_f1 && pkey_xmit) {
-			tc_putp(TPARM_2(pkey_xmit, fk, key_f1));
-		}
-	} else {
-		ptextln("Function key execute local (pfloc), not present.");
-	}
-
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	printer_on(test_list, status, ch)
-**
-**	Test printer on/off (mc4) (mc5) (mc5i)
-*/
-static void
-printer_on(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (!prtr_on || !prtr_off) {
-		ptextln("Printer on/off missing. (mc5) (mc4)");
-	} else if (prtr_silent) {
-		ptextln("Your printer is silent. (mc5i) is set.");
-		tc_putp(prtr_on);
-		ptextln("This line should be on the printer but not your screen. (mc5)");
-		tc_putp(prtr_off);
-		ptextln("This line should be only on the screen. (mc4)");
-	} else {
-		ptextln("Your printer is not silent. (mc5i) is reset.");
-		tc_putp(prtr_on);
-		ptextln("This line should be on the printer and the screen. (mc5)");
-		tc_putp(prtr_off);
-		ptextln("This line should only be on the screen. (mc4)");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	printer_mc0(test_list, status, ch)
-**
-**	Test screen print (mc0)
-*/
-static void
-printer_mc0(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (print_screen) {
-		ptext("I am going to send the contents of the screen to");
-		ptext(" the printer, then wait for a keystroke from you.");
-		ptext("  All of the text that appears on the screen");
-		ptextln(" should be printed. (mc0)");
-		tc_putp(print_screen);
-	} else {
-		ptext("(mc0) Print-screen is not present.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-
-static void
-line_pattern(void)
-{				/* put up a pattern that will help count the
-				   number of lines */
-	int i, j;
-
-	put_clear();
-	if (over_strike) {
-		for (i = 0; i < 100; i++) {
-			if (i) {
-				put_crlf();
-			}
-			for (j = i / 10; j; j--) {
-				put_this(' ');
-			}
-			put_this('0' + ((i + 1) % 10));
-		}
-	} else	/* I assume it will scroll */ {
-		for (i = 100; i; i--) {
-			sprintf(temp, "\r\n%d", i);
-			put_str(temp);
-		}
-	}
-}
-
-
-static void
-column_pattern(void)
-{				/* put up a pattern that will help count the
-				   number of columns */
-	int i, j;
-
-	put_clear();
-	for (i = 0; i < 20; i++) {
-		for (j = 1; j < 10; j++) {
-			put_this('0' + j);
-		}
-		put_this('.');
-	}
-}
-
-/*
-**	report_help()
-**
-**	Print the help text for the echo tests
-*/
-static void
-report_help(int crx)
-{
-	ptextln("The following commands may also be entered:");
-	ptextln(" clear   clear screen.");
-	ptextln(" columns print a test pattern to help count screen width.");
-	ptextln(" lines   print a test pattern to help count screen length.");
-	ptextln(" end     exit.");
-	ptextln(" echo    redisplay last report.");
-	if (crx) {
-		ptextln(" hex     redisplay last report in hex.");
-	} else {
-		ptextln(" hex     toggle hex display mode.");
-	}
-	ptextln(" help    display this list.");
-	ptextln(" high    toggle forced high bit (0x80).");
-	ptextln(" scan    toggle scan mode.");
-	ptextln(" one     echo one character after <cr> or <lf> as is. (report mode)");
-	ptextln(" two     echo two characters after <cr> or <lf> as is.");
-	ptextln(" all     echo all characters after <cr> or <lf> as is. (echo mode)");
-}
-
-/*
-**	tools_report(testlist, state, ch)
-**
-**	Run the echo tool and report tool
-*/
-void
-tools_report(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *pch GCC_UNUSED)
-{
-	int i, j, ch, crp, crx, high_bit, save_scan_mode, hex_display;
-	char buf[1024];
-	char txt[8];
-
-	hex_display = hex_out;
-	put_clear();
-	if ((crx = (t->flags & 255)) == 1) {
-		ptext("Characters after a CR or LF will be echoed as");
-		ptextln(" is.  All other characters will be expanded.");
-		report_help(crx);
-	} else {	/* echo test */
-		ptextln("Begin echo test.");
-		report_help(crx);
-	}
-	memset(txt, 0, sizeof(txt));
-	save_scan_mode = scan_mode;
-	tty_raw(1, char_mask);
-	for (i = crp = high_bit = 0;;) {
-		ch = getchp(char_mask);
-		if (ch == EOF) {
-			break;
-		}
-		if (i >= (int) sizeof(buf) - 1) {
-			i = 0;
-		}
-		buf[i++] = ch;
-		buf[i] = '\0';
-		for (j = 0; j < (int) sizeof(txt) - 1; j++) {
-			txt[j] = txt[j + 1];
-		}
-		txt[sizeof(txt) - 1] = ch & STRIP_PARITY;
-		if (crx == 0) {	/* echo test */
-			if (hex_display) {
-				ptext(hex_expand_to(&buf[i - 1], 3));
-			} else {
-				tc_putch(ch | high_bit);
-			}
-		} else /* status report test */
-		if (ch == '\n' || ch == '\r') {
-			put_crlf();
-			crp = 0;
-		} else if (crp++ < crx) {
-			tc_putch(ch | high_bit);
-		} else {
-			put_str(expand(&buf[i - 1]));
-		}
-		if (!strncmp(&txt[sizeof(txt) - 7], "columns", 7)) {
-			column_pattern();
-			buf[i = 0] = '\0';
-			crp = 0;
-		}
-		if (!strncmp(&txt[sizeof(txt) - 5], "lines", 5)) {
-			line_pattern();
-			buf[i = 0] = '\0';
-			crp = 0;
-		}
-		if (!strncmp(&txt[sizeof(txt) - 5], "clear", 5)) {
-			put_clear();
-			buf[i = 0] = '\0';
-			crp = 0;
-		}
-		if (!strncmp(&txt[sizeof(txt) - 4], "high", 4)) {
-			high_bit ^= 0x80;
-			if (high_bit) {
-				ptextln("\nParity bit set");
-			} else {
-				ptextln("\nParity bit reset");
-			}
-		}
-		if (!strncmp(&txt[sizeof(txt) - 4], "help", 4)) {
-			put_crlf();
-			report_help(crx);
-		}
-		if (!strncmp(&txt[sizeof(txt) - 4], "echo", 4)) {
-			/* display the last status report */
-			/* clear bypass condition on Tek terminals */
-			put_crlf();
-			if (i >= 4) {
-				buf[i -= 4] = '\0';
-			}
-			put_str(expand(buf));
-		}
-		if (save_scan_mode &&
-			!strncmp(&txt[sizeof(txt) - 4], "scan", 4)) {
-			/* toggle scan mode */
-			scan_mode = !scan_mode;
-		}
-		if (!strncmp(&txt[sizeof(txt) - 3], "end", 3))
-			break;
-		if (!strncmp(&txt[sizeof(txt) - 3], "hex", 3)) {
-			if (crx) {
-				/* display the last status report in hex */
-				/* clear bypass condition on Tek terminals */
-				put_crlf();
-				if (i >= 3) {
-					buf[i -= 3] = '\0';
-				}
-				put_str(hex_expand_to(buf, 3));
-			} else {
-				hex_display = !hex_display;
-			}
-		}
-		if (!strncmp(&txt[sizeof(txt) - 3], "two", 3))
-			crx = 2;
-		if (!strncmp(&txt[sizeof(txt) - 3], "one", 3))
-			crx = 1;
-		if (!strncmp(&txt[sizeof(txt) - 3], "all", 3))
-			crx = 0;
-	}
-	scan_mode = save_scan_mode;
-	put_crlf();
-	tty_set();
-	if (crx) {
-		ptextln("End of status report test.");
-	} else {
-		ptextln("End of echo test.");
-	}
-}
diff -Naur ncurses-5.6.orig/tack/init.c ncurses-5.6/tack/init.c
--- ncurses-5.6.orig/tack/init.c	2006-11-25 19:16:01.000000000 -0500
+++ ncurses-5.6/tack/init.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,316 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-/* initialization and wrapup code */
-
-#include <tack.h>
-
-MODULE_ID("$Id: init.c,v 1.7 2006/11/26 00:16:01 tom Exp $")
-
-#if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
-#define _nc_get_curterm(p) _nc_get_tty_mode(p)
-#endif
-
-FILE *debug_fp;
-char temp[1024];
-char tty_basename[64];
-
-void
-put_name(const char *cap, const char *name)
-{				/* send the cap name followed by the cap */
-	if (cap) {
-		ptext(name);
-		tc_putp(cap);
-	}
-}
-
-static void
-report_cap(const char *tag, const char *s)
-{				/* expand the cap or print *** missing *** */
-	int i;
-
-	ptext(tag);
-	for (i = char_count; i < 13; i++) {
-		putchp(' ');
-	}
-	put_str(" = ");
-	if (s) {
-		putln(expand(s));
-	} else {
-		putln("*** missing ***");
-	}
-}
-
-
-void
-reset_init(void)
-{				/* send the reset and init strings */
-	int i;
-
-	ptext("Terminal reset");
-	i = char_count;
-	put_name(reset_1string, " (rs1)");
-	put_name(reset_2string, " (rs2)");
-	/* run the reset file */
-	if (reset_file && reset_file[0]) {
-		FILE *fp;
-		int ch;
-
-		can_test("rf", FLAG_TESTED);
-		if ((fp = fopen(reset_file, "r"))) {	/* send the reset file */
-			sprintf(temp, " (rf) %s", reset_file);
-			ptextln(temp);
-			while (1) {
-				ch = getc(fp);
-				if (ch == EOF)
-					break;
-				put_this(ch);
-			}
-			fclose(fp);
-		} else {
-			sprintf(temp, "\nCannot open reset file (rf) %s", reset_file);
-			ptextln(temp);
-		}
-	}
-	put_name(reset_3string, " (rs3)");
-	if (i != char_count) {
-		put_crlf();
-	}
-	ptext(" init");
-	put_name(init_1string, " (is1)");
-	put_name(init_2string, " (is2)");
-	if (set_tab && clear_all_tabs && init_tabs != 8) {
-		put_crlf();
-		tc_putp(clear_all_tabs);
-		for (char_count = 0; char_count < columns; char_count++) {
-			put_this(' ');
-			if ((char_count & 7) == 7) {
-				tc_putp(set_tab);
-			}
-		}
-		put_cr();
-	}
-	/* run the initialization file */
-	if (init_file && init_file[0]) {
-		FILE *fp;
-		int ch;
-
-		can_test("if", FLAG_TESTED);
-		if ((fp = fopen(init_file, "r"))) {	/* send the init file */
-			sprintf(temp, " (if) %s", init_file);
-			ptextln(temp);
-			while (1) {
-				ch = getc(fp);
-				if (ch == EOF)
-					break;
-				put_this(ch);
-			}
-			fclose(fp);
-		} else {
-			sprintf(temp, "\nCannot open init file (if) %s", init_file);
-			ptextln(temp);
-		}
-	}
-	if (init_prog) {
-		can_test("iprog", FLAG_TESTED);
-		(void) system(init_prog);
-	}
-	put_name(init_3string, " (is3)");
-
-	fflush(stdout);
-}
-
-/*
-**	display_basic()
-**
-**	display the basic terminal definitions
-*/
-void
-display_basic(void)
-{
-	put_str("Name: ");
-	putln(ttytype);
-
-	report_cap("\\r ^M (cr)", carriage_return);
-	report_cap("\\n ^J (ind)", scroll_forward);
-	report_cap("\\b ^H (cub1)", cursor_left);
-	report_cap("\\t ^I (ht)", tab);
-/*      report_cap("\\f ^L (ff)", form_feed);	*/
-	if (newline) {
-		/* OK if missing */
-		report_cap("      (nel)", newline);
-	}
-	report_cap("      (clear)", clear_screen);
-	if (!cursor_home && cursor_address) {
-		report_cap("(cup) (home)", TPARM_2(cursor_address, 0, 0));
-	} else {
-		report_cap("      (home)", cursor_home);
-	}
-#ifdef user9
-	report_cap("ENQ   (u9)", user9);
-#endif
-#ifdef user8
-	report_cap("ACK   (u8)", user8);
-#endif
-
-	sprintf(temp, "\nTerminal size: %d x %d.  Baud rate: %u.  Frame size: %d.%d",
-		columns, lines,
-		tty_baud_rate,
-		tty_frame_size >> 1,
-		(tty_frame_size & 1) * 5);
-	putln(temp);
-}
-
-/*
-**	curses_setup(exec_name)
-**
-**	Startup ncurses
-*/
-void
-curses_setup(
-	char *exec_name)
-{
-	int status;
-	static TERMTYPE term;
-	char tty_filename[2048];
-
-	tty_init();
-
-	/**
-	   See if the terminal is in the terminfo data base.  This call has
-	two useful benefits, 1) it returns the filename of the terminfo entry,
-	and 2) it searches only terminfo's.  This allows us to abort before
-	ncurses starts scanning the termcap file.
-	**/
-	if ((status = _nc_read_entry(tty_basename, tty_filename, &term)) == 0) {
-		const TERMTYPE *fallback = _nc_fallback(tty_basename);
-
-		if (fallback) {
-		    term = *fallback;
-		    sprintf(tty_filename, "(fallback)%s", tty_basename);
-		    status = 1;
-		} else {
-		    fprintf(stderr, "Terminal not found: TERM=%s\n", tty_basename);
-		    show_usage(exec_name);
-		    exit(1);
-		}
-	}
-	if (status == -1) {
-		fprintf(stderr, "Terminfo database is inaccessible\n");
-		exit(1);
-	}
-
-	/**
-	   This call will load the terminfo data base and set the cur-term
-	variable.  Only terminals that actually exist will get here so its
-	OK to ignore errors.  This is a good thing since ncurses does not
-	permit (os) or (gn) to be set.
-	**/
-	setupterm(tty_basename, 1, &status);
-
-	/**
-	   Get the current terminal definitions.  This must be done before
-	getting the baudrate.
-	**/
-	_nc_get_curterm(&cur_term->Nttyb);
-	tty_baud_rate = baudrate();
-	tty_cps = (tty_baud_rate << 1) / tty_frame_size;
-
-	/* set up the defaults */
-	replace_mode = TRUE;
-	scan_mode = 0;
-	char_count = 0;
-	select_delay_type = debug_level = 0;
-	char_mask = (meta_on && meta_on[0] == '\0') ? ALLOW_PARITY : STRIP_PARITY;
-	/* Don't change the XON/XOFF modes yet. */
-	select_xon_xoff = initial_stty_query(TTY_XON_XOFF) ? 1 : needs_xon_xoff;
-
-	fflush(stdout);	/* flush any output */
-	tty_set();
-
-	go_home();	/* set can_go_home */
-	put_clear();	/* set can_clear_screen */
-
-	if (send_reset_init) {
-		reset_init();
-	}
-
-	/*
-	   I assume that the reset and init strings may not have the correct
-	   pads.  (Because that part of the test comes much later.)  Because
-	   of this, I allow the terminal some time to catch up.
-	*/
-	fflush(stdout);	/* waste some time */
-	sleep(1);	/* waste more time */
-	charset_can_test();
-	can_test("lines cols cr nxon rf if iprog rmp smcup rmcup", FLAG_CAN_TEST);
-	edit_init();			/* initialize the edit data base */
-
-	if (send_reset_init && enter_ca_mode) {
-		tc_putp(enter_ca_mode);
-		put_clear();	/* just in case we switched pages */
-	}
-	put_crlf();
-	ptext("Using terminfo from: ");
-	ptextln(tty_filename);
-	put_crlf();
-
-	if (tty_can_sync == SYNC_NEEDED) {
-		verify_time();
-	}
-
-	display_basic();
-}
-
-/*
-**	bye_kids(exit-condition)
-**
-**	Shutdown the terminal, clear the signals, and exit
-*/
-void
-bye_kids(int n)
-{				/* reset the tty and exit */
-	ignoresig();
-	if (send_reset_init) {
-		if (exit_ca_mode) {
-			tc_putp(exit_ca_mode);
-		}
-		if (initial_stty_query(TTY_XON_XOFF)) {
-			if (enter_xon_mode) {
-				tc_putp(enter_xon_mode);
-			}
-		} else if (exit_xon_mode) {
-			tc_putp(exit_xon_mode);
-		}
-	}
-	if (debug_fp) {
-		fclose(debug_fp);
-	}
-	if (log_fp) {
-		fclose(log_fp);
-	}
-	tty_reset();
-	fclose(stdin);
-	fclose(stdout);
-	fclose(stderr);
-	if (not_a_tty)
-		sleep(1);
-	exit(n);
-}
diff -Naur ncurses-5.6.orig/tack/menu.c ncurses-5.6/tack/menu.c
--- ncurses-5.6.orig/tack/menu.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/menu.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,421 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: menu.c,v 1.3 2005/09/17 19:49:16 tom Exp $")
-
-/*
-   Menu control
- */
-
-static void test_byname(struct test_menu *, int *, int *);
-
-struct test_list *augment_test;
-char prompt_string[80];	/* menu prompt storage */
-
-/*
-**	menu_prompt()
-**
-**	Print the menu prompt string.
-*/
-void
-menu_prompt(void)
-{
-	ptext(&prompt_string[1]);
-}
-
-/*
-**	menu_test_loop(test-structure, state, control-character)
-**
-**	This function implements the repeat test function.
-*/
-static void
-menu_test_loop(
-	struct test_list *test,
-	int *state,
-	int *ch)
-{
-	int nch, p;
-
-	if ((test->flags & MENU_REP_MASK) && (augment_test != test)) {
-		/* set the augment variable (first time only) */
-		p = (test->flags >> 8) & 15;
-		if ((test->flags & MENU_REP_MASK) == MENU_LM1) {
-			augment = lines - 1;
-		} else
-		if ((test->flags & MENU_ONE_MASK) == MENU_ONE) {
-			augment = 1;
-		} else
-		if ((test->flags & MENU_LC_MASK) == MENU_lines) {
-			augment = lines * p / 10;
-		} else
-		if ((test->flags & MENU_LC_MASK) == MENU_columns) {
-			augment = columns * p / 10;
-		} else {
-			augment = 1;
-		}
-		augment_test = test;
-		set_augment_txt();
-	}
-	do {
-		if ((test->flags | *state) & MENU_CLEAR) {
-			put_clear();
-		} else
-		if (line_count + test->lines_needed >= lines) {
-			put_clear();
-		}
-		nch = 0;
-		if (test->test_procedure) {
-			/* The procedure takes precedence so I can pass
-			   the menu entry as an argument.
-			*/
-			can_test(test->caps_done, FLAG_TESTED);
-			can_test(test->caps_tested, FLAG_TESTED);
-			test->test_procedure(test, state, &nch);
-		} else
-		if (test->sub_menu) {
-			/* nested menu's */
-			menu_display(test->sub_menu, &nch);
-			*state = 0;
-			if (nch == 'q' || nch == 's') {
-				/* Quit and skip are killed here */
-				nch = '?';
-			}
-		} else {
-			break;	/* cya */
-		}
-		if (nch == '\r' || nch == '\n' || nch == 'n') {
-			nch = 0;
-			break;
-		}
-	} while (nch == 'r');
-	*ch = nch;
-}
-
-/*
-**	menu_display(menu-structure, flags)
-**
-**	This function implements menu control.
-*/
-void
-menu_display(
-	struct test_menu *menu,
-	int *last_ch)
-{
-	int test_state = 0, run_standard_tests;
-	int hot_topic, ch = 0, nch = 0;
-	struct test_list *mt;
-	struct test_list *repeat_tests = 0;
-	int repeat_state = 0;
-	int prompt_length;
-
-	prompt_length = strlen(prompt_string);
-	if (menu->ident) {
-		sprintf(&prompt_string[prompt_length], "/%s", menu->ident);
-	}
-	hot_topic = menu->default_action;
-	run_standard_tests = menu->standard_tests ?
-		menu->standard_tests[0] : -1;
-	if (!last_ch) {
-		last_ch = &ch;
-	}
-	while (1) {
-		if (ch == 0) {
-			/* Display the menu */
-			put_crlf();
-			if (menu->menu_function) {
-				/*
-				   this function may be used to restrict menu
-				   entries.  If used it must print the title.
-				*/
-				menu->menu_function(menu);
-			} else
-			if (menu->menu_title) {
-				ptextln(menu->menu_title);
-			}
-			for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
-				if (mt->menu_entry) {
-					ptext(" ");
-					ptextln(mt->menu_entry);
-				}
-			}
-			if (menu->standard_tests) {
-				ptext(" ");
-				ptextln(menu->standard_tests);
-				ptextln(" r) repeat test");
-				ptextln(" s) skip to next test");
-			}
-			ptextln(" q) quit");
-			ptextln(" ?) help");
-		}
-		if (ch == 0 || ch == REQUEST_PROMPT) {
-			put_crlf();
-			ptext(&prompt_string[1]);
-			if (hot_topic) {
-				ptext(" [");
-				putchp(hot_topic);
-				ptext("]");
-			}
-			ptext(" > ");
-			/* read a character */
-			ch = wait_here();
-		}
-		if (ch == '\r' || ch == '\n') {
-			ch = hot_topic;
-		}
-		if (ch == 'q') {
-			break;
-		}
-		if (ch == '?') {
-			ch = 0;
-			continue;
-		}
-		nch = ch;
-		ch = 0;
-		/* Run one of the standard tests (by request) */
-		for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
-			if (mt->menu_entry && (nch == mt->menu_entry[0])) {
-				if (mt->flags & MENU_MENU) {
-					test_byname(menu, &test_state, &nch);
-				} else {
-					menu_test_loop(mt, &test_state, &nch);
-				}
-				ch = nch;
-				if ((mt->flags & MENU_COMPLETE) && ch == 0) {
-					/* top level */
-					hot_topic = 'q';
-					ch = '?';
-				}
-			}
-		}
-		if (menu->standard_tests && nch == 'r') {
-			menu->resume_tests = repeat_tests;
-			test_state = repeat_state;
-			nch = run_standard_tests;
-		}
-		if (nch == run_standard_tests) {
-			if (!(mt = menu->resume_tests)) {
-				mt = menu->tests;
-			}
-			if (mt->flags & MENU_LAST) {
-				mt = menu->tests;
-			}
-			/* Run the standard test suite */
-			for ( ; (mt->flags & MENU_LAST) == 0; ) {
-				if ((mt->flags & MENU_NEXT) == MENU_NEXT) {
-					repeat_tests = mt;
-					repeat_state = test_state;
-					nch = run_standard_tests;
-					menu_test_loop(mt, &test_state, &nch);
-					if (nch != 0 && nch != 'n') {
-						ch = nch;
-						break;
-					}
-					if (test_state & MENU_STOP) {
-						break;
-					}
-				}
-				mt++;
-			}
-			if (ch == 0) {
-				ch = hot_topic;
-			}
-			menu->resume_tests = mt;
-			menu->resume_state = test_state;
-			menu->resume_char = ch;
-
-			if (ch == run_standard_tests) {
-				/* pop up a level */
-				break;
-			}
-		}
-	}
-	*last_ch = ch;
-	prompt_string[prompt_length] = '\0';
-}
-
-/*
-**	generic_done_message(test_list)
-**
-**	Print the Done message and request input.
-*/
-void
-generic_done_message(
-	struct test_list *test,
-	int *state,
-	int *ch)
-{
-	char done_message[128];
-
-	if (test->caps_done) {
-		sprintf(done_message, "(%s) Done ", test->caps_done);
-		ptext(done_message);
-	} else {
-		ptext("Done ");
-	}
-	*ch = wait_here();
-	if (*ch == '\r' || *ch == '\n' || *ch == 'n') {
-		*ch = 0;
-	}
-	if (*ch == 's') {
-		*state |= MENU_STOP;
-		*ch = 0;
-	}
-}
-
-/*
-**	menu_clear_screen(test, state, ch)
-**
-**	Just clear the screen.
-*/
-void
-menu_clear_screen(
-	struct test_list *test GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	put_clear();
-}
-
-/*
-**	menu_reset_init(test, state, ch)
-**
-**	Send the reset and init strings.
-*/
-void
-menu_reset_init(
-	struct test_list *test GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	reset_init();
-	put_crlf();
-}
-
-/*
-**	subtest_menu(test, state, ch)
-**
-**	Scan the menu looking for something to execute
-**	Return TRUE if we found anything.
-*/
-int
-subtest_menu(
-	struct test_list *test,
-	int *state,
-	int *ch)
-{
-	struct test_list *mt;
-
-	if (*ch) {
-		for (mt = test; (mt->flags & MENU_LAST) == 0; mt++) {
-			if (mt->menu_entry && (*ch == mt->menu_entry[0])) {
-				*ch = 0;
-				menu_test_loop(mt, state, ch);
-				return TRUE;
-			}
-		}
-	}
-	return FALSE;
-}
-
-/*
-**	menu_can_scan(menu-structure)
-**
-**	Recursively scan the menu tree and find which cap names can be tested.
-*/
-void
-menu_can_scan(
-	const struct test_menu *menu)
-{
-	struct test_list *mt;
-
-	for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
-		can_test(mt->caps_done, FLAG_CAN_TEST);
-		can_test(mt->caps_tested, FLAG_CAN_TEST);
-		if (!(mt->test_procedure)) {
-			if (mt->sub_menu) {
-				menu_can_scan(mt->sub_menu);
-			}
-		}
-	}
-}
-
-/*
-**	menu_search(menu-structure, cap)
-**
-**	Recursively search the menu tree and execute any tests that use cap.
-*/
-static void
-menu_search(
-	struct test_menu *menu,
-	int *state,
-	int *ch,
-	char *cap)
-{
-	struct test_list *mt;
-	int nch;
-
-	for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
-		nch = 0;
-		if (cap_match(mt->caps_done, cap)
-			|| cap_match(mt->caps_tested, cap)) {
-			menu_test_loop(mt, state, &nch);
-		}
-		if (!(mt->test_procedure)) {
-			if (mt->sub_menu) {
-				menu_search(mt->sub_menu, state, &nch, cap);
-			}
-		}
-		if (*state & MENU_STOP) {
-			break;
-		}
-		if (nch != 0 && nch != 'n') {
-			*ch = nch;
-			break;
-		}
-	}
-}
-
-/*
-**	test_byname(menu, state, ch)
-**
-**	Get a cap name then run all tests that use that cap.
-*/
-static void
-test_byname(
-	struct test_menu *menu,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	int test_state = 0;
-	char cap[32];
-
-	if (tty_can_sync == SYNC_NOT_TESTED) {
-		verify_time();
-	}
-	ptext("enter name: ");
-	read_string(cap, sizeof(cap));
-	if (cap[0]) {
-		menu_search(menu, &test_state, ch, cap);
-	}
-	*ch = '?';
-}
diff -Naur ncurses-5.6.orig/tack/modes.c ncurses-5.6/tack/modes.c
--- ncurses-5.6.orig/tack/modes.c	2006-11-25 19:16:21.000000000 -0500
+++ ncurses-5.6/tack/modes.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,913 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: modes.c,v 1.3 2006/11/26 00:16:21 tom Exp $")
-
-/*
- * Tests boolean flags and terminal modes.
- */
-static void subtest_os(struct test_list *, int *, int *);
-static void subtest_rmam(struct test_list *, int *, int *);
-static void subtest_smam(struct test_list *, int *, int *);
-static void subtest_am(struct test_list *, int *, int *);
-static void subtest_ul(struct test_list *, int *, int *);
-static void subtest_uc(struct test_list *, int *, int *);
-static void subtest_bw(struct test_list *, int *, int *);
-static void subtest_xenl(struct test_list *, int *, int *);
-static void subtest_eo(struct test_list *, int *, int *);
-static void subtest_xmc(struct test_list *, int *, int *);
-static void subtest_xhp(struct test_list *, int *, int *);
-static void subtest_mir(struct test_list *, int *, int *);
-static void subtest_msgr(struct test_list *, int *, int *);
-static void subtest_tbc(struct test_list *, int *, int *);
-static void subtest_xt(struct test_list *, int *, int *);
-static void subtest_hts(struct test_list *, int *, int *);
-static void subtest_cbt(struct test_list *, int *, int *);
-static void subtest_in(struct test_list *, int *, int *);
-static void subtest_dadb(struct test_list *, int *, int *);
-
-struct test_list mode_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{MENU_NEXT, 3, "os", 0, 0, subtest_os, 0},
-	{MENU_NEXT, 1, "rmam", 0, 0, subtest_rmam, 0},
-	{MENU_NEXT, 1, "smam", 0, 0, subtest_smam, 0},
-	{MENU_NEXT, 1, "am", 0, 0, subtest_am, 0},
-	{MENU_NEXT, 3, "ul", 0, 0, subtest_ul, 0},
-	{MENU_NEXT, 3, "uc", 0, 0, subtest_uc, 0},
-	{MENU_NEXT, 3, "bw", 0, 0, subtest_bw, 0},
-	{MENU_NEXT, 4, "xenl", 0, 0, subtest_xenl, 0},
-	{MENU_NEXT, 3, "eo", 0, 0, subtest_eo, 0},
-	{MENU_NEXT, 3, "xmc", 0, 0, subtest_xmc, 0},
-	{MENU_NEXT, 3, "xhp", 0, 0, subtest_xhp, 0},
-	{MENU_NEXT, 6, "mir", 0, 0, subtest_mir, 0},
-	{MENU_NEXT, 6, "msgr", 0, 0, subtest_msgr, 0},
-	{MENU_NEXT | MENU_CLEAR, 0, "tbc", "it", 0, subtest_tbc, 0},
-	{MENU_NEXT | MENU_CLEAR, 0, "hts", "it", 0, subtest_hts, 0},
-	{MENU_NEXT, 4, "xt", "it", 0, subtest_xt, 0},
-	{MENU_NEXT, 1, "cbt", "it", 0, subtest_cbt, 0},
-	{MENU_NEXT, 6, "in", 0, 0, subtest_in, 0},
-	{MENU_NEXT, 1, "da) (db", 0, 0, subtest_dadb, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-**	subtest_os(test_list, status, ch)
-**
-**	test over strike mode (os)
-*/
-static void
-subtest_os(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	ptext("(os) should be true, not false.");
-	put_cr();
-	ptextln("(os) should be           false.");
-	sprintf(temp, "(os) over-strike is %s in the data base.  ",
-		over_strike ? "true" : "false");
-	ptext(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_rmam(test_list, status, ch)
-**
-**	test exit automatic margins mode (rmam)
-*/
-static void
-subtest_rmam(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j;
-
-	if (!exit_am_mode) {
-		ptext("(rmam) not present.  ");
-	} else
-	if (!can_go_home) {
-		ptext("(rmam) not tested, no way to home cursor.  ");
-	} else
-	if (over_strike) {
-		put_clear();
-		go_home();
-		tc_putp(exit_am_mode);
-		ptext("\n(rmam) will     reset (am)");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		ptext("(rmam) will not reset (am)");
-		go_home();
-		put_newlines(2);
-	} else {
-		put_clear();
-		go_home();
-		tc_putp(exit_am_mode);
-		ptext("\n(rmam) will reset (am)");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		ptext("(rmam) will not reset (am) ");
-		go_home();
-		put_str("                          ");
-		go_home();
-		put_newlines(2);
-	}
-	ptext("Exit-automatic-margins ");
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_smam(test_list, status, ch)
-**
-**	test enter automatic margins mode (smam)
-*/
-static void
-subtest_smam(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!enter_am_mode) {
-		ptext("(smam) not present.  ");
-	} else
-	if (!can_go_home) {
-		ptext("(smam) not tested, no way to home cursor.  ");
-	} else
-	if (over_strike) {
-		put_clear();
-		go_home();
-		tc_putp(enter_am_mode);
-		ptext("\n(smam) will ");
-		i = char_count;
-		ptext("not set (am)");
-		go_home();
-		for (j = -i; j < columns; j++)
-			put_this(' ');
-		put_str("@@@");
-		put_newlines(2);
-	} else {
-		put_clear();
-		go_home();
-		tc_putp(enter_am_mode);
-		ptext("\n(smam) will not set (am)");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		ptext("(smam) will set (am)    ");
-		go_home();
-		put_str("                          ");
-		put_newlines(2);
-	}
-	ptext("Enter-automatic-margins ");
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_am(test_list, status, ch)
-**
-**	test automatic margins (am)
-*/
-static void
-subtest_am(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!can_go_home) {
-		ptextln("(am) not tested, no way to home cursor.  ");
-	} else
-	if (over_strike) {
-		put_clear();
-		go_home();
-		ptext("\n(am) should ");
-		i = char_count;
-		ptext("not be set");
-		go_home();
-		for (j = -i; j < columns; j++)
-			put_this(' ');
-		put_str("@@@");
-		go_home();
-		put_newlines(2);
-		sprintf(temp, "(am) is %s in the data base",
-			auto_right_margin ? "true" : "false");
-		ptextln(temp);
-	} else {
-		put_clear();
-		go_home();
-		ptext("\n(am) should not be set");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		ptext("(am) should be set    ");
-		go_home();
-		put_str("                       \n\n");
-		sprintf(temp, "(am) is %s in the data base",
-			auto_right_margin ? "true" : "false");
-		ptextln(temp);
-	}
-	ptext("Automatic-right-margin ");
-	generic_done_message(t, state, ch);
-}
-
-/* Note: uprint() sends underscore back-space character, and
-        ucprint() sends character back-space underscore.  */
-
-/*
-**	uprint(string)
-**
-**	underline string for (ul) test
-*/
-static void
-uprint(const char *s)
-{
-	if (s) {
-		while (*s) {
-			put_str("_\b");
-			putchp(*s++);
-		}
-	}
-}
-
-/*
-**	ucprint(string)
-**
-**	underline string for (uc) test
-*/
-static void
-ucprint(const char *s)
-{
-	if (s) {
-		while (*s) {
-			putchp(*s++);
-			putchp('\b');
-			tc_putp(underline_char);
-		}
-	}
-}
-
-/*
-**	subtest_ul(test_list, status, ch)
-**
-**	test transparent underline (ul)
-*/
-static void
-subtest_ul(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (!over_strike) {
-		/* (ul) is used only if (os) is reset */
-		put_crlf();
-		sprintf(temp, "This text should %sbe underlined.",
-			transparent_underline ? "" : "not ");
-		uprint(temp);
-		put_crlf();
-		ptextln("If the above line is not underlined the (ul) should be false.");
-		sprintf(temp, "(ul) Transparent-underline is %s in the data base",
-			transparent_underline ? "true" : "false");
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_uc(test_list, status, ch)
-**
-**	test underline character (uc)
-*/
-static void
-subtest_uc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (!over_strike) {
-		if (underline_char) {
-			ucprint("This text should be underlined.");
-			put_crlf();
-			ptextln("If the above text is not underlined the (uc) has failed.");
-			ptext("Underline-character ");
-		} else {
-			ptext("(uc) underline-character is not defined.  ");
-		}
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_bw(test_list, status, ch)
-**
-**	test auto left margin (bw)
-*/
-static void
-subtest_bw(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (over_strike) {
-		/* test (bw) */
-		ptext("\n(bw) should ");
-		i = char_count;
-		ptextln("not be set.");
-		for (j = i; j < columns; j++)
-			put_str("\b");
-		put_str("@@@");
-		put_crlf();
-		sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
-			auto_left_margin ? "true" : "false");
-		ptextln(temp);
-	} else {
-		/* test (bw) */
-		ptextln("(bw) should not be set.");
-		for (i = 12; i < columns; i++)
-			put_str("\b");
-		if (delete_character) {
-			for (i = 0; i < 4; i++)
-				tc_putp(delete_character);
-		} else {
-			put_str("   ");
-		}
-		put_crlf();
-		sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
-			auto_left_margin ? "true" : "false");
-		ptextln(temp);
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_tbc(test_list, status, ch)
-**
-**	test clear tabs (tbc)
-*/
-static void
-subtest_tbc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int tabat;		/* the tab spacing we end up with */
-	int i;
-
-	if (clear_all_tabs && !set_tab) {
-		ptext("(tbc) Clear-all-tabs is defined but (hts) set-tab is not.  ");
-		ptext("Once the tabs are cleared there is no way to set them.  ");
-	} else
-	if (clear_all_tabs) {
-		tabat = set_tab ? 8 : init_tabs;
-		tc_putp(clear_all_tabs);
-		ptext("Clear tabs (tbc)");
-		go_home();
-		put_crlf();
-		putchp('\t');
-		putchp('T');
-		go_home();
-		put_newlines(2);
-		for (i = 0; i < columns; i++) {
-			if (i == tabat) {
-				putchp('T');
-			} else {
-				putchp('.');
-			}
-		}
-		go_home();
-		ptext("\n\n\nIf the above two lines have T's in the same column then (tbc) has failed.  ");
-	} else {
-		ptext("(tbc) Clear-all-tabs is not defined.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_hts(test_list, status, ch)
-**
-**	(ht) and set tabs with (hts)
-*/
-static void
-subtest_hts(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int tabat;		/* the tab spacing we end up with */
-	int i;
-
-	tabat = init_tabs;
-	if (set_tab) {
-		ptext("Tabs set with (hts)");
-		put_crlf();
-		for (i = 1; i < columns; i++) {
-			if (i % 8 == 1) {
-				tc_putp(set_tab);
-			}
-			putchp(' ');
-		}
-		tabat = 8;
-	} else {
-		sprintf(temp, "(hts) Set-tabs not defined.  (it) Initial-tabs at %d", init_tabs);
-		ptext(temp);
-	}
-	go_home();
-	put_newlines(2);
-	if (tabat <= 0) {
-		tabat = 8;
-	}
-	for (i = tabat; i < columns; i += tabat) {
-		putchp('\t');
-		putchp('T');
-	}
-	go_home();
-	put_newlines(3);
-	for (i = 1; i < columns; i++) {
-		putchp('.');
-	}
-	go_home();
-	put_newlines(3);
-	for (i = tabat; i < columns; i += tabat) {
-		putchp('\t');
-		putchp('T');
-	}
-	go_home();
-	put_newlines(4);
-	putchp('.');
-	for (i = 2; i < columns; i++) {
-		if (i % tabat == 1) {
-			putchp('T');
-		} else {
-			putchp('.');
-		}
-	}
-	go_home();
-	put_newlines(5);
-	if (set_tab) {
-		ptextln("If the last two lines are not the same then (hts) has failed.");
-	} else
-	if (init_tabs > 0) {
-		ptextln("If the last two lines are not the same then (it) is wrong.");
-	} else {
-		ptextln("If the last two lines are the same then maybe you do have tabs and (it) should be changed.");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_xt(test_list, status, ch)
-**
-**	(xt) glitch
-*/
-static void
-subtest_xt(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int tabat;		/* the tab spacing we end up with */
-	int cc;
-
-	tabat = set_tab ? 8 : init_tabs;
-	if (!over_strike && (tabat > 0)) {
-		ptext("(xt) should not ");
-		put_cr();
-		ptext("(xt) should");
-		cc = char_count;
-		while (cc < 16) {
-			putchp('\t');
-			cc = ((cc / tabat) + 1) * tabat;
-		}
-		putln("be set.");
-		sprintf(temp, "(xt) Destructive-tab is %s in the data base.",
-			dest_tabs_magic_smso ? "true" : "false");
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_cbt(test_list, status, ch)
-**
-**	(cbt) back tab
-*/
-static void
-subtest_cbt(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (back_tab) {
-		put_clear();
-		ptext("Back-tab (cbt)");
-		go_home();
-		put_crlf();
-		for (i = 1; i < columns; i++) {
-			putchp(' ');
-		}
-		for (i = 0; i < columns; i += 8) {
-			tc_putp(back_tab);
-			putchp('T');
-			tc_putp(back_tab);
-		}
-		go_home();
-		put_newlines(2);
-		for (i = 1; i < columns; i++) {
-			if (i % 8 == 1) {
-				putchp('T');
-			} else {
-				putchp(' ');
-			}
-		}
-		go_home();
-		put_newlines(3);
-		ptextln("The preceding two lines should be the same.");
-	} else {
-		ptextln("(cbt) Back-tab not present");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_xenl(test_list, status, ch)
-**
-**	(xenl) eat newline glitch
-*/
-static void
-subtest_xenl(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, k;
-
-	if (over_strike) {
-		/* test (xenl) on overstrike terminals */
-		if (!can_go_home || !can_clear_screen) {
-			ptextln("(xenl) Newline-glitch not tested, can't home cursor and clear.");
-			generic_done_message(t, state, ch);
-			return;
-		}
-		put_clear();
-		/*
-		   this test must be done in raw mode.  Otherwise UNIX will
-		   translate CR to CRLF.
-		*/
-		if (stty_query(TTY_OUT_TRANS))
-			tty_raw(1, char_mask);
-		ptext("\nreset (xenl). Does ");
-		i = char_count;
-		put_str("not ignore CR, does ");
-		k = char_count;
-		put_str("not ignore LF");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		put_cr();
-		for (j = 0; j < i; j++)
-			putchp(' ');
-		put_str("@@@\n@@");
-		go_home();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		put_lf();
-		for (j = 0; j < k; j++)
-			putchp(' ');
-		put_str("@@@\r@@");
-		tty_set();
-		go_home();
-		put_newlines(4);
-		sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
-			eat_newline_glitch ? "true" : "false");
-		ptextln(temp);
-	} else {
-		/* test (xenl) when (os) is reset */
-		if (!can_go_home) {
-			ptextln("(xenl) Newline-glitch not tested, can't home cursor");
-			generic_done_message(t, state, ch);
-			return;
-		}
-		/* (xenl) test */
-		put_clear();
-		/*
-		   this test must be done in raw mode.  Otherwise
-		   UNIX will translate CR to CRLF.
-		*/
-		if (stty_query(TTY_OUT_TRANS))
-			tty_raw(1, char_mask);
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		put_cr();
-		ptext("(xenl) should be set. Does not ignore CR");
-		go_home();
-		put_crlf();
-		for (j = 0; j < columns; j++)
-			put_this(' ');
-		put_lf();	/* test (cud1) */
-		ptext("(xenl) should be set. Ignores (cud1)");
-		go_home();
-		put_newlines(3);
-		if (scroll_forward && cursor_down &&
-			strcmp(scroll_forward, cursor_down)) {
-			for (j = 0; j < columns; j++)
-				put_this(' ');
-			put_ind();	/* test (ind) */
-			ptext("(xenl) should be set. Ignores (ind)");
-			go_home();
-			put_newlines(5);
-		}
-		tty_set();
-		ptextln("If you don't see text above telling you to set it, (xenl) should be false");
-		sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
-			eat_newline_glitch ? "true" : "false");
-		ptextln(temp);
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_eo(test_list, status, ch)
-**
-**	(eo) erase overstrike
-*/
-static void
-subtest_eo(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (transparent_underline || over_strike || underline_char) {
-		ptext("(eo) should ");
-		if (underline_char) {
-			ucprint("not");
-		} else {
-			uprint("not");
-		}
-		put_cr();
-		ptextln("(eo) should     be set");
-		sprintf(temp, "\n(eo) Erase-overstrike is %s in the data base",
-			erase_overstrike ? "true" : "false");
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_xmc(test_list, status, ch)
-**
-**	(xmc) magic cookie glitch
-*/
-static void
-subtest_xmc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (enter_standout_mode) {
-		sprintf(temp, "\n(xmc) Magic-cookie-glitch is %d in the data base", magic_cookie_glitch);
-		ptextln(temp);
-		j = magic_cookie_glitch * 8;
-		for (i = 0; i < j; i++) {
-			put_str(" ");
-		}
-		ptextln("        These two lines should line up.");
-		if (j > 0) {
-			char_count += j;
-		}
-		for (i = 0; i < 4; i++) {
-			put_mode(enter_standout_mode);
-			putchp(' ');
-			put_mode(exit_standout_mode);
-			putchp(' ');
-		}
-		ptextln("These two lines should line up.");
-		ptext("If they don't line up then (xmc) magic-cookie-glitch should be greater than zero.  ");
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_xhp(test_list, status, ch)
-**
-**	(xhp) erase does not clear standout mode
-*/
-static void
-subtest_xhp(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (enter_standout_mode) {
-		put_crlf();
-		put_mode(enter_standout_mode);
-		put_str("Stand out");
-		put_mode(exit_standout_mode);
-		put_cr();
-		ptextln("If any part of this line is standout then (xhp) should be set.");
-		sprintf(temp, "(xhp) Erase-standout-glitch is %s in the data base",
-			ceol_standout_glitch ? "true" : "false");
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_mir(test_list, status, ch)
-**
-**	(mir) move in insert mode
-*/
-static void
-subtest_mir(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	char *s;
-
-	if (enter_insert_mode && exit_insert_mode && cursor_address) {
-		put_clear();
-		i = line_count;
-		put_str("\nXXX\nXXX\nXXX\nXXX");
-		tc_putp(enter_insert_mode);
-		s = TPARM_2(cursor_address, i + 1, 0);
-		tputs(s, lines, tc_putch);
-		putchp('X');
-		s = TPARM_2(cursor_address, i + 2, 1);
-		tputs(s, lines, tc_putch);
-		putchp('X');
-		s = TPARM_2(cursor_address, i + 3, 2);
-		tputs(s, lines, tc_putch);
-		putchp('X');
-		s = TPARM_2(cursor_address, i + 4, 3);
-		tputs(s, lines, tc_putch);
-		putchp('X');
-		tc_putp(exit_insert_mode);
-		put_newlines(2);
-		ptextln("If you see a 4 by 4 block of X's then (mir) should be true.");
-		sprintf(temp, "(mir) Move-in-insert-mode is %s in the data base",
-			move_insert_mode ? "true" : "false");
-		ptextln(temp);
-	} else {
-		ptext("(mir) Move-in-insert-mode not tested, ");
-		if (!enter_insert_mode) {
-			ptext("(smir) ");
-		}
-		if (!exit_insert_mode) {
-			ptext("(rmir) ");
-		}
-		if (!cursor_address) {
-			ptext("(cup) ");
-		}
-		ptext("not present.  ");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_msgr(test_list, status, ch)
-**
-**	(msgr) move in sgr mode
-*/
-static void
-subtest_msgr(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (cursor_address &&
-		((enter_standout_mode && exit_standout_mode) ||
-		(enter_alt_charset_mode && exit_alt_charset_mode))) {
-		put_crlf();
-		i = line_count + 1;
-		tputs(TPARM_2(cursor_address, i, 0), lines, tc_putch);
-		put_mode(enter_alt_charset_mode);
-		put_crlf();
-		/*
-		   some versions of the wy-120 can not clear lines or
-		   screen when in alt charset mode.  If (el) and (ed)
-		   are defined then I can test them.  If they are not
-		   defined then they can not break (msgr)
-		*/
-		tc_putp(clr_eos);
-		tc_putp(clr_eol);
-		put_mode(exit_alt_charset_mode);
-		put_mode(enter_standout_mode);
-		putchp('X');
-		tputs(TPARM_2(cursor_address, i + 2, 1), lines, tc_putch);
-		putchp('X');
-		tputs(TPARM_2(cursor_address, i + 3, 2), lines, tc_putch);
-		putchp('X');
-		tputs(TPARM_2(cursor_address, i + 4, 3), lines, tc_putch);
-		putchp('X');
-		put_mode(exit_standout_mode);
-		put_crlf();
-		tc_putp(clr_eos);	/* OK if missing */
-		put_crlf();
-		ptextln("If you see a diagonal line of standout X's then (msgr) should be true.  If any of the blanks are standout then (msgr) should be false.");
-		sprintf(temp, "(msgr) Move-in-SGR-mode is %s in the data base",
-			move_standout_mode ? "true" : "false");
-		ptextln(temp);
-	} else {
-		ptextln("(smso) (rmso) (smacs) (rmacs) missing; (msgr) Move-in-SGR-mode not tested.");
-	}
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	subtest_in(test_list, status, ch)
-**
-**	(in) insert null glitch
-*/
-static void
-subtest_in(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (enter_insert_mode && exit_insert_mode) {
-		ptextln("\nTesting (in) with (smir) and (rmir)");
-		putln("\tIf these two lines line up ...");
-		put_str("\tIf these two lines line up ...");
-		put_cr();
-		tc_putp(enter_insert_mode);
-		putchp(' ');
-		tc_putp(exit_insert_mode);
-		ptext("\nthen (in) should be set.  ");
-		sprintf(temp,
-			"(in) Insert-null-glitch is %s in the data base.",
-			insert_null_glitch ? "true" : "false");
-		ptextln(temp);
-		generic_done_message(t, state, ch);
-	}
-}
-
-/*
-**	subtest_dadb(test_list, status, ch)
-**
-**	(da) (db) data above, (db) data below
-*/
-static void
-subtest_dadb(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (can_clear_screen && scroll_reverse && scroll_forward) {
-		put_clear();
-		if (scroll_reverse)
-			ptext("(da) Data-above should be set\r");
-		home_down();
-		if (scroll_forward)
-			ptext("(db) Data-below should be set\r");
-		tc_putp(scroll_forward);
-		go_home();
-		tc_putp(scroll_reverse);
-		tc_putp(scroll_reverse);
-		home_down();
-		tc_putp(scroll_forward);
-		go_home();
-		ptextln("\n\n\n\n\nIf the top line is blank then (da) should be false.");
-		ptextln("If the bottom line is blank then (db) should be false.");
-		sprintf(temp, "\n(da) Data-above is %s, and (db) Data-below is %s, in the data base.",
-			memory_above ? "true" : "false",
-			memory_below ? "true" : "false");
-		ptextln(temp);
-		line_count = lines;
-	} else {
-		ptextln("(da) Data-above, (db) Data-below not tested, scrolls or (clear) is missing.");
-	}
-	generic_done_message(t, state, ch);
-}
diff -Naur ncurses-5.6.orig/tack/modules ncurses-5.6/tack/modules
--- ncurses-5.6.orig/tack/modules	2006-04-22 18:37:18.000000000 -0400
+++ ncurses-5.6/tack/modules	1969-12-31 19:00:00.000000000 -0500
@@ -1,45 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-1999,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.                                                             #
-##############################################################################
-# $Id: modules,v 1.5 2006/04/22 22:37:18 tom Exp $
-@ base
-ansi      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-charset   progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-color     progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-control   progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-crum      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-edit      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h $(INCDIR)/tic.h
-fun       progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-init      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-menu      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-modes     progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-output    progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-pad       progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-scan      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-sync      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-sysdep    progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
-tack      progs   $(srcdir) $(srcdir)/tack.h ../include/term.h
diff -Naur ncurses-5.6.orig/tack/output.c ncurses-5.6/tack/output.c
--- ncurses-5.6.orig/tack/output.c	2006-11-25 19:16:49.000000000 -0500
+++ ncurses-5.6/tack/output.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,818 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-/* screen formatting and I/O utility functions */
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id: output.c,v 1.11 2006/11/26 00:16:49 tom Exp $")
-
-/* globals */
-long char_sent;			/* number of characters sent */
-int char_count;			/* counts characters */
-int line_count;			/* counts line feeds */
-int expand_chars;		/* length of expand() string */
-int replace_mode;		/* used to output replace mode padding */
-int can_go_home;		/* TRUE if we can fashion a home command */
-int can_clear_screen;		/* TRUE if we can somehow clear the screen */
-int raw_characters_sent;	/* Total output characters */
-static int log_count;		/* Number of characters on a log line */
-
-/* translate mode default strings */
-#define TM_carriage_return	TM_string[0].value
-#define TM_cursor_down		TM_string[1].value
-#define TM_scroll_forward	TM_string[2].value
-#define TM_newline		TM_string[3].value
-#define TM_cursor_left		TM_string[4].value
-#define TM_bell			TM_string[5].value
-#define TM_form_feed		TM_string[6].value
-#define TM_tab			TM_string[7].value
-
-struct default_string_list TM_string[TM_last] = {
-	{"cr", "\r", 0},
-	{"cud1", "\n", 0},
-	{"ind", "\n", 0},
-	{"nel", "\r\n", 0},
-	{"cub1", "\b", 0},
-	{"bel", "\007", 0},
-	{"ff", "\f", 0},
-	{"ht", "\t", 0}
-};
-
-static const char *c0[32] = {
-	"NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK",
-	"BEL", "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI",
-	"DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
-	"CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US"
-};
-
-static const char *c1[32] = {
-	"", "", "", "", "IND", "NEL", "SSA", "ESA",
-	"HTS", "HTJ", "VTS", "PLD", "PLU", "RI", "SS2", "SS3",
-	"DCS", "PU1", "PU2", "STS", "CCH", "MW", "SPA", "EPA",
-	"", "", "", "CSI", "ST", "OSC", "PM", "APC"
-};
-
-int
-getnext(int mask)
-{				/* get the next character without scan mode
-				   conversion */
-	int ch;
-	unsigned char buf;
-
-	tc_putp(req_for_input);
-	fflush(stdout);
-	if (nodelay_read)
-		while (1) {
-			ch = read(fileno(stdin), &buf, 1);
-			if (ch == -1)
-				return EOF;
-			if (ch == 1)
-				return buf;
-		}
-	ch = getchar();
-	if (ch == EOF)
-		return EOF;
-	return ch & mask;
-}
-
-
-int
-getchp(int mask)
-{				/* read a character with scan mode conversion */
-	if (scan_mode) {
-		tc_putp(req_for_input);
-		fflush(stdout);
-		return scan_key();
-	} else
-		return getnext(mask);
-}
-
-/*
-**	tc_putch(c)
-**
-**	Output one character
-*/
-int
-tc_putch(int c)
-{
-	char_sent++;
-	raw_characters_sent++;
-	putchar(c);
-	if ((raw_characters_sent & 31) == 31) {
-		fflush(stdout);
-	}
-	if (log_fp) {
-		/* terminal output logging */
-		c = UChar(c);
-		if (c < 32) {
-			fprintf(log_fp, "<%s>", c0[c]);
-			log_count += 5;
-		} else
-		if (c < 127) {
-			fprintf(log_fp, "%c", c);
-			log_count += 1;
-		} else {
-			fprintf(log_fp, "<%02x>", c);
-			log_count += 4;
-		}
-		if (c == '\n' || log_count >= 80) {
-			fprintf(log_fp, "\n");
-			log_count = 0;
-		}
-	}
-	return (c);
-}
-
-/*
-**	tt_tputs(string, reps)
-**
-**	Output a string with tputs() translation.
-**	Use this function inside timing tests.
-*/
-void
-tt_tputs(const char *string, int reps)
-{
-	int i;
-
-	if (string) {
-		for (i = 0; i < TT_MAX; i++) {
-			if (i >= ttp) {
-				tt_cap[i] = string;
-				tt_affected[i] = reps;
-				tt_count[i] = 1;
-				tt_delay[i] = msec_cost(string, reps);
-				ttp++;
-				break;
-			}
-			if (string == tt_cap[i] && reps == tt_affected[i]) {
-				tt_count[i]++;
-				tt_delay_used += tt_delay[i];
-				break;
-			}
-		}
-		(void) tputs(string, reps, tc_putch);
-	}
-}
-
-/*
-**	tt_putp(string)
-**
-**	Output a string with tputs() translation.
-**	Use this function inside timing tests.
-*/
-void
-tt_putp(const char *string)
-{
-	tt_tputs(string, 1);
-}
-
-/*
-**	tt_putparm(string, reps, arg1, arg2)
-**
-**	Send tt_tputs(tparm(string, args1, arg2), reps)
-**	Use this function inside timing tests.
-*/
-void
-tt_putparm(
-	NCURSES_CONST char *string,
-	int reps,
-	int arg1,
-	int arg2)
-{
-	int i;
-
-	if (string) {
-		for (i = 0; i < TT_MAX; i++) {
-			if (i >= ttp) {
-				tt_cap[i] = string;
-				tt_affected[i] = reps;
-				tt_count[i] = 1;
-				tt_delay[i] = msec_cost(string, reps);
-				ttp++;
-				break;
-			}
-			if (string == tt_cap[i] && reps == tt_affected[i]) {
-				tt_count[i]++;
-				tt_delay_used += tt_delay[i];
-				break;
-			}
-		}
-		(void) tputs(TPARM_2((NCURSES_CONST char *)string, arg1, arg2), reps, tc_putch);
-	}
-}
-
-/*
-**	tc_putp(string)
-**
-**	Output a string with tputs() translation.
-**	Use this function instead of putp() so we can track
-**	the actual number of characters sent.
-*/
-int
-tc_putp(const char *string)
-{
-	return tputs(string, 1, tc_putch);
-}
-
-
-void
-put_this(int c)
-{				/* output one character (with padding) */
-	tc_putch(c);
-	if (char_padding && replace_mode)
-		tt_putp(char_padding);
-}
-
-
-void
-put_cr(void)
-{
-	if (translate_mode && carriage_return) {
-		tt_putp(carriage_return);
-	} else {
-		tt_putp(TM_carriage_return);
-	}
-	char_count = 0;
-}
-
-
-void
-put_lf(void)
-{				/* send a linefeed (only works in RAW or
-				   CBREAK mode) */
-	if (translate_mode && cursor_down) {
-		tt_putp(cursor_down);
-	} else {
-		tt_putp(TM_cursor_down);
-	}
-	line_count++;
-}
-
-
-void
-put_ind(void)
-{				/* scroll forward (only works in RAW or
-				   CBREAK mode) */
-	if (translate_mode && scroll_forward) {
-		tt_putp(scroll_forward);
-	} else {
-		tt_putp(TM_scroll_forward);
-	}
-	line_count++;
-}
-
-/*
-**	put_crlf()
-**
-**	Send (nel)  or <cr> <lf>
-*/
-void
-put_crlf(void)
-{
-	if (translate_mode && newline) {
-		tt_putp(newline);
-	} else {
-		tt_putp(TM_newline);
-	}
-	char_count = 0;
-	line_count++;
-}
-
-/*
-**	put_new_lines(count)
-**
-**	Send a number of newlines. (nel)
-*/
-void
-put_newlines(int n)
-{
-	while (n-- > 0) {
-		put_crlf();
-	}
-}
-
-/*
-**	putchp(character)
-**
-**	Send one character to the terminal.
-**	This function does translation of control characters.
-*/
-void
-putchp(int c)
-{
-	switch (c) {
-	case '\b':
-		if (translate_mode && cursor_left) {
-			tt_putp(cursor_left);
-		} else {
-			tt_putp(TM_cursor_left);
-		}
-		char_count--;
-		break;
-	case 7:
-		if (translate_mode && bell) {
-			tt_putp(bell);
-		} else {
-			tt_putp(TM_bell);
-		}
-		break;
-	case '\f':
-		if (translate_mode && form_feed) {
-			tt_putp(form_feed);
-		} else {
-			tt_putp(TM_form_feed);
-		}
-		char_count = 0;
-		line_count++;
-		break;
-	case '\n':
-		put_crlf();
-		break;
-	case '\r':
-		put_cr();
-		break;
-	case '\t':
-		if (translate_mode && tab) {
-			tt_putp(tab);
-		} else {
-			tt_putp(TM_tab);
-		}
-		char_count = ((char_count / 8) + 1) * 8;
-		break;
-	default:
-		put_this(c);
-		char_count++;
-		break;
-	}
-}
-
-
-void
-put_str(const char *s)
-{				/* send the string to the terminal */
-	for (; *s; putchp(*s++));
-}
-
-
-void
-putln(const char *s)
-{				/* output a string followed by a CR LF */
-	for (; *s; putchp(*s++));
-	put_crlf();
-}
-
-
-void
-put_columns(const char *s, int len, int w)
-{				/* put out s in column format */
-	int l;
-
-	if (char_count + w > columns) {
-		put_crlf();
-	}
-	l = char_count % w;
-	if (l) {
-		while (l < w) {
-			putchp(' ');
-			l++;
-		}
-	}
-	if (char_count && char_count + len >= columns) {
-		put_crlf();
-	}
-	l = char_count;
-	put_str(s);
-	char_count = l + len;
-}
-
-
-/*
-**	ptext(string)
-**
-**	Output a string but do not assume the terminal will wrap to a
-**	new line.  Break the line at a word boundary then send a CR LF.
-**	This is more esthetic on 40 column terminals.
-*/
-void
-ptext(const char *s)
-{
-	const char *t;
-
-	while (*s) {
-		for (t = s + 1; *t > ' '; t++);
-		if ((char_count != 0) && ((t - s) + char_count >= columns)) {
-			put_crlf();
-			while (*s == ' ')
-				s++;
-		}
-		while (s < t) {
-			putchp(*s++);
-		}
-	}
-}
-
-
-void
-put_dec(char *f, int i)
-{				/* print a line with a decimal number in it */
-	char tm[128];
-
-	sprintf(tm, f, i / 10, i % 10);
-	ptext(tm);
-}
-
-
-void
-three_digit(char *tx, int i)
-{				/* convert the decimal number to a string of
-				   at least 3 digits */
-	if (i < 1000)
-		sprintf(tx, "%d.%d", i / 10, i % 10);
-	else
-		sprintf(tx, "%d", i / 10);
-}
-
-
-void
-ptextln(const char *s)
-{				/* print the text using ptext() then add a CR
-				   LF */
-	ptext(s);
-	put_crlf();
-}
-
-
-static void
-expand_one(int ch, char **v)
-{				/* expand one character */
-	char *t = *v;
-
-	if (ch & 0x80) {	/* dump it in octal (yuck) */
-		*t++ = '\\';
-		*t++ = '0' + ((ch >> 6) & 3);
-		*t++ = '0' + ((ch >> 3) & 7);
-		*t++ = '0' + (ch & 7);
-		expand_chars += 4;
-	} else if (ch == 127) {	/* DEL */
-		*t++ = '^';
-		*t++ = '?';
-		expand_chars += 2;
-	} else if (ch >= ' ') {
-		*t++ = ch;
-		expand_chars++;
-	} else {	/* control characters */
-		*t++ = '^';
-		*t++ = ch + '@';
-		expand_chars += 2;
-	}
-	*v = t;
-}
-
-
-char *
-expand(const char *s)
-{				/* convert the string to printable form */
-	static char buf[4096];
-	char *t, *v;
-	int ch;
-
-	if (magic_cookie_glitch <= 0 && exit_attribute_mode) {
-		v = enter_reverse_mode;
-	} else {
-		v = NULL;
-	}
-	expand_chars = 0;
-	t = buf;
-	if (s) {
-		for (; (ch = *s); s++) {
-			if ((ch & 0x80) && v) {	/* print it in reverse video
-						   mode */
-				strcpy(t, liberated(TPARM_0(v)));
-				for (; *t; t++);
-				expand_one(ch & 0x7f, &t);
-				strcpy(t, liberated(TPARM_0(exit_attribute_mode)));
-				for (; *t; t++);
-			} else {
-				expand_one(ch, &t);
-			}
-		}
-	}
-	*t = '\0';
-	return buf;
-}
-
-
-char *
-print_expand(char *s)
-{				/* convert the string to 7-bit printable form */
-	static char buf[4096];
-	char *t;
-	int ch;
-
-	expand_chars = 0;
-	t = buf;
-	if (s) {
-		for (; (ch = *s); s++) {
-			expand_one(ch, &t);
-		}
-	}
-	*t = '\0';
-	return buf;
-}
-
-
-char *
-expand_to(char *s, int l)
-{				/* expand s to length l */
-	char *t;
-
-	for (s = t = expand(s); *t; t++);
-	for (; expand_chars < l; expand_chars++) {
-		*t++ = ' ';
-	}
-	*t = '\0';
-	return s;
-}
-
-
-char *
-hex_expand_to(char *s, int l)
-{				/* expand s to length l in hex */
-	static char buf[4096];
-	char *t;
-
-	for (t = buf; *s; s++) {
-		sprintf(t, "%02X ", UChar(*s));
-		t += 3;
-		if (t - buf > (int) sizeof(buf) - 4) {
-			break;
-		}
-	}
-	for (; t - buf < l;) {
-		*t++ = ' ';
-	}
-	*t = '\0';
-	expand_chars = t - buf;
-	return buf;
-}
-
-
-char *
-expand_command(const char *c)
-{				/* expand an ANSI escape sequence */
-	static char buf[256];
-	int i, j, ch;
-	char *s;
-
-	s = buf;
-	for (i = FALSE; (ch = UChar(*c)) != 0; c++) {
-		if (i) {
-			*s++ = ' ';
-		}
-		i = TRUE;
-		if (ch < 32) {
-			j = UChar(c[1]);
-			if (ch == '\033' && j >= '@' && j <= '_') {
-				ch = j - '@';
-				c++;
-				for (j = 0; (*s = c1[ch][j++]); s++);
-			} else
-				for (j = 0; (*s = c0[ch][j++]); s++);
-		} else {
-			*s++ = ch;
-			j = UChar(c[1]);
-			if (ch >= '0' && ch <= '9' &&
-				j >= '0' && j <= '9') {
-				i = FALSE;
-			}
-		}
-	}
-	*s = '\0';
-	return buf;
-}
-
-/*
-**	go_home()
-**
-**	Move the cursor to the home position
-*/
-void
-go_home(void)
-{
-	int i;
-
-	if (cursor_home)
-		tt_putp(cursor_home);
-	else if (cursor_address)
-		tt_putparm(cursor_address, lines, 0, 0);
-	else if (row_address) {	/* use (vpa) */
-		put_cr();
-		tt_putparm(row_address, 1, 0, 0);
-	} else if (cursor_up && cursor_to_ll) {
-		tt_putp(cursor_to_ll);
-		for (i = 1; i < lines; i++) {
-			tt_putp(cursor_up);
-		}
-	} else {
-		can_go_home = FALSE;
-		return;
-	}
-	char_count = line_count = 0;
-	can_go_home = TRUE;
-}
-
-
-void
-home_down(void)
-{				/* move the cursor to the lower left hand
-				   corner */
-	int i;
-
-	if (cursor_to_ll)
-		tt_putp(cursor_to_ll);
-	else if (cursor_address)
-		tt_putparm(cursor_address, lines, lines - 1, 0);
-	else if (row_address) {	/* use (vpa) */
-		put_cr();
-		tt_putparm(row_address, 1, lines - 1, 0);
-	} else if (cursor_down && cursor_home) {
-		tt_putp(cursor_home);
-		for (i = 1; i < lines; i++)
-			tt_putp(cursor_down);
-	} else
-		return;
-	char_count = 0;
-	line_count = lines - 1;
-}
-
-
-void
-put_clear(void)
-{				/* clear the screen */
-	int i;
-
-	if (clear_screen)
-		tt_tputs(clear_screen, lines);
-	else if (clr_eos && can_go_home) {
-		go_home();
-		tt_tputs(clr_eos, lines);
-	} else if (scroll_forward && !over_strike && (can_go_home || cursor_up)) {
-		/* clear the screen by scrolling */
-		put_cr();
-		if (cursor_to_ll) {
-			tt_putp(cursor_to_ll);
-		} else if (cursor_address) {
-			tt_putparm(cursor_address, lines, lines - 1, 0);
-		} else if (row_address) {
-			tt_putparm(row_address, 1, lines - 1, 0);
-		} else {
-			for (i = 1; i < lines; i++) {
-				tt_putp(scroll_forward);
-			}
-		}
-		for (i = 1; i < lines; i++) {
-			tt_putp(scroll_forward);
-		}
-		if (can_go_home) {
-			go_home();
-		} else {
-			for (i = 1; i < lines; i++) {
-				tt_putp(cursor_up);
-			}
-		}
-	} else {
-		can_clear_screen = FALSE;
-		return;
-	}
-	char_count = line_count = 0;
-	can_clear_screen = TRUE;
-}
-
-/*
-**	wait_here()
-**
-**	read one character from the input stream
-**	If the terminal is not in RAW mode then this function will
-**	wait for a <cr> or <lf>.
-*/
-int
-wait_here(void)
-{
-	char ch, cc[64];
-	char message[16];
-	int i, j;
-
-	for (i = 0; i < (int) sizeof(cc); i++) {
-		cc[i] = ch = getchp(STRIP_PARITY);
-		if (ch == '\r' || ch == '\n') {
-			put_crlf();
-			char_sent = 0;
-			return cc[i ? i - 1 : 0];
-		}
-		if (ch >= ' ') {
-			if (stty_query(TTY_CHAR_MODE)) {
-				put_crlf();
-				char_sent = 0;
-				return ch;
-			}
-			continue;
-		}
-		if (ch == 023) {	/* Control S */
-			/* ignore control S, but tell me about it */
-			while (ch == 023 || ch == 021) {
-				ch = getchp(STRIP_PARITY);
-				if (i < (int) sizeof(cc))
-					cc[++i] = ch;
-			}
-			put_str("\nThe terminal sent a ^S -");
-			for (j = 0; j <= i; j++) {
-				sprintf(message, " %02X", cc[j] & 0xFF);
-				put_str(message);
-			}
-			put_crlf();
-			i = -1;
-		} else if (ch != 021) {	/* Not Control Q */
-			/* could be abort character */
-			spin_flush();
-			if (tty_can_sync == SYNC_TESTED) {
-				(void) tty_sync_error();
-			} else {
-				put_str("\n? ");
-			}
-		}
-	}
-	return '?';
-}
-
-
-/*
-**	read_string(buffer, length)
-**
-**	Read a string of characters from the input stream.
-*/
-void
-read_string(
-	char *buf,
-	int length)
-{
-	int ch, i;
-
-	for (i = 0; i < length - 1; ) {
-		ch = getchp(STRIP_PARITY);
-		if (ch == '\r' || ch == '\n') {
-			break;
-		}
-		if (ch == '\b' || ch == 127) {
-			if (i) {
-				putchp('\b');
-				putchp(' ');
-				putchp('\b');
-				i--;
-			}
-		} else {
-			buf[i++] = ch;
-			putchp(ch);
-		}
-	}
-	buf[i] = '\0';
-	put_crlf();
-	char_sent = 0;
-}
-
-/*
-**	maybe_wait(lines)
-**
-**	wait if near the end of the screen, then clear screen
-*/
-void 
-maybe_wait(int n)
-{
-	if (line_count + n >= lines) {
-		if (char_sent != 0) {
-			ptext("Go? ");
-			(void) wait_here();
-		}
-		put_clear();
-	} else {
-		put_crlf();
-	}
-}
diff -Naur ncurses-5.6.orig/tack/pad.c ncurses-5.6/tack/pad.c
--- ncurses-5.6.orig/tack/pad.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/pad.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,1958 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: pad.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
-
-/* test the pad counts on the terminal */
-
-static void pad_standard(struct test_list *, int *, int *);
-static void init_xon_xoff(struct test_list *, int *, int *);
-static void init_cup(struct test_list *, int *, int *);
-static void pad_rmxon(struct test_list *, int *, int *);
-static void pad_home1(struct test_list *, int *, int *);
-static void pad_home2(struct test_list *, int *, int *);
-static void pad_clear(struct test_list *, int *, int *);
-static void pad_ech(struct test_list *, int *, int *);
-static void pad_el1(struct test_list *, int *, int *);
-static void pad_el(struct test_list *, int *, int *);
-static void pad_smdc(struct test_list *, int *, int *);
-static void pad_dch(struct test_list *, int *, int *);
-static void pad_dch1(struct test_list *, int *, int *);
-static void pad_smir(struct test_list *, int *, int *);
-static void pad_ich(struct test_list *, int *, int *);
-static void pad_ich1(struct test_list *, int *, int *);
-static void pad_xch1(struct test_list *, int *, int *);
-static void pad_rep(struct test_list *, int *, int *);
-static void pad_cup(struct test_list *, int *, int *);
-static void pad_hd(struct test_list *, int *, int *);
-static void pad_hu(struct test_list *, int *, int *);
-static void pad_rin(struct test_list *, int *, int *);
-static void pad_il(struct test_list *, int *, int *);
-static void pad_indn(struct test_list *, int *, int *);
-static void pad_dl(struct test_list *, int *, int *);
-static void pad_xl(struct test_list *, int *, int *);
-static void pad_scrc(struct test_list *, int *, int *);
-static void pad_csrind(struct test_list *, int *, int *);
-static void pad_sccsrrc(struct test_list *, int *, int *);
-static void pad_csr_nel(struct test_list *, int *, int *);
-static void pad_csr_cup(struct test_list *, int *, int *);
-static void pad_ht(struct test_list *, int *, int *);
-static void pad_smso(struct test_list *, int *, int *);
-static void pad_smacs(struct test_list *, int *, int *);
-static void pad_crash(struct test_list *, int *, int *);
-
-/*
-   Any command found in this list, executed from a "Done" prompt
-   will force the default action to repeat rather than next.
-*/
-const char *pad_repeat_test = {"ep-+<>"};
-
-struct test_list pad_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{0, 0, 0, 0, "p) change padding", 0, &change_pad_menu},
-	{0, 0, 0, 0, "@) display statistics about the last test", dump_test_stats, 0},
-	{0, 0, 0, 0, "c) clear screen", menu_clear_screen, 0},
-	{0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
-	{0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
-	{0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
-	{0, 0, 0, 0, txt_longer_augment, longer_augment, 0},
-	{0, 0, 0, 0, txt_shorter_augment, shorter_augment, 0},
-	/***
-	   Phase 1: Test initialization and reset strings.
-	
-	   (rs1) (rs2) (rs3) (is1) (is2) (is3) are very difficult to test.
-	   They have no defined output.  To make matters worse, the cap
-	   builder could partition (rs1) (rs2) (rs3) by length, leaving the
-	   terminal in some unknown state between (rs1) and (rs2) or between
-	   (r2) and (rs3).  Some reset strings clear the screen when done.
-	
-	   We have no control over this.  The only thing we can do for
-	   certain is to test the pad times by checking for overruns.
-	***/
-	{MENU_NEXT, 3, "rs1", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "rs2", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "rs3", 0, 0, pad_standard, 0},
-	{MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_xon_xoff, 0},
-	{MENU_NEXT, 3, "is1", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "is2", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "is3", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "rmxon", "smxon", 0, pad_rmxon, 0},
-	{MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_cup, 0},
-	/*
-	   Phase 2: Test home, screen clears and erases.
-	*/
-	{MENU_NEXT, 0, "home", 0, 0, pad_home1, 0},
-	{MENU_NEXT, 0, "home) (nel", 0, 0, pad_home2, 0},
-	{MENU_NEXT | 1, 0, "clear", 0, 0, pad_clear, 0},
-	{MENU_NEXT | MENU_LM1, 0, "ed", 0, 0, pad_clear, 0},
-	{MENU_NEXT | MENU_80c, 0, "ech", 0, 0, pad_ech, 0},
-	{MENU_NEXT | MENU_80c, 0, "el1", "cub1 nel", 0, pad_el1, 0},
-	{MENU_NEXT | MENU_10c, 0, "el", "nel", 0, pad_el, 0},
-	/*
-	   Phase 3: Character deletions and insertions
-	*/
-	{MENU_NEXT, 0, "smdc) (rmdc", 0, 0, pad_smdc, 0},
-	{MENU_NEXT | MENU_80c, 0, "dch", "smdc rmdc", 0, pad_dch, 0},
-	{MENU_NEXT | MENU_80c, 0, "dch1", "smdc rmdc", 0, pad_dch1, 0},
-	{MENU_NEXT, 0, "smir) (rmir", 0, 0, pad_smir, 0},
-	{MENU_NEXT | MENU_90c, 0, "ich) (ip", "smir rmir", 0, pad_ich, 0},
-	{MENU_NEXT | MENU_90c, 0, "ich1) (ip", "smir rmir", 0, pad_ich1, 0},
-	{MENU_NEXT, 4, "ich1) (dch1", "smir rmir", 0, pad_xch1, 0},
-	{MENU_NEXT | MENU_90c, 0, "rep", 0, 0, pad_rep, 0},
-	/*
-	   Phase 4: Test cursor addressing pads.
-	*/
-	{MENU_NEXT, 0, "cup", 0, 0, pad_cup, 0},
-	/*
-	   Phase 5: Test scrolling and cursor save/restore.
-	*/
-	{MENU_NEXT, 0, "hd", 0, 0, pad_hd, 0},
-	{MENU_NEXT, 0, "hu", 0, 0, pad_hu, 0},
-	{MENU_NEXT | MENU_LM1 | 1, 0, "rin", 0, 0, pad_rin, 0},
-	{MENU_NEXT, 0, "ri", 0, 0, pad_rin, 0},
-	{MENU_NEXT | MENU_LM1 | 1, 0, "il", 0, 0, pad_il, 0},
-	{MENU_NEXT, 0, "il1", 0, 0, pad_il, 0},
-	{MENU_NEXT | MENU_LM1 | 1, 0, "indn", 0, 0, pad_indn, 0},
-	{MENU_NEXT, 0, "ind", 0, 0, pad_indn, 0},
-	{MENU_NEXT | MENU_LM1 | 1, 0, "dl", 0, 0, pad_dl, 0},
-	{MENU_NEXT, 0, "dl1", 0, 0, pad_dl, 0},
-	{MENU_NEXT, 0, "il1) (dl1", 0, 0, pad_xl, 0},
-	{MENU_NEXT, 0, "sc) (rc", 0, 0, pad_scrc, 0},
-	{MENU_NEXT | MENU_50l, 0, "csr) (ind", 0, 0, pad_csrind, 0},
-	{MENU_NEXT, 0, "sc) (csr) (rc", 0, 0, pad_sccsrrc, 0},
-	{MENU_NEXT, 0, "csr) (nel", "sc rc", 0, pad_csr_nel, 0},
-	{MENU_NEXT, 0, "csr) (cup", 0, 0, pad_csr_cup, 0},
-	/*
-	   Phase 6: Test tabs.
-	*/
-	{MENU_NEXT, 0, "ht", 0, 0, pad_ht, 0},
-	/*
-	   Phase 7: Test character-set-switch pads.
-	*/
-	{MENU_NEXT, 0, "smso) (rmso", 0, 0, pad_smso, 0},
-	{MENU_NEXT, 0, "smacs) (rmacs", 0, 0, pad_smacs, 0},
-	/*
-	   Phase 8: Tests for miscellaneous mode-switch pads.
-	*/
-	{MENU_NEXT, 3, "flash", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "smkx", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "rmkx", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "smm", 0, 0, pad_standard, 0},
-	{MENU_NEXT, 3, "rmm", 0, 0, pad_standard, 0},
-	/*
-	   Phase 9: Test crash-and-burn properties of unpadded (clear).
-	*/
-	{0, 0, "clear", "xon", "k) run clear test with no padding", pad_crash, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/* globals */
-static int hzcc;		/* horizontal character count */
-char letter;			/* current character being displayed */
-int letter_number;		/* points into letters[] */
-int augment, repeats;		/* number of characters (or lines) effected */
-char letters[] = "AbCdefghiJklmNopQrStuVwXyZ";
-
-static char every_line[] = "This text should be on every line.";
-static char all_lines[] = "Each char on any line should be the same.  ";
-static char above_line[] = "The above lines should be all Xs.  ";
-static char no_visual[] = "This loop test has no visual failure indicator.  ";
-
-/*
-**	pad_standard(test_list, status, ch)
-**
-**	Run a single cap pad test.
-*/
-static void
-pad_standard(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	const char *long_name;
-	char *cap;
-	int l = 2, i;
-	char tbuf[128];
-
-	if ((cap = get_string_cap_byname(t->caps_done, &long_name))) {
-		sprintf(tbuf, "(%s) %s, start testing", t->caps_done,
-			long_name);
-		if (skip_pad_test(t, state, ch, tbuf)) {
-			return;
-		}
-		i = 1;
-		pad_test_startup(1);
-		do {
-			if (i >= columns) {
-				page_loop();
-				l++;
-				i = 1;
-			}
-			tt_putp(cap);
-			putchp(letter);
-			i++;
-		} while(still_testing());
-		pad_test_shutdown(t, 0);
-		if (l >= lines) {
-			home_down();
-		} else {
-			put_crlf();
-		}
-		ptextln(no_visual);
-	} else {
-		CAP_NOT_FOUND;
-		/* Note: get_string_cap_byname() always sets long_name */
-		sprintf(temp, "(%s) %s, not present.  ", t->caps_done,
-			long_name);
-		ptext(temp);
-	}
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	init_xon_xoff(test_list, status, ch)
-**
-**	Initialize the xon_xoff values
-*/
-static void
-init_xon_xoff(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	/* the reset strings may dink with the XON/XOFF modes */
-	if (select_xon_xoff == 0 && exit_xon_mode) {
-		tc_putp(exit_xon_mode);
-	}
-	if (select_xon_xoff == 1 && enter_xon_mode) {
-		tc_putp(enter_xon_mode);
-	}
-}
-
-/*
-**	pad_rmxon(test_list, status, ch)
-**
-**	Test (rmxon) exit XON/XOFF mode
-*/
-static void
-pad_rmxon(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (select_xon_xoff == 0 && exit_xon_mode) {
-		pad_standard(t, state, ch);
-	}
-}
-
-/*
-**	init_cup(test_list, status, ch)
-**
-**	Send the initialization strings for XON/XOFF and (smcup)
-**	Stop pad testing if clear screen is missing.
-*/
-static void
-init_cup(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	init_xon_xoff(t, state, ch);
-	if (enter_ca_mode) {
-		tc_putp(enter_ca_mode);
-	}
-	if (!can_clear_screen) {
-		ptext("(clear) clear screen not present,");
-		ptext(" pad processing terminated.  ");
-		pad_done_message(t, state, ch);
-		if (*ch == 0 || *ch == 'n' || *ch == 's' || *ch == 'r') {
-			*ch = '?';
-		}
-		return;
-	}
-}
-
-/*
-**	pad_home1(test_list, status, ch)
-**
-**	Test (home) when (am) is set.
-*/
-static void
-pad_home1(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j, k;
-
-	if (can_go_home && auto_right_margin) {
-		/*
-		   truly brain damaged terminals will fail this test because
-		   they cannot accept data at full rate
-		*/
-		if (skip_pad_test(t, state, ch, "(home) Home start testing")) {
-			return;
-		}
-		pad_test_startup(1);
-		do {
-			go_home();
-			for (j = 1; j < lines; j++) {
-				for (k = 0; k < columns; k++) {
-					if (k & 0xF) {
-						put_this(letter);
-					} else {
-						put_this('.');
-					}
-				}
-				SLOW_TERMINAL_EXIT;
-			}
-			NEXT_LETTER;
-		} while(still_testing());
-		pad_test_shutdown(t, 0);
-		ptext("All the dots should line up.  ");
-		pad_done_message(t, state, ch);
-		put_clear();
-	}
-}
-
-/*
-**	pad_home2(test_list, status, ch)
-**
-**	Test (home) and (nel).  (am) is reset.
-*/
-static void
-pad_home2(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j, k;
-
-	if (can_go_home) {
-		if (skip_pad_test(t, state, ch,
-			"(home) Home, (nel) newline start testing")) {
-			return;
-		}
-		pad_test_startup(1);
-		do {
-			go_home();
-			for (j = 1; j < lines; j++) {
-				for (k = 2; k < columns; k++) {
-					if (k & 0xF) {
-						put_this(letter);
-					} else {
-						put_this('.');
-					}
-				}
-				put_crlf();	/* this does the (nel) */
-				SLOW_TERMINAL_EXIT;
-			}
-			NEXT_LETTER;
-		} while(still_testing());
-		pad_test_shutdown(t, 0);
-		ptext("All the dots should line up.  ");
-		pad_done_message(t, state, ch);
-		put_clear();
-	}
-}
-
-/*
-**	pad_clear(test_list, status, ch)
-**
-**	Test (clear) and (ed)
-**	run the clear screen tests (also clear-to-end-of-screen)
-**
-**	0) full page
-**	1) sparse page
-**	2) short lines
-**	3) one full line
-**	4) one short line
-*/
-static void
-pad_clear(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	const char *end_message = 0;
-	const char *txt;
-	int j, k, is_clear;
-	int clear_select;		/* select the test number */
-
-	is_clear = t->flags & 1;
-	clear_select = auto_right_margin ? 0 : 1;
-	if (is_clear) {
-		txt = "(clear) clear-screen start testing";
-	} else {
-		if (!clr_eos) {
-			CAP_NOT_FOUND;
-			ptext("(ed) erase-to-end-of-display, not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		txt = "(ed) erase-to-end-of-display start testing";
-	}
-	if (skip_pad_test(t, state, ch, txt)) {
-		return;
-	}
-	if (enter_am_mode) {
-		tc_putp(enter_am_mode);
-		clear_select = 0;
-	}
-	for (; clear_select < 5; clear_select++) {
-		if (augment > lines || is_clear || !cursor_address) {
-			augment = lines;
-		} else {
-			if (augment <= 1) {
-				augment = 2;
-			}
-			if (augment < lines) {
-				put_clear();
-				tt_putparm(cursor_address, 1,
-					lines - augment - 1, 0);
-				ptextln("This line should not be erased (ed)");
-			}
-		}
-		repeats = augment;
-		switch (clear_select) {
-		case 0:
-			end_message = "Clear full screen.  ";
-			break;
-		case 1:
-			end_message = "Clear sparse screen.  ";
-			if (cursor_down) {
-				break;
-			}
-			clear_select++;
-			/* FALLTHRU */
-		case 2:
-			end_message = "Clear one character per line.  ";
-			if (newline) {
-				break;
-			}
-			clear_select++;
-			/* FALLTHRU */
-		case 3:
-			end_message = "Clear one full line.  ";
-			break;
-		case 4:
-			end_message = "Clear single short line.  ";
-			break;
-		}
-		pad_test_startup(0);
-		do {
-			switch (clear_select) {
-			case 0:	/* full screen test */
-				for (j = 1; j < repeats; j++) {
-					for (k = 0; k < columns; k++) {
-						if (k & 0xF) {
-							put_this(letter);
-						} else {
-							put_this('.');
-						}
-					}
-					SLOW_TERMINAL_EXIT;
-				}
-				break;
-			case 1:	/* sparse screen test */
-				for (j = columns - repeats; j > 2; j--) {
-					put_this(letter);
-				}
-				for (j = 2; j < repeats; j++) {
-					tt_putp(cursor_down);
-					put_this(letter);
-				}
-				break;
-			case 2:	/* short lines */
-				for (j = 2; j < repeats; j++) {
-					put_this(letter);
-					tt_putp(newline);
-				}
-				put_this(letter);
-				break;
-			case 3:	/* one full line */
-				for (j = columns - 5; j > 1; j--) {
-					put_this(letter);
-				}
-				break;
-			case 4:	/* one short line */
-				put_str("Erase this!");
-				break;
-			}
-			if (is_clear) {
-				put_clear();
-			} else {
-				if (augment == lines) {
-					go_home();
-				} else {
-					tt_putparm(cursor_address, 1,
-						lines - repeats, 0);
-				}
-				tt_tputs(clr_eos, repeats);
-			}
-			NEXT_LETTER;
-		} while(still_testing());
-		pad_test_shutdown(t, 1);
-		ptext(end_message);
-
-		pad_done_message(t, state, ch);
-
-		if (*ch != 0 && *ch != 'n') {
-			return;
-		}
-	}
-}
-
-/*
-**	pad_ech(test_list, status, ch)
-**
-**	Test (ech) erase characters
-*/
-static void
-pad_ech(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!erase_chars) {
-		CAP_NOT_FOUND;
-		ptext("(ech) Erase-characters, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(ech) Erase-characters start testing")) {
-		return;
-	}
-	if (augment > columns - 2) {
-		augment = columns - 2;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			for (j = 0; j <= repeats; j++) {
-				putchp(letter);
-			}
-			put_cr();
-			tt_putparm(erase_chars, repeats, repeats, 0);
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		for (i = 1; i <= repeats; i++) {
-			putchp(' ');
-		}
-		putchp(letter);
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_el1(test_list, status, ch)
-**
-**	Test (el1) erase to start of line also (cub1) and (nel)
-*/
-static void
-pad_el1(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!clr_bol) {
-		CAP_NOT_FOUND;
-		ptext("(el1) Erase-to-beginning-of-line, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(el1) Erase-to-beginning-of-line start testing")) {
-		return;
-	}
-	if (augment > columns - 2) {
-		augment = columns - 2;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			for (j = 0; j <= repeats; j++) {
-				putchp(letter);
-			}
-			tt_putp(cursor_left);
-			tt_putp(cursor_left);
-			tt_tputs(clr_bol, repeats);
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		for (i = 1; i <= repeats; i++) {
-			putchp(' ');
-		}
-		putchp(letter);
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_el(test_list, status, ch)
-**
-**	Test (el) clear to end of line also (nel)
-*/
-static void
-pad_el(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!clr_eol) {
-		CAP_NOT_FOUND;
-		ptext("(el) Clear-to-end-of-line, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(el) Clear-to-end-of-line start testing")) {
-		return;
-	}
-	hzcc = columns * 8 / 10;	/* horizontal character count */
-	if (augment > hzcc) {
-		augment = hzcc;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			for (j = -1; j < augment; j++) {
-				putchp(letter);
-			}
-			put_cr();
-			putchp(letter);
-			tt_putp(clr_eol);
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		putchp(letter);
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_smdc(test_list, status, ch)
-**
-**	Test (smdc) (rmdc) Delete mode
-*/
-static void
-pad_smdc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (!enter_delete_mode) {
-		CAP_NOT_FOUND;
-		ptext("(smdc) Enter-delete-mode");
-		if (!exit_delete_mode) {
-			ptext(", (rmdc) Exit-delete-mode");
-		}
-		ptext(", not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(smdc) (rmdc) Enter/Exit-delete-mode start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		page_loop();
-		for (i = 1; i < columns; i++) {
-			tt_putp(enter_delete_mode);
-			tt_putp(exit_delete_mode);
-			putchp(letter);
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(no_visual);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_dch(test_list, status, ch)
-**
-**	Test (smdc) (rmdc) Delete mode and (dch)
-*/
-static void
-pad_dch(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!parm_dch) {
-		CAP_NOT_FOUND;
-		ptext("(dch) Delete-characters, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(dch) Delete-characters start testing")) {
-		return;
-	}
-	hzcc = columns * 8 / 10;	/* horizontal character count */
-	if (augment > hzcc) {
-		augment = hzcc;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			for (j = 0; j <= repeats; j++) {
-				putchp(letter);
-			}
-			put_cr();
-			tt_putp(enter_delete_mode);
-			tt_putparm(parm_dch, repeats, repeats, 0);
-			tt_putp(exit_delete_mode);
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		putchp(letter);
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_dch1(test_list, status, ch)
-**
-**	Test (smdc) (rmdc) Delete mode and (dch1)
-*/
-static void
-pad_dch1(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!delete_character) {
-		if (parm_dch) {
-			/* if the other one is defined then its OK */
-			return;
-		}
-		CAP_NOT_FOUND;
-		ptext("(dch1) Delete-character, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(dch1) Delete-character start testing")) {
-		return;
-	}
-	hzcc = columns * 8 / 10;	/* horizontal character count */
-	if (augment > hzcc) {
-		augment = hzcc;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			for (j = -1; j < augment; j++) {
-				putchp(letter);
-			}
-			put_cr();
-			tt_putp(enter_delete_mode);
-			for (j = 0; j < augment; j++) {
-				tt_putp(delete_character);
-			}
-			tt_putp(exit_delete_mode);
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		putchp(letter);
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_smir(test_list, status, ch)
-**
-**	Test (smir) (rmir) Insert mode
-*/
-static void
-pad_smir(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (!enter_insert_mode) {
-		CAP_NOT_FOUND;
-		ptext("(smir) Enter-insert-mode");
-		if (!exit_insert_mode) {
-			ptext(", (rmir) Exit-insert-mode");
-		}
-		ptext(", not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(smir) (rmir) Enter/Exit-insert-mode start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		page_loop();
-		for (i = 1; i < columns; i++) {
-			tt_putp(enter_insert_mode);
-			tt_putp(exit_insert_mode);
-			putchp(letter);
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(no_visual);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_ich(test_list, status, ch)
-**
-**	Test (smir) (rmir) Insert mode and (ich) and (ip)
-*/
-static void
-pad_ich(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!parm_ich) {
-		CAP_NOT_FOUND;
-		ptext("(ich) Insert-characters, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(ich) Insert-characters, (ip) Insert-padding start testing")) {
-		return;
-	}
-	j = columns * 9 / 10;
-	if (augment > j) {
-		augment = j;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			putchp(letter);
-			put_cr();
-			tt_putp(enter_insert_mode);
-			replace_mode = 0;
-			tt_putparm(parm_ich, repeats, repeats, 0);
-			tt_putp(exit_insert_mode);
-			replace_mode = 1;
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		for (i = 0; i < repeats; i++) {
-			putchp(' ');
-		}
-		putchp(letter);
-		NEXT_LETTER;
-		put_crlf();
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	tc_putp(exit_insert_mode);
-}
-
-/*
-**	pad_ich1(test_list, status, ch)
-**
-**	Test (smir) (rmir) Insert mode and (ich1) and (ip)
-*/
-static void
-pad_ich1(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!insert_character) {
-		CAP_NOT_FOUND;
-		ptext("(ich1) Insert-character, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(ich1) Insert-character, (ip) Insert-padding start testing")) {
-		return;
-	}
-	if (augment > columns - 2) {
-		augment = columns - 2;
-	}
-	pad_test_startup(1);
-	do {
-		put_clear();
-		for (i = 2; i < lines; i++) {
-			putchp(letter);
-			put_cr();
-			tt_putp(enter_insert_mode);
-			replace_mode = 0;
-			if (!insert_padding && !insert_character) {
-				/* only enter/exit is needed */
-				for (j = 0; j < augment; j++) {
-					putchp('.');
-				}
-			} else {
-				for (j = 0; j < augment; j++) {
-					tt_putp(insert_character);
-					putchp('.');
-					tt_putp(insert_padding);
-				}
-			}
-			tt_putp(exit_insert_mode);
-			replace_mode = 1;
-			put_crlf();
-			SLOW_TERMINAL_EXIT;
-		}
-		for (j = 0; j < augment; j++) {
-			putchp('.');
-		}
-		putchp(letter);
-		NEXT_LETTER;
-		put_crlf();
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptext(all_lines);
-	pad_done_message(t, state, ch);
-	tc_putp(exit_insert_mode);
-}
-
-/*
-**	pad_xch1(test_list, status, ch)
-**
-**	Test (ich1) (ip) (dch1)
-*/
-static void
-pad_xch1(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	static char xch1[] =
-	"This line should not be garbled. It should be left justified.";
-
-	if (enter_insert_mode || exit_insert_mode ||
-		enter_delete_mode || exit_delete_mode ||
-		!insert_character || !delete_character) {
-		/* this test is quietly ignored */
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(ich1) Insert-character, (dch1) Delete-character start testing")) {
-		return;
-	}
-	put_crlf();
-	ptext(xch1);
-	put_cr();
-	pad_test_startup(0);
-	do {
-		tt_putp(insert_character);
-		tt_putp(delete_character);
-	} while(still_testing());
-	pad_test_shutdown(t, 1);
-	ptextln(xch1);
-	ptext("The preceding two lines should be the same.  ");
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_rep(test_list, status, ch)
-**
-**	Test (rep) repeat character
-*/
-static void
-pad_rep(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!repeat_char) {
-		CAP_NOT_FOUND;
-		ptext("(rep) Repeat-character, not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(rep) Repeat-character start testing")) {
-		return;
-	}
-	if (augment > columns - 2) {
-		augment = columns - 2;
-	}
-	if (augment < 2) {
-		augment = 2;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (i = 2; i < lines; i++) {
-			tt_putparm(repeat_char, repeats, letter, repeats);
-			put_crlf();
-		}
-		for (j = 0; j < repeats; j++) {
-			putchp(letter);
-		}
-		put_crlf();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptextln(all_lines);
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_cup(test_list, status, ch)
-**
-**	Test (cup) Cursor address
-*/
-static void
-pad_cup(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, l, r, c;
-
-	if (!cursor_address) {
-		CAP_NOT_FOUND;
-		ptext("(cup) Cursor-address not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(cup) Cursor-address start testing")) {
-		return;
-	}
-	put_clear();
-	ptext("Each line should be filled with the same letter.  There should");
-	ptext(" be no gaps, or single letters scattered over the screen.  ");
-	if (char_count + 15 > columns) {
-		put_crlf();
-	}
-	if (((lines - line_count) & 1) == 0) {
-		/* this removes the gap in the middle of the test when the
-		number of lines is odd.  */
-		put_crlf();
-	}
-	r = line_count;
-	c = char_count;
-	l = (columns - 4) >> 1;
-	pad_test_startup(0);
-	do {
-		for (i = 1; i + i + r < lines; i++) {
-			for (j = 0; j <= l; j++) {
-				tt_putparm(cursor_address, 1, r + i, j);
-				putchp(letter);
-				tt_putparm(cursor_address, 1, r + i, l + l + 1 - j);
-				putchp(letter);
-				tt_putparm(cursor_address, 1, lines - i, j);
-				putchp(letter);
-				tt_putparm(cursor_address, 1, lines - i, l + l + 1 - j);
-				putchp(letter);
-			}
-			SLOW_TERMINAL_EXIT;
-		}
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	tt_putparm(cursor_address, 1, line_count = r, char_count = c);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_hd(test_list, status, ch)
-**
-**	Test (hd) Half down
-*/
-static void
-pad_hd(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, k;
-
-	if (!down_half_line) {
-		CAP_NOT_FOUND;
-		ptext("(hd) Half-line-down not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(hd) Half-line-down start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		for (i = 1; i < columns; i += 2) {
-			for (j = 1; j < i; ++j) {
-				putchp(' ');
-			}
-			tt_putp(down_half_line);
-			for (k = lines + lines; k > 4; k--) {
-				if (j++ >= columns) {
-					break;
-				}
-				tt_putp(down_half_line);
-				putchp(letter);
-			}
-			go_home();
-			SLOW_TERMINAL_EXIT;
-		}
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_hu(test_list, status, ch)
-**
-**	Test (hu) Half line up
-*/
-static void
-pad_hu(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j, k;
-
-	if (!up_half_line) {
-		CAP_NOT_FOUND;
-		ptext("(hu) Half-line-up not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(hu) Half-line-up start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		for (i = 1; i < columns; i += 2) {
-			home_down();
-			for (j = 1; j < i; ++j) {
-				putchp(' ');
-			}
-			tt_putp(up_half_line);
-			for (k = lines + lines; k > 4; k--) {
-				if (j++ >= columns) {
-					break;
-				}
-				tt_putp(up_half_line);
-				putchp(letter);
-			}
-			SLOW_TERMINAL_EXIT;
-		}
-		go_home();
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_rin(test_list, status, ch)
-**
-**	Test (rin) and (ri) Reverse index
-*/
-static void
-pad_rin(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	const char *start_message;
-
-	if (t->flags & 1) {
-		/* rin */
-		if (!parm_rindex) {
-			CAP_NOT_FOUND;
-			ptext("(rin) Scroll-reverse-n-lines not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(rin) Scroll-reverse-n-lines start testing";
-	} else {
-		/* ri */
-		if (!scroll_reverse) {
-			CAP_NOT_FOUND;
-			ptext("(ri) Scroll-reverse not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(ri) Scroll-reverse start testing";
-		augment = 1;
-	}
-	if (skip_pad_test(t, state, ch, start_message)) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		sprintf(temp, "%d\r", test_complete);
-		put_str(temp);
-		if (scroll_reverse && repeats == 1) {
-			tt_putp(scroll_reverse);
-		} else {
-			tt_putparm(parm_rindex, repeats, repeats, 0);
-		}
-	} while(still_testing());
-	put_str("This line should be on the bottom.\r");
-	if (scroll_reverse && augment == 1) {
-		for (i = 1; i < lines; i++) {
-			tt_putp(scroll_reverse);
-		}
-	} else {
-		tt_putparm(parm_rindex, lines - 1, lines - 1, 0);
-	}
-	putln("The screen should have text on the bottom line.");
-	sprintf(temp, "Scroll reverse %d line%s.  ", augment,
-		augment == 1 ? "" : "s");
-	put_str(temp);
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_il(test_list, status, ch)
-**
-**	Test (il) and (il1) Insert line
-*/
-static void
-pad_il(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	const char *start_message;
-
-	if (t->flags & 1) {
-		/* il */
-		if (!parm_insert_line) {
-			CAP_NOT_FOUND;
-			ptext("(il) Insert-lines not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(il) Insert-lines start testing";
-	} else {
-		/* il1 */
-		if (!insert_line) {
-			CAP_NOT_FOUND;
-			ptext("(il1) Insert-line not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(il1) Insert-line start testing";
-		augment = 1;
-	}
-	if (skip_pad_test(t, state, ch, start_message)) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		sprintf(temp, "%d\r", test_complete);
-		put_str(temp);
-		if (insert_line && repeats == 1) {
-			tt_putp(insert_line);
-		} else {
-			tt_putparm(parm_insert_line, repeats, repeats, 0);
-		}
-	} while(still_testing());
-	put_str("This line should be on the bottom.\r");
-	if (insert_line && augment == 1) {
-		for (i = 1; i < lines; i++) {
-			tt_putp(insert_line);
-		}
-	} else {
-		tt_putparm(parm_insert_line, lines - 1, lines - 1, 0);
-	}
-	putln("The screen should have text on the bottom line.");
-	sprintf(temp, "Insert %d line%s.  ", augment,
-		augment == 1 ? "" : "s");
-	put_str(temp);
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-	put_clear();
-}
-
-/*
-**	pad_indn(test_list, status, ch)
-**
-**	Test (indn) and (ind) Scroll forward
-*/
-static void
-pad_indn(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-	const char *start_message;
-
-	if (t->flags & 1) {
-		/* indn */
-		if (!parm_index) {
-			CAP_NOT_FOUND;
-			ptext("(indn) Scroll-forward-n-lines not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(indn) Scroll-forward-n-lines start testing";
-	} else {
-		/* ind */
-		if (!scroll_forward) {
-			CAP_NOT_FOUND;
-			ptext("(ind) Scroll-forward not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		if (over_strike) {
-			ptext("(ind) Scroll-forward not tested on overstrike terminals.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(ind) Scroll-forward start testing";
-		augment = 1;
-	}
-	if (skip_pad_test(t, state, ch, start_message)) {
-		return;
-	}
-	pad_test_startup(1);
-	/* go to the bottom of the screen */
-	home_down();
-	do {
-		sprintf(temp, "%d\r", test_complete);
-		put_str(temp);
-		if (scroll_forward && repeats == 1) {
-			put_ind();
-		} else {
-			tt_putparm(parm_index, repeats, repeats, 0);
-		}
-	} while(still_testing());
-	put_str("This line should be on the top.\r");
-	if (scroll_forward && augment == 1) {
-		for (i = 1; i < lines; i++) {
-			put_ind();
-		}
-	} else {
-		tt_putparm(parm_index, lines - 1, lines - 1, 0);
-	}
-	go_home();
-	sprintf(temp, "\nScroll forward %d line%s.  ", augment,
-		augment == 1 ? "" : "s");
-	put_str(temp);
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_dl(test_list, status, ch)
-**
-**	Test (dl) and (dl1) Delete lines
-*/
-static void
-pad_dl(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i = 0;
-	const char *start_message;
-
-	if (t->flags & 1) {
-		/* dl */
-		if (!parm_delete_line) {
-			CAP_NOT_FOUND;
-			ptext("(dl) Delete-lines not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(dl) Delete-lines start testing";
-	} else {
-		/* dl1 */
-		if (!delete_line) {
-			CAP_NOT_FOUND;
-			ptext("(dl1) Delete-line not present.  ");
-			pad_done_message(t, state, ch);
-			return;
-		}
-		start_message = "(dl1) Delete-line start testing";
-		augment = 1;
-	}
-	if (skip_pad_test(t, state, ch, start_message)) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		sprintf(temp, "%d\r", test_complete);
-		if (augment < lines - 1) {
-			go_home();
-			putln(temp);
-		}
-		put_str(temp);
-		if (delete_line && repeats == 1) {
-			tt_putp(delete_line);
-		} else {
-			tt_putparm(parm_delete_line, repeats, repeats, 0);
-		}
-	} while(still_testing());
-	home_down();
-	put_str("This line should be on the top.");
-	go_home();
-	if (delete_line && augment == 1) {
-		for (i = 1; i < lines; i++) {
-			tt_putp(delete_line);
-		}
-	} else {
-		tt_putparm(parm_delete_line, lines - 1, lines - 1, 0);
-	}
-	sprintf(temp, "\nDelete %d line%s.  ", augment,
-		augment == 1 ? "" : "s");
-	put_str(temp);
-	pad_test_shutdown(t, 0);
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_xl(test_list, status, ch)
-**
-**	Test (il1) Insert and (dl1) Delete lines
-*/
-static void
-pad_xl(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	if (!insert_line && !delete_line) {
-		/* quietly skip this test */
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(il1) Insert-line, (dl1) Delete-line start testing")) {
-		return;
-	}
-	put_clear();
-	putln("\rThis text is written on the first line.");
-	ptext("This sentence begins on the second line.  As this");
-	ptext(" test runs the bottom part of this paragraph will");
-	ptext(" jump up and down.  Don't worry, that's normal.  When");
-	ptext(" the jumping stops, the entire paragraph should");
-	ptext(" still be on the screen and in the same place as when");
-	ptext(" the test started.  If this paragraph has scrolled");
-	ptext(" off the top or bottom of the screen then the test");
-	ptext(" has failed.  Scrolling off the top of the screen");
-	ptext(" usually means that the delete line capability is");
-	ptext(" working better than the insert line capability.  If");
-	ptext(" the text scrolls off the bottom then delete line may");
-	ptext(" be broken.  If parts of the text are missing then");
-	ptext(" you should get professional help.");
-	put_crlf();
-	go_home();
-	put_newlines(2);
-	pad_test_startup(0);
-	do {
-		tt_putp(insert_line);
-		put_cr();
-		tt_putp(delete_line);
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext("The top of the screen should have a paragraph of text.  ");
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_scrc(test_list, status, ch)
-**
-**	Test (sc) (rc) Save/restore cursor
-*/
-static void
-pad_scrc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (!save_cursor || !restore_cursor) {
-		CAP_NOT_FOUND;
-		if (save_cursor) {
-			ptext("(rc) Restore-cursor");
-		} else
-		if (restore_cursor) {
-			ptext("(sc) Save-cursor");
-		} else {
-			ptext("(sc) Save-cursor, (rc) Restore-cursor");
-		}
-		ptext(" not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(sc) (rc) Save/Restore-cursor start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		page_loop();
-		for (i = 1; i < columns; i++) {
-			tt_putp(save_cursor);
-			putchp(letter);
-			tt_putp(restore_cursor);
-			putchp('X');
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(above_line);
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_csrind(test_list, status, ch)
-**
-**	Test (csr) and (ind) Change scroll region and index.
-*/
-static void
-pad_csrind(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (!change_scroll_region) {
-		CAP_NOT_FOUND;
-		ptext("(csr) Change-scroll-region not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(csr) Save/Restore-cursor, (ind) index start testing")) {
-		return;
-	}
-	if (augment < 2) {
-		augment = 2;
-	}
-	if (augment > lines - 1) {
-		augment = lines - 1;
-	}
-	put_clear();
-	ptext("This text is on the top line.");
-	tt_putparm(change_scroll_region, 1, lines - augment, lines - 1);
-	/* go to the bottom of the screen */
-	home_down();
-	pad_test_startup(0);
-	do {
-		sprintf(temp, "%d\r", test_complete);
-		put_str(temp);
-		put_ind();
-	} while(still_testing());
-	ptextln("(csr) is broken.");
-	for (i = augment; i > 1; i--) {
-		put_ind();
-	}
-	pad_test_shutdown(t, 0);
-	ptext("All but top and bottom lines should be blank.  ");
-	pad_done_message(t, state, ch);
-	tt_putparm(change_scroll_region, 1, 0, lines - 1);
-	put_clear();
-}
-
-/*
-**	pad_sccsrrc(test_list, status, ch)
-**
-**	Test (sc) (csr) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_sccsrrc(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i;
-
-	if (!save_cursor || !change_scroll_region || !restore_cursor) {
-		/* quietly ignore this test */
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(sc) (csr) (rc) Save/Change/Restore-cursor, start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		page_loop();
-		for (i = 1; i < columns; i++) {
-			tt_putp(save_cursor);
-			putchp(letter);
-			tt_putparm(change_scroll_region, 1, 0, lines - 1);
-			tt_putp(restore_cursor);
-			putchp('X');
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(above_line);
-	pad_done_message(t, state, ch);
-	tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-**	pad_csr_nel(test_list, status, ch)
-**
-**	Test (sc) (csr) (nel) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_csr_nel(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!save_cursor || !change_scroll_region || !restore_cursor) {
-		/* quietly ignore this test */
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(csr) Change-scroll-region, (nel) newline start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		for (i = 0; i < lines; i++) {
-			for (j = lines - i; j > 0; j--) {
-				put_crlf();
-			}
-			tt_putp(save_cursor);
-			tt_putparm(change_scroll_region, 1, i, lines - 1);
-			tt_putp(restore_cursor);
-			put_str(every_line);
-		}
-		tt_putp(save_cursor);
-		tt_putparm(change_scroll_region, 1, 0, lines - 1);
-		tt_putp(restore_cursor);
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	put_str("  ");
-	pad_done_message(t, state, ch);
-	tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-**	pad_csr_cup(test_list, status, ch)
-**
-**	Test (csr) (cup) Change scroll region and cursor address
-*/
-static void
-pad_csr_cup(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!change_scroll_region || !cursor_address) {
-		/* quietly ignore this test */
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(csr) Change-scroll-region, (cup) cursor-address start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		for (i = 0; i < lines; i++) {
-			for (j = lines - i; j > 0; j--) {
-				put_crlf();
-			}
-			tt_putparm(change_scroll_region, 1, i, lines - 1);
-			tt_putparm(cursor_address, 1, lines - 1, 0);
-			put_str(every_line);
-		}
-		tt_putparm(change_scroll_region, 1, 0, lines - 1);
-		tt_putparm(cursor_address, 1, lines - 1, (int) strlen(every_line));
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	put_str("  ");
-	pad_done_message(t, state, ch);
-	tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-**	pad_ht(test_list, status, ch)
-**
-**	Test (ht) Tabs
-*/
-static void
-pad_ht(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!set_tab && init_tabs <= 0) {
-		CAP_NOT_FOUND;
-		ptext("(ht) Tab not tested.  (hts) Set-tabs and (it) initial-tabs not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch, "(ht) Tab start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		/*
-		   it is not always possible to test tabs with caps
-		   that do not already have padding. The following
-		   test uses a mixed bag of tests in order to avoid
-		   this problem. Note: I do not scroll
-		*/
-		if (auto_right_margin && can_go_home)
-			for (i = 1, go_home(); i < lines - 2; i++) {
-				for (j = 8; j < columns; j += 8) {
-					putchp('\t');
-				}
-				put_str("A        ");
-			}
-		if (cursor_down && can_go_home)
-			for (i = 1, go_home(); i < lines - 2; i++) {
-				for (j = 8; j < columns; j += 8) {
-					putchp('\t');
-				}
-				put_str("D\r");
-				tt_putp(cursor_down);
-			}
-		if (cursor_address)
-			for (i = 1; i < lines - 2; i++) {
-				tt_putparm(cursor_address, 1, i - 1, 0);
-				for (j = 8; j < columns; j += 8) {
-					putchp('\t');
-				}
-				put_str("C");
-			}
-		go_home();
-		for (i = 1; i < lines - 2; i++) {
-			for (j = 8; j < columns; j += 8) {
-				putchp('\t');
-			}
-			putln("N");
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	ptextln("Letters on the screen other than Ns at the right margin indicate failure.");
-	ptext("A-(am) D-(cud1) C-(cup) N-(nel)  ");
-	pad_done_message(t, state, ch);
-}
-
-/*
-**	pad_smso(test_list, status, ch)
-**
-**	Test (smso) (rmso) Enter/exit mode
-*/
-static void
-pad_smso(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	if (!enter_standout_mode || !exit_standout_mode) {
-		CAP_NOT_FOUND;
-		ptext("(smso) (rmso) Enter/Exit-standout-mode not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(smso) (rmso) Enter/Exit-standout-mode start testing")) {
-		return;
-	}
-	/*
-	   In terminals that emulate non-hidden attributes with hidden
-	   attributes, the amount of time that it takes to fill the screen
-	   with an attribute is nontrivial. The following test is designed to
-	   catch those delays
-	*/
-	pad_test_startup(1);
-	do {
-		page_loop();
-		j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
-		for (i = 2 + j + j; i < columns;) {
-			put_mode(enter_standout_mode);
-			i += j + j + 2;
-			putchp('X');
-			put_mode(exit_standout_mode);
-			putchp('X');
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext(above_line);
-	pad_done_message(t, state, ch);
-	put_mode(exit_standout_mode);
-}
-
-/*
-**	pad_smacs(test_list, status, ch)
-**
-**	Test (smacs) (rmacs) Enter/exit altcharset mode
-*/
-static void
-pad_smacs(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int i, j;
-
-	/* test enter even if exit is missing */
-	if (!enter_alt_charset_mode) {
-		CAP_NOT_FOUND;
-		ptext("(smacs) Enter-altcharset-mode not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(smacs) (rmacs) Enter/Exit-altcharset-mode start testing")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		page_loop();
-		j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
-		for (i = 2 + j + j; i < columns;) {
-			put_mode(enter_alt_charset_mode);
-			i += j + j + 2;
-			putchp(letter);
-			put_mode(exit_alt_charset_mode);
-			putchp(letter);
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	home_down();
-	ptext("Every other character is from the alternate character set.  ");
-	pad_done_message(t, state, ch);
-	put_mode(exit_alt_charset_mode);
-}
-
-/*
-**	pad_crash(test_list, status, ch)
-**
-**	Test (clear) without padding
-*/
-static void
-pad_crash(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int save_xon_xoff;
-
-	if (!clear_screen) {
-		ptext("(clear) Clear-screen not present.  ");
-		pad_done_message(t, state, ch);
-		return;
-	}
-	ptext("If you would like to see if the terminal will really lock up.");
-	ptextln("  I will send the clear screen sequence without the pads.");
-	if (skip_pad_test(t, state, ch,
-		"(clear) Clear-screen start crash testing")) {
-		return;
-	}
-	save_xon_xoff = xon_xoff;
-	xon_xoff = 1;
-	pad_test_startup(0);
-	do {
-		put_str("Erase this!");
-		tt_putp(clear_screen);
-	} while(still_testing());
-	xon_xoff = save_xon_xoff;
-	pad_test_shutdown(t, 1);
-	pad_done_message(t, state, ch);
-}
diff -Naur ncurses-5.6.orig/tack/scan.c ncurses-5.6/tack/scan.c
--- ncurses-5.6.orig/tack/scan.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/scan.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,264 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-/* scan mode keyboard support */
-
-#include <tack.h>
-
-MODULE_ID("$Id: scan.c,v 1.5 2005/09/17 19:49:16 tom Exp $")
-
-unsigned scan_max;		/* length of longest scan code */
-char **scan_up, **scan_down, **scan_name;
-unsigned *scan_tested, *scan_length;
-static unsigned *scan_value;
-
-static int shift_state;
-static char *str;
-static int debug_char_count;
-
-#define SHIFT_KEY   0x100
-#define CONTROL_KEY 0x200
-#define META_KEY    0x400
-#define CAPS_LOCK   0x800
-
-static const struct {
-	const char *name;
-	unsigned type;
-}  scan_special[] = {
-	{"<shift>", SHIFT_KEY},
-	{"<left shift>", SHIFT_KEY},
-	{"<right shift>", SHIFT_KEY},
-	{"<control>", CONTROL_KEY},
-	{"<left control>", CONTROL_KEY},
-	{"<right control>", CONTROL_KEY},
-	{"<meta>", META_KEY},
-	{"<left meta>", META_KEY},
-	{"<right meta>", META_KEY},
-	{"<caps lock>", CAPS_LOCK},
-	{"<tab>", '\t'},
-	{"<space>", ' '},
-	{"<return>", '\r'},
-	{"<linefeed>", '\n'},
-	{"<formfeed>", '\f'},
-	{"<backspace>", '\b'},
-	{0, 0}
-};
-
-static void
-scan_blanks(void)
-{				/* scan past the white space */
-	while (*str == ' ' || *str == '\t')
-		str++;
-}
-
-static char *
-smash(void)
-{				/* convert a string to hex */
-	char *s, *t;
-	int ch, i, j;
-
-	t = s = str;
-	for (i = 0; (ch = *str); str++) {
-		if (ch >= '0' && ch <= '9')
-			j = ch - '0';
-		else if (ch >= 'a' && ch <= 'f')
-			j = 10 - 'a' + ch;
-		else if (ch >= 'A' && ch <= 'F')
-			j = 10 - 'A' + ch;
-		else if (ch == ' ' || ch == '\t')
-			break;
-		else
-			continue;
-		if (i) {
-			*s |= j;
-			s++;
-		} else
-			*s = j << 4;
-		i ^= 1;
-	}
-	*s = '\0';
-	return t;
-}
-
-void
-scan_init(char *fn)
-{				/* read the scan mode key definitions */
-	char *s, *sl;
-	FILE *fp;
-	int ch, i, j;
-	unsigned len;
-	char home[512];
-
-	if ((str = getenv("HOME")))
-		strcpy(home, str);
-	else
-		home[0] = '\0';
-	fp = NULL;
-	if ((str = getenv("KEYBOARD"))) {
-		if (!(fp = fopen(str, "r")) && home[0]) {
-			sprintf(temp, "%s/.scan.%s", home, str);
-			fp = fopen(temp, "r");
-		}
-	}
-	if (!fp) {
-		sprintf(temp, ".scan.%s", fn);
-		fp = fopen(temp, "r");
-	}
-	if (!fp && home[0]) {
-		sprintf(temp, "%s/.scan.%s", home, fn);
-		fp = fopen(temp, "r");
-	}
-	if (!fp) {
-		ptext("Unable to open scanfile: ");
-		ptextln(temp);
-		bye_kids(1);
-		return;
-	}
-	/*
-	   scan file format:
-	
-	<down value> <up value> <name>
-	
-	values are in hex. <name> may be any string of characters
-	
-	*/
-	scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN);
-	scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN);
-	scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN);
-	scan_tested = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
-	scan_length = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
-	scan_value = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
-	scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0;
-	str = (char *) malloc(4096);	/* buffer space */
-	sl = str + 4000;	/* an upper limit */
-	scan_max = 1;
-	for (i = 0;;) {
-		for (s = str; (ch = getc(fp)) != EOF;) {
-			if (ch == '\n' || ch == '\r')
-				break;
-			*s++ = ch;
-		}
-		*s++ = '\0';
-		if (ch == EOF)
-			break;
-		if (*str == '#' || *str == '\0')
-			continue;
-		scan_down[i] = smash();
-		scan_blanks();
-		scan_up[i] = smash();
-		scan_blanks();
-		scan_name[i] = str;
-
-		scan_length[i] = strlen(scan_down[i]);
-		len = strlen(scan_up[i]) + scan_length[i];
-		if (len > scan_max)
-			scan_max = len;
-
-		scan_value[i] = UChar(scan_name[i][0]);
-		if (scan_name[i][1])	/* multi-character name */
-			for (j = 0; scan_special[j].name; j++) {
-				if (!strcmp(scan_name[i], scan_special[j].name)) {
-					scan_value[i] = scan_special[j].type;
-					break;
-				}
-			}
-
-		i++;
-		if (str > sl) {
-			str = (char *) malloc(4096);
-			sl = str + 4000;
-		} else
-			str = s;
-	}
-	fclose(fp);
-#ifdef notdef
-	for (i = 0; scan_down[i]; i++) {
-		put_str(hex_expand_to(scan_down[i], 3));
-		put_str(hex_expand_to(scan_up[i], 3));
-		put_str("   ");
-		put_str(scan_name[i]);
-		put_crlf();
-	}
-	(void) wait_here();
-#endif
-}
-
-int
-scan_key(void)
-{				/* read a key and translate scan mode to
-				   ASCII */
-	unsigned i;
-	int j, ch;
-	char buf[64];
-
-	for (i = 1;; i++) {
-		ch = getchar();
-		if (ch == EOF)
-			return EOF;
-		if (debug_fp) {
-			fprintf(debug_fp, "%02X ", ch);
-			debug_char_count += 3;
-			if (debug_char_count > 72) {
-				fprintf(debug_fp, "\n");
-				debug_char_count = 0;
-			}
-		}
-		buf[i - 1] = ch;
-		buf[i] = '\0';
-		if (buf[0] & 0x80) {	/* scan up */
-			for (j = 0; scan_up[j]; j++) {
-				if (i == scan_length[j] &&
-					!strcmp(buf, scan_up[j])) {
-					i = 0;
-					shift_state &= ~scan_value[j];
-					break;
-				}
-			}
-			continue;
-		}
-		for (j = 0; scan_down[j]; j++) {
-			if (i == scan_length[j] && !strcmp(buf, scan_down[j])) {
-				i = 0;
-				shift_state |= scan_value[j];
-				ch = scan_value[j];
-				if (ch == CAPS_LOCK)
-					shift_state ^= SHIFT_KEY;
-				if (ch >= 256)
-					break;
-				if (shift_state & SHIFT_KEY) {
-					if (ch >= 0x60)
-						ch -= 0x20;
-					else if (ch >= 0x30 && ch <= 0x3f)
-						ch -= 0x10;
-				}
-				if (shift_state & CONTROL_KEY) {
-					if ((ch | 0x20) >= 0x60 &&
-						(ch | 0x20) <= 0x7f)
-						ch = (ch | 0x20) - 0x60;
-				}
-				if (shift_state & META_KEY)
-					ch |= 0x80;
-				return ch;
-			}
-		}
-		if (i > scan_max)
-			i = 1;
-	}
-}
diff -Naur ncurses-5.6.orig/tack/sync.c ncurses-5.6/tack/sync.c
--- ncurses-5.6.orig/tack/sync.c	2006-05-06 16:45:48.000000000 -0400
+++ ncurses-5.6/tack/sync.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,436 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id: sync.c,v 1.9 2006/05/06 20:45:48 tom Exp $")
-
-/* terminal-synchronization and performance tests */
-
-static void sync_home(struct test_list *, int *, int *);
-static void sync_lines(struct test_list *, int *, int *);
-static void sync_clear(struct test_list *, int *, int *);
-static void sync_summary(struct test_list *, int *, int *);
-
-static struct test_list sync_test_list[] = {
-	{MENU_NEXT, 0, 0, 0, "b) baud rate test", sync_home, 0},
-	{MENU_NEXT, 0, 0, 0, "l) scroll performance", sync_lines, 0},
-	{MENU_NEXT, 0, 0, 0, "c) clear screen performance", sync_clear, 0},
-	{MENU_NEXT, 0, 0, 0, "p) summary of results", sync_summary, 0},
-	{0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
-	{0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-struct test_menu sync_menu = {
-	0, 'n', 0,
-	"Performance tests", "perf", "n) run standard tests",
-	sync_test, sync_test_list, 0, 0, 0
-};
-
-int tty_can_sync;		/* TRUE if tty_sync_error() returned FALSE */
-static int tty_newline_rate;	/* The number of newlines per second */
-static int tty_clear_rate;	/* The number of clear-screens per second */
-unsigned long tty_cps;		/* The number of characters per second */
-
-#define TTY_ACK_SIZE 64
-
-static int ACK_terminator;	/* terminating ACK character */
-static int ACK_length;		/* length of ACK string */
-static const char *tty_ENQ;	/* enquire string */
-static char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
-
-/*****************************************************************************
- *
- * Terminal synchronization.
- *
- *	These functions handle the messy business of enq-ack handshaking
- *	for timing purposes.
- *
- *****************************************************************************/
-
-int
-tty_sync_error(void)
-{
-	int ch, trouble, ack;
-
-	trouble = FALSE;
-	for (;;) {
-		tt_putp(tty_ENQ);	/* send ENQ */
-		ch = getnext(STRIP_PARITY);
-		event_start(TIME_SYNC);	/* start the timer */
-
-		/*
-		   The timer doesn't start until we get the first character.
-		   After that I expect to get the remaining characters of
-		   the acknowledge string in a short period of time.  If
-		   that is not true then these characters are coming from
-		   the user and we need to send the ENQ sequence out again.
-		*/
-		for (ack = 0; ; ) {
-			if (ack < TTY_ACK_SIZE - 2) {
-				tty_ACK[ack] = ch;
-				tty_ACK[ack + 1] = '\0';
-			}
-			if (ch == ACK_terminator) {
-				return trouble;
-			}
-			if (++ack >= ACK_length) {
-				return trouble;
-			}
-			ch = getnext(STRIP_PARITY);
-			if (event_time(TIME_SYNC) > 400000) {
-				break;
-			}
-		}
-
-		set_attr(0);	/* just in case */
-		put_crlf();
-		if (trouble) {
-			/* The terminal won't sync.  Life is not good. */
-			return TRUE;
-		}
-		put_str(" -- sync -- ");
-		trouble = TRUE;
-	}
-}
-
-/*
-**	flush_input()
-**
-**	Throw away any output.
-*/
-void 
-flush_input(void)
-{
-	if (tty_can_sync == SYNC_TESTED && ACK_terminator >= 0) {
-		(void) tty_sync_error();
-	} else {
-		spin_flush();
-	}
-}
-
-/*
-**	probe_enq_ok()
-**
-**	does the terminal do enq/ack handshaking?
-*/
-static void 
-probe_enq_ok(void)
-{
-	int tc, len, ulen;
-
-	put_str("Testing ENQ/ACK, standby...");
-	fflush(stdout);
-	can_test("u8 u9", FLAG_TESTED);
-
-#ifdef user9
-	tty_ENQ = user9 ? user9 : "\005";
-#else
-	tty_ENQ = "\005";
-#endif
-	tc_putp(tty_ENQ);
-	event_start(TIME_SYNC);	/* start the timer */
-	read_key(tty_ACK, TTY_ACK_SIZE - 1);
-
-	if (event_time(TIME_SYNC) > 400000 || tty_ACK[0] == '\0') {
-		/* These characters came from the user.  Sigh. */
-		tty_can_sync = SYNC_FAILED;
-		ptext("\nThis program expects the ENQ sequence to be");
-		ptext(" answered with the ACK character.  This will help");
-		ptext(" the program reestablish synchronization when");
-		ptextln(" the terminal is overrun with data.");
-		ptext("\nENQ sequence from (u9): ");
-		putln(expand(tty_ENQ));
-		ptext("ACK received: ");
-		putln(expand(tty_ACK));
-#ifdef user8
-		len = user8 ? strlen(user8) : 0;
-#else
-		len = 0;
-#endif
-		sprintf(temp, "Length of ACK %d.  Expected length of ACK %d.",
-			(int) strlen(tty_ACK), len);
-		ptextln(temp);
-#ifdef user8
-		if (len) {
-			temp[0] = user8[len - 1];
-			temp[1] = '\0';
-			ptext("Terminating character found in (u8): ");
-			putln(expand(temp));
-		}
-#endif
-		return;
-	}
-
-	tty_can_sync = SYNC_TESTED;
-	if ((len = strlen(tty_ACK)) == 1) {
-		/* single character acknowledge string */
-		ACK_terminator = tty_ACK[0];
-		ACK_length = 4096;
-		return;
-	}
-	tc = tty_ACK[len - 1];
-#ifdef user8
-	if (user8) {
-		ulen = strlen(user8);
-		if (tc == user8[ulen - 1]) {
-			/* ANSI style acknowledge string */
-			ACK_terminator = tc;
-			ACK_length = 4096;
-			return;
-		}
-	}
-#endif
-	/* fixed length acknowledge string */
-	ACK_length = len;
-	ACK_terminator = -2;
-}
-
-/*
-**	verify_time()
-**
-**	verify that the time tests are ready to run.
-**	If the baud rate is not set then compute it.
-*/
-void
-verify_time(void)
-{
-	int status, ch;
-
-	if (tty_can_sync == SYNC_FAILED) {
-		return;
-	}
-	probe_enq_ok();
-	put_crlf();
-	if (tty_can_sync == SYNC_TESTED) {
-		put_crlf();
-		if (ACK_terminator >= 0) {
-			ptext("ACK terminating character: ");
-			temp[0] = ACK_terminator;
-			temp[1] = '\0';
-			ptextln(expand(temp));
-		} else {
-			sprintf(temp, "Fixed length ACK, %d characters",
-				ACK_length);
-			ptextln(temp);
-		}
-	}
-	if (tty_baud_rate == 0) {
-		sync_home(&sync_test_list[0], &status, &ch);
-	}
-}
-
-/*****************************************************************************
- *
- * Terminal performance tests
- *
- *	Find out how fast the terminal can:
- *	  1) accept characters
- *	  2) scroll the screen
- *	  3) clear the screen
- *
- *****************************************************************************/
-
-/*
-**	sync_home(test_list, status, ch)
-**
-**	Baudrate test
-*/
-static void
-sync_home(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j, k;
-	unsigned long rate;
-
-	if (!cursor_home && !cursor_address && !row_address) {
-		ptext("Terminal can not home cursor.  ");
-		generic_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(home) Start baudrate search")) {
-		return;
-	}
-	pad_test_startup(1);
-	do {
-		go_home();
-		for (j = 1; j < lines; j++) {
-			for (k = 0; k < columns; k++) {
-				if (k & 0xF) {
-					put_this(letter);
-				} else {
-					put_this('.');
-				}
-			}
-			SLOW_TERMINAL_EXIT;
-		}
-		NEXT_LETTER;
-	} while(still_testing());
-	pad_test_shutdown(t, auto_right_margin == 0);
-	/* note:  tty_frame_size is the real framesize times two.
-	   This takes care of half bits. */
-	rate = (tx_cps * tty_frame_size) >> 1;
-	if (rate > tty_baud_rate) {
-		tty_baud_rate = rate;
-	}
-	if (tx_cps > tty_cps) {
-		tty_cps = tx_cps;
-	}
-	sprintf(temp, "%lu characters per second.  Baudrate %d  ", tx_cps, j);
-	ptext(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	sync_lines(test_list, status, ch)
-**
-**	How many newlines/second?
-*/
-static void
-sync_lines(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j;
-
-	if (skip_pad_test(t, state, ch,
-		"(nel) Start scroll performance test")) {
-		return;
-	}
-	pad_test_startup(0);
-	repeats = 100;
-	do {
-		sprintf(temp, "%d", test_complete);
-		put_str(temp);
-		put_newlines(repeats);
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	j = sliding_scale(tx_count[0], 1000000, usec_run_time);
-	if (j > tty_newline_rate) {
-		tty_newline_rate = j;
-	}
-	sprintf(temp, "%d linefeeds per second.  ", j);
-	ptext(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	sync_clear(test_list, status, ch)
-**
-**	How many clear-screens/second?
-*/
-static void
-sync_clear(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	int j;
-
-	if (!clear_screen) {
-		ptext("Terminal can not clear-screen.  ");
-		generic_done_message(t, state, ch);
-		return;
-	}
-	if (skip_pad_test(t, state, ch,
-		"(clear) Start clear-screen performance test")) {
-		return;
-	}
-	pad_test_startup(0);
-	repeats = 20;
-	do {
-		sprintf(temp, "%d", test_complete);
-		put_str(temp);
-		for (j = 0; j < repeats; j++) {
-			put_clear();
-		}
-	} while(still_testing());
-	pad_test_shutdown(t, 0);
-	j = sliding_scale(tx_count[0], 1000000, usec_run_time);
-	if (j > tty_clear_rate) {
-		tty_clear_rate = j;
-	}
-	sprintf(temp, "%d clear-screens per second.  ", j);
-	ptext(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	sync_summary(test_list, status, ch)
-**
-**	Print out the test results.
-*/
-static void
-sync_summary(
-	struct test_list *t,
-	int *state,
-	int *ch)
-{
-	char size[32];
-
-	put_crlf();
-	ptextln("Terminal  size    characters/sec linefeeds/sec  clears/sec");
-	sprintf(size, "%dx%d", columns, lines);
-	sprintf(temp, "%-10s%-11s%11lu   %11d %11d", tty_basename, size,
-		tty_cps, tty_newline_rate, tty_clear_rate);
-	ptextln(temp);
-	generic_done_message(t, state, ch);
-}
-
-/*
-**	sync_test(menu)
-**
-**	Run at the beginning of the pad tests and function key tests
-*/
-void
-sync_test(
-	struct test_menu *menu)
-{
-	control_init();
-	if (tty_can_sync == SYNC_NOT_TESTED) {
-		verify_time();
-	}
-	if (menu->menu_title) {
-		put_crlf();
-		ptextln(menu->menu_title);
-	}
-}
-
-/*
-**	sync_handshake(test_list, status, ch)
-**
-**	Test or retest the ENQ/ACK handshake
-*/
-void
-sync_handshake(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	tty_can_sync = SYNC_NOT_TESTED;
-	verify_time();
-}
diff -Naur ncurses-5.6.orig/tack/sysdep.c ncurses-5.6/tack/sysdep.c
--- ncurses-5.6.orig/tack/sysdep.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/sysdep.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,504 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-/*
- * Operating system dependent functions.  We assume the POSIX API.
- * Note: on strict-POSIX systems (including BSD/OS) the select_delay_type
- * global has no effect.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#endif
-#include <signal.h>	/* include before curses.h to work around glibc bug */
-
-#include <tack.h>
-
-#include <term.h>
-#include <errno.h>
-
-#if defined(__BEOS__)
-#undef false
-#undef true
-#include <OS.h>
-#endif
-
-#if HAVE_SELECT
-#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif
-
-MODULE_ID("$Id: sysdep.c,v 1.15 2005/09/17 19:49:16 tom Exp $")
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#ifdef TERMIOS
-#define PUT_TTY(fd, buf) tcsetattr(fd, TCSAFLUSH, buf)
-#else
-#define PUT_TTY(fd, buf) stty(fd, buf)
-#endif
-
-/* globals */
-int tty_frame_size;		/* asynch frame size times 2 */
-unsigned tty_baud_rate;		/* baud rate - bits per second */
-int not_a_tty;			/* TRUE if output is not a tty (i.e. pipe) */
-int nodelay_read;		/* TRUE if NDELAY is set */
-
-#ifdef TERMIOS
-#define TTY_IS_NOECHO	!(new_modes.c_lflag & ECHO)
-#define TTY_IS_OUT_TRANS (new_modes.c_oflag & OPOST)
-#define TTY_IS_CHAR_MODE !(new_modes.c_lflag & ICANON)
-#define TTY_WAS_CS8 ((old_modes.c_cflag & CSIZE) == CS8)
-#define TTY_WAS_XON_XOFF (old_modes.c_iflag & (IXON|IXOFF))
-#else
-#define TTY_IS_NOECHO	!(new_modes.sg_flags & (ECHO))
-#define TTY_IS_OUT_TRANS (new_modes.sg_flags & (CRMOD))
-#define TTY_IS_CHAR_MODE (new_modes.sg_flags & (RAW|CBREAK))
-#define TTY_WAS_CS8	 (old_modes.sg_flags & (PASS8))
-#define TTY_WAS_XON_XOFF (old_modes.sg_flags & (TANDEM|MDMBUF|DECCTQ))
-#endif
-
-static TTY old_modes, new_modes;
-
-void catchsig(void);
-
-/*
- * These are a sneaky way of conditionalizing bit unsets so strict-POSIX
- * systems won't see them.
- */
-#ifndef XCASE
-#define XCASE	0
-#endif
-#ifndef OLCUC
-#define OLCUC	0
-#endif
-#ifndef IUCLC
-#define IUCLC	0
-#endif
-#ifndef TABDLY
-#define	TABDLY	0
-#endif
-#ifndef IXANY
-#define	IXANY	0
-#endif
-
-void
-tty_raw(int minch GCC_UNUSED, int mask)
-{				/* set tty to raw noecho */
-	new_modes = old_modes;
-#ifdef TERMIOS
-#if HAVE_SELECT
-	new_modes.c_cc[VMIN] = 1;
-#else
-	new_modes.c_cc[VMIN] = minch;
-#endif
-	new_modes.c_cc[VTIME] = 2;
-	new_modes.c_lflag &=
-		~(ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK | ECHONL);
-#ifdef LOBLK
-	new_modes.c_lflag &= ~LOBLK;
-#endif
-	new_modes.c_oflag &= ~(OPOST | OLCUC | TABDLY);
-	if (mask == ALLOW_PARITY) {
-		new_modes.c_cflag &= ~(CSIZE | PARENB | HUPCL);
-		new_modes.c_cflag |= CS8;
-	}
-	new_modes.c_iflag &=
-		~(IGNBRK | BRKINT | IGNPAR | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL |
-		IUCLC | IXON | IXANY | IXOFF);
-#else
-	new_modes.sg_flags |= RAW;
-#endif
-	if (not_a_tty)
-		return;
-	PUT_TTY(fileno(stdin), &new_modes);
-}
-
-void 
-tty_set(void)
-{				/* set tty to special modes */
-	new_modes = old_modes;
-#ifdef TERMIOS
-	new_modes.c_cc[VMIN] = 1;
-	new_modes.c_cc[VTIME] = 1;
-	new_modes.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHONL);
-#if defined(ONLCR) && defined(OCRNL) && defined(ONLRET) && defined(OFILL)
-	new_modes.c_oflag &= ~(ONLCR | OCRNL | ONLRET | OFILL);
-#else
-	new_modes.c_oflag &= ~(OPOST);
-#endif
-	if (char_mask == ALLOW_PARITY)
-		new_modes.c_iflag &= ~ISTRIP;
-	switch (select_xon_xoff) {
-	case 0:
-		new_modes.c_iflag &= ~(IXON | IXOFF);
-		break;
-	case 1:
-#if defined(sequent) && sequent
-		/* the sequent System V emulation is broken */
-		new_modes = old_modes;
-		new_modes.c_cc[VEOL] = 6;	/* control F  (ACK) */
-#endif
-		new_modes.c_iflag |= IXON | IXOFF;
-		break;
-	}
-	switch (select_delay_type) {
-	case 0:
-#ifdef NLDLY
-		new_modes.c_oflag &=
-			~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif	/* NLDLY */
-		break;
-	case 1:
-#ifdef NLDLY
-		new_modes.c_oflag &=
-			~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif	/* NLDLY */
-#ifdef NL1
-		new_modes.c_oflag |= NL1 | CR2;
-#endif	/* NL1 */
-		break;
-	}
-	if (!(new_modes.c_oflag & (unsigned long) ~OPOST))
-		new_modes.c_oflag &= (unsigned long) ~OPOST;
-#else
-	new_modes.sg_flags |= RAW;
-	if (not_a_tty)
-		return;
-#endif
-	PUT_TTY(fileno(stdin), &new_modes);
-}
-
-
-void 
-tty_reset(void)
-{				/* reset the tty to the original modes */
-	fflush(stdout);
-	if (not_a_tty)
-		return;
-	PUT_TTY(fileno(stdin), &old_modes);
-}
-
-
-void 
-tty_init(void)
-{				/* ATT terminal init */
-#if defined(F_GETFL) && defined(O_NDELAY)
-	int flags;
-
-	flags = fcntl(fileno(stdin), F_GETFL, 0);
-	nodelay_read = flags & O_NDELAY;
-#else
-	nodelay_read = FALSE;
-#endif
-	not_a_tty = FALSE;
-	if (GET_TTY(fileno(stdin), &old_modes) == -1) {
-		if (errno == ENOTTY) {
-			tty_frame_size = 20;
-			not_a_tty = TRUE;
-			return;
-		}
-		printf("tcgetattr error: %d\n", errno);
-		exit(1);
-	}
-	/* if TAB3 is set then setterm() wipes out tabs (ht) */
-	new_modes = old_modes;
-#ifdef TERMIOS
-#ifdef TABDLY
-	new_modes.c_oflag &= ~TABDLY;
-#endif	/* TABDLY */
-#endif
-	if (PUT_TTY(fileno(stdin), &new_modes) == -1) {
-		printf("tcsetattr error: %d\n", errno);
-		exit(1);
-	}
-#ifdef sequent
-	/* the sequent ATT emulation is broken soooo. */
-	old_modes.c_cflag &= ~(CSIZE | CSTOPB);
-	old_modes.c_cflag |= CS7 | PARENB;
-#endif
-	catchsig();
-#ifdef TERMIOS
-	switch (old_modes.c_cflag & CSIZE) {
-#if defined(CS5) && (CS5 != 0)
-	case CS5:
-		tty_frame_size = 10;
-		break;
-#endif
-#if defined(CS6) && (CS6 != 0)
-	case CS6:
-		tty_frame_size = 12;
-		break;
-#endif
-#if defined(CS7) && (CS7 != 0)
-	case CS7:
-		tty_frame_size = 14;
-		break;
-#endif
-#if defined(CS8) && (CS8 != 0)
-	case CS8:
-		tty_frame_size = 16;
-		break;
-#endif
-	}
-	tty_frame_size += 2 +
-		((old_modes.c_cflag & PARENB) ? 2 : 0) +
-		((old_modes.c_cflag & CSTOPB) ? 4 : 2);
-#else
-	tty_frame_size = 6 +
-		(old_modes.sg_flags & PASS8) ? 16 : 14;
-#endif
-}
-
-/*
-**	stty_query(question)
-**
-**	Does the current driver settings have this property?
-*/
-int
-stty_query(int q)
-{
-	switch (q) {
-		case TTY_NOECHO:
-		return TTY_IS_NOECHO;
-	case TTY_OUT_TRANS:
-		return TTY_IS_OUT_TRANS;
-	case TTY_CHAR_MODE:
-		return TTY_IS_CHAR_MODE;
-	}
-	return (-1);
-}
-
-/*
-**	initial_stty_query(question)
-**
-**	Did the initial driver settings have this property?
-*/
-int
-initial_stty_query(int q)
-{
-	switch (q) {
-	case TTY_8_BIT:
-		return TTY_WAS_CS8;
-	case TTY_XON_XOFF:
-		return TTY_WAS_XON_XOFF;
-	}
-	return (-1);
-}
-
-#if HAVE_SELECT && defined(FD_ZERO)
-static int
-char_ready(void)
-{
-	int n;
-	fd_set ifds;
-	struct timeval tv;
-
-	FD_ZERO(&ifds);
-	FD_SET(fileno(stdin), &ifds);
-	tv.tv_sec = 0;
-	tv.tv_usec = 200000;
-	n = select(fileno(stdin)+1, &ifds, NULL, NULL, &tv);
-	return (n != 0);
-}
-
-#else
-#ifdef FIONREAD
-int
-char_ready(void)
-{
-	int i, j;
-
-	/* the following loop has to be tuned for each computer */
-	for (j = 0; j < 1000; j++) {
-		ioctl(fileno(stdin), FIONREAD, &i);
-		if (i)
-			return i;
-	}
-	return i;
-}
-
-#else
-#if defined(__BEOS__)
-int
-char_ready(void)
-{
-	int n = 0;
-	int howmany = ioctl(0, 'ichr', &n);
-	return (howmany >= 0 && n > 0);
-}
-#else
-#define char_ready() 1
-#endif
-#endif
-#endif
-
-/*
-**	spin_flush()
-**
-**	Wait for the input stream to stop.
-**	Throw away all input characters.
-*/
-void
-spin_flush(void)
-{
-	unsigned char buf[64];
-
-	fflush(stdout);
-	event_start(TIME_FLUSH);	/* start the timer */
-	do {
-		if (char_ready()) {
-			(void) read(fileno(stdin), &buf, sizeof(buf));
-		}
-	} while (event_time(TIME_FLUSH) < 400000);
-}
-
-/*
-**	read_key(input-buffer, length-of-buffer)
-**
-**	read one function key from the input stream.
-**	A null character is converted to 0x80.
-*/
-void 
-read_key(char *buf, int max)
-{
-	int got, ask, i, l;
-	char *s;
-
-	*buf = '\0';
-	s = buf;
-	fflush(stdout);
-	/* ATT unix may return 0 or 1, Berkeley Unix should be 1 */
-	while (read(fileno(stdin), s, 1) == 0);
-	++s;
-	--max;
-	while (max > 0 && (ask = char_ready())) {
-		if (ask > max) {
-			ask = max;
-		}
-		if ((got = read(fileno(stdin), s, (unsigned) ask))) {
-			s += got;
-		} else {
-			break;
-		}
-		max -= got;
-	}
-	*s = '\0';
-	l = s - buf;
-	for (s = buf, i = 0; i < l; i++) {
-		if ((*s & 0x7f) == 0) {
-			/* convert nulls to 0x80 */
-			*(unsigned char *)s = 128;
-		} else {
-			/* strip high order bits (if any) */
-			*s &= char_mask;
-		}
-	}
-}
-
-
-void 
-ignoresig(void)
-{
-	/* ignore signals */
-	signal(SIGINT, SIG_IGN);
-	signal(SIGHUP, SIG_IGN);
-	signal(SIGQUIT, SIG_IGN);
-	signal(SIGTERM, SIG_IGN);
-	signal(SIGALRM, SIG_IGN);
-}
-
- /*
-    onintr( )
- 
- is the interrupt handling routine onintr turns off interrupts while doing
-    clean-up
- 
- onintr always exits fatally
- */
-
-
-static RETSIGTYPE 
-onintr(int sig GCC_UNUSED)
-{
-	ignoresig();
-	tty_reset();
-	exit(1);
-}
-
-
- /*
-    catchsig( )
- 
- set up to field interrupts (via function onintr( )) so that if interrupted
-    we can restore the correct terminal modes
- 
- catchsig simply returns
- */
-
-
-void 
-catchsig(void)
-{
-	if ((signal(SIGINT, SIG_IGN)) == SIG_DFL)
-		signal(SIGINT, onintr);
-
-	if ((signal(SIGHUP, SIG_IGN)) == SIG_DFL)
-		signal(SIGHUP, onintr);
-
-	if ((signal(SIGQUIT, SIG_IGN)) == SIG_DFL)
-		signal(SIGQUIT, onintr);
-
-	if ((signal(SIGTERM, SIG_IGN)) == SIG_DFL)
-		signal(SIGTERM, onintr);
-
-}
-
-/*
-**	alarm_event(sig)
-**
-**	Come here for an alarm event
-*/
-static void
-alarm_event(
-	int sig GCC_UNUSED)
-{
-	no_alarm_event = 0;
-}
-
-/*
-**	set_alarm_clock(seconds)
-**
-**	Set the alarm clock to fire in <seconds>
-*/
-void
-set_alarm_clock(
-	int seconds)
-{
-	signal(SIGALRM, alarm_event);
-	no_alarm_event = 1;
-	(void) alarm((unsigned) seconds);
-}
diff -Naur ncurses-5.6.orig/tack/tack.1 ncurses-5.6/tack/tack.1
--- ncurses-5.6.orig/tack/tack.1	2006-04-22 18:26:55.000000000 -0400
+++ ncurses-5.6/tack/tack.1	1969-12-31 19:00:00.000000000 -0500
@@ -1,340 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,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.                                                           *
-.\"***************************************************************************
-.\"
-.\" $Id: tack.1,v 1.3 2006/04/22 22:26:55 tom Exp $
-.TH tack 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtack\fR - \fIterminfo\fR action checker
-.SH SYNOPSIS
-\fBtack\fR [-itV] [term]
-.br
-.SH DESCRIPTION
-The \fBtack\fR program has three purposes:
-(1) to help you build a new terminfo entry describing an unknown terminal,
-(2) to test the correctness of an existing entry, and
-(3) to develop the correct pad timings needed to ensure that screen updates
-don't fall behind the incoming data stream.
-.PP
-\fBTack\fR presents a series of screen-painting and interactive
-tests in ways which are intended to make any mismatches between the
-terminfo entry and reality visually obvious. 
-\fBTack\fR also provides tools that can help in understanding how
-the terminal operates.
-.SS OPTIONS
-.TP
-.I "\-i"
-Usually \fBtack\fR will send the reset and init strings to the terminal
-when the program starts up.  The \fI-i\fR option will inhibit the
-terminal initialization.
-.TP
-.I "\-t"
-Tell \fBtack\fR to override the terminfo settings for basic terminal
-functions.  When this option is set \fBtack\fR will translate
-(cr) to \\r, (cud1) to \\n, (ind) to \\n, (nel) to \\r\\n,
-(cub1) to \\b, (bel) to \\007, (ff) to \\f and (ht) to \\t.
-.TP
-.I "\-V"
-Display the version information and exit.
-.TP
-.I "term"
-Terminfo terminal name to be tested.  If not present then the $TERM
-environment variable will be used.
-.SH OVERVIEW
-Since \fBtack\fR is designed to test terminfo's it is not possible
-to rely on the correctness of the terminfo data base.  Because of this
-the menuing system used with \fBtack\fR is vary primitive.  When a
-menu is printed it will scroll the entire screen.  To compensate
-for this verbose menu system \fBtack\fR permits menu selection
-type ahead.
-If you already know what action you would like \fBtack\fR to perform
-then you can enter that value immediately and avoid the menu display.
-When in doubt the question mark (?) is a good character to type.
-A carriage return will execute the default action.  These default
-actions are designed to run all the standard tests.
-.PP
-When \fBtack\fR first comes up it will display some basic information
-about the terminal.  Take some time to verify this information.
-If it is wrong many of the subsequent tests will fail.  The most
-important item is the screen size.  If the screen size is wrong there
-is no point in proceeding.  (home) and (clear) are also critical
-to the success of subsequent tests.  The values of (cr) (ind)
-(cub1) and (ht) may effect the tests if they are defined incorrectly.
-If they are undefined \fBtack\fR will set them to reasonable defaults.
-The last two entries on the display are the enquire and acknowledge strings.
-These strings are taken from the user strings (u9) and (u8).
-.PP
-By now you must be wondering why the terminfo names are enclosed
-in parenthesis.  This has no profound meaning other than it makes
-them stand out.  The \fBtack\fR program uses this convention any time
-it displays a terminfo name.  Remember \fBtack\fR is designed to
-rely on as little of the terminfo entry as possible.
-.SH CREATING NEW ENTRIES
-\fBTack\fR has a number of tools that are designed to help gather
-information about the terminal.  Although these functions are not
-dependent on terminal type, you may wish to execute \fBtack\fR
-with options \fI\-it\fR.  This will turn off initialization
-and default the standard entries.
-.PP
-These tools may be reached from the main menu by selecting
-the 'tools' entry.
-.PP
-\fBEcho tool\fR:  All data typed from the keyboard will be echoed back
-to the terminal.  Control characters are not translated to the up arrow format
-but are sent as control characters.  This allows you to test an escape
-sequence and see what it actually does.  You may also elect to
-\fBenable hex output on echo tool\fR this will echo the characters in
-hexadecimal.  Once the test is running you may enter the 'lines'
-or 'columns' keywords which will display a pattern that will help
-you determine your screen size.  A complete list of keywords will
-be displayed when the test starts.  Type 'help' to redisplay
-the list of available commands.
-.PP
-\fBReply tool\fR:  This tool acts much like the echo tool, but
-control characters that are sent from the terminal more than one character
-after a carriage return will be expanded to the up arrow format.  For example
-on a standard ANSI terminal you may type:
-
-		CR ESC [ c
-
-and the response will be echoed as something like:
-
-		^[ [ ? 6 c
-.PP
-\fBANSI sgr display\fR:  This test assumes you have an ANSI terminal.  It
-goes through attribute numbers 0 to 79, displaying each in turn and using that
-SGR number to write the text.  This shows you which of the SGR
-modes are actually implemented by the terminal.  Note: some terminals (such as
-Tektronix color) use the private use characters to augment the functionality of
-the SGR command.  These private use characters may be interjected into the
-escape sequence by typing the character ( <, =, >, ? ) after the original
-display has been shown.
-.PP
-\fBANSI status reports\fR:  This test queries the terminal in standard
-ANSI/VT-100 fashion.  The results of this test may help
-determine what options are supported by your terminal.
-.PP
-\fBANSI character sets\fR:  This test displays the character sets
-available on a ANSI/VT-100 style terminal.
-Character sets on a real VT-100 terminal are usually defined
-with smacs=\\E(0 and rmacs=\\E(B.  The first character after the
-escape defines the font bank.  The second character defines the
-character set.  This test allows you to view any of the possible
-combinations.  Private use character sets are defined by the digits.
-Standard character sets are located in the alphabetic range.
-.SH VERIFYING AN EXISTING ENTRY
-.PP
-You can verify the correctness of an entry with the `begin testing'
-function.  This entry is the default action and will be chosen
-if you hit carriage return (or enter).  This will bring up a
-secondary menu that allows you to select more specific tests.
-.PP
-The general philosophy of the program is, for each capability, to send an
-appropriate test pattern to the terminal then send a description of
-what the user should expect.  Occasionally (as when checking function-key
-capabilities) the program will ask you to enter input for it to check.
-.PP
-If the test fails then you have the option of dynamically changing
-the terminfo entry and re-running the test.  This is done with
-the 'edit terminfo' menu item.  The edit submenu allows you to change
-the offending terminfo entry and immediately retest the capability.
-The edit menu lets you do other things with the terminfo, such as;
-display the entire terminfo entry,
-display which caps have been tested and display which caps cannot
-be tested.  This menu also allows you to write the newly modified
-terminfo to disc.  If you have made any modifications to the
-terminfo \fBtack\fR will ask you if you want to save the file
-to disc before it exits.  The filename will be the same as the terminal name.
-After the program exits you can run the tic(1M) compiler on the
-new terminfo to install it in the terminfo data base.
-.PP
-.SH CORRECTING PAD TIMINGS
-.SS Theory of Overruns and Padding
-.PP
-Some terminals require significant amounts of time (that is, more than one
-transmitted-character interval) to do screen updates that change large
-portions of the screen, such as screen clears, line insertions,
-line deletions, and scrolls (including scrolls triggered by line feeds
-or a write to the lowest, right-hand-most cell of the screen).
-.PP
-If the computer continues to send characters to the terminal while one
-of these time-consuming operations is going on, the screen may be garbled.
-Since the length of a character transmission time varies inversely with
-transmission speed in cps, entries which function at lower speeds may
-break at higher speeds.
-.PP
-Similar problems result if the host machine is simply sending characters at a
-sustained rate faster than the terminal can buffer and process them.  In either
-case, when the terminal cannot process them and can't tell the host to stop
-soon enough, it will just drop them.  The dropped characters could be text,
-escape sequences or the escape character itself, causing some really
-strange-looking displays.  This kind of glitch is called an \fIoverrun\fR.
-.PP
-In terminfo entries, you can attach a \fBpad time\fR to each string capability
-that is a number of milliseconds to delay after sending it.  This will give
-the terminal time to catch up and avoid overruns.
-.PP
-If you are running a software terminal emulator, or you are on an X pseudo-tty,
-or your terminal is on an RS-232C line which correctly handles RTS/CTS
-hardware flow control, then pads are not strictly necessary.  However, some
-display packages (such as ncurses(3X)) use the pad counts to calculate
-the fastest way to implement certain functions.
-For example: scrolling the screen may be faster than deleting the top line.
-.PP
-One common way to avoid overruns is with XON/XOFF handshaking.
-But even this handshake may have problems at high baud rates.
-This is a result of the way XON/XOFF works.  The terminal tells
-the host to stop with an XOFF.  When the host gets this character, it stops
-sending.  However, there is a small amount of time between the stop request and
-the actual stop.  During this window, the terminal must continue to accept
-characters even though it has told the host to stop.  If the terminal sends
-the stop request too late, then its internal buffer will overflow.  If it sends
-the stop character too early, then the terminal is not getting the most
-efficient use out of its internal buffers.  In a real application at high baud
-rates, a terminal could get a dozen or more characters before the host gets
-around to suspending transmission.  Connecting the terminal over a network
-will make the problem much worse.
-.PP
-(RTS/CTS handshaking does not have this problem because the UARTs are
-signal-connected and the "stop flow" is done at the lowest level, without
-software intervention).
-.PP
-.SS Timing your terminal
-.PP
-In order to get accurate timings from your terminal \fBtack\fR 
-needs to know when the terminal has finished processing all the
-characters that were sent.  This requires a different type of handshaking
-than the XON/XOFF that is supported by most terminals.  \fBTack\fR
-needs to send a request to the terminal and wait for its reply.
-Many terminals will respond with an ACK when they receive an ENQ.
-This is the preferred method since the sequence is short.
-ANSI/VT-100 style terminals can mimic this handshake with the
-escape sequence that requests 'primary device attributes'.
-
-   ESC [ c
-
-The terminal will respond with a sequence like:
-
-   ESC [ ? 1 ; 0 c
-
-\fBTack\fR assumes that (u9) is the enquire sequence and that (u8) is the
-acknowledge string.  A VT-100 style terminal could set u9=\\E[c
-and u8=\\E[?1;0c.
-Acknowledge strings fall into two categories. 
-1) Strings with a unique terminating character and,
-2) strings of fixed length.
-The acknowledge string for the VT-100 is of the first type since
-it always ends with the letter 'c'.  Some Tektronics terminals
-have fixed length acknowledge strings.  \fBTack\fR supports both
-types of strings by scanning for the terminating character until
-the length of the expected acknowledge string has arrived.
-(u8) should be set to some typical acknowledge that will be
-returned when (u9) is sent.
-.PP
-\fBTack\fR will test this sequence before running any of the pad
-tests or the function key tests.  \fBTack\fR will ask you the following:
-
-    Hit lower case g to start testing...
-
-After it sends this message it will send the enquire string.
-It will then read characters from the terminal until it sees the
-letter g.
-.PP
-.SS Testing and Repairing Pad Timings
-.PP
-The pad timings in distributed terminfo entries are often incorrect.  One
-major motivation for this program is to make it relatively easy to tune these
-timings.
-.PP
-You can verify and edit the pad timings for a terminal with
-the `test string capabilities'
-function (this is also part of the `normal test sequence' function).
-.PP
-The key to determining pad times is to find out the effective baud rate of
-the terminal.  The effective baud rate determines the number of characters
-per second that the terminal can accept without either handshaking or
-losing data.  This rate is frequently less than the nominal cps rate on the
-RS-232 line.
-.PP
-\fBTack\fR uses the effective baud rate to judge the duration of the test and
-how much a particular escape sequence will perturb the terminal.
-.PP
-Each pad test has two associated variables that can be tweaked to help verify
-the correctness of the pad timings.  One is the pad test length.  The other is
-the pad multiplier, which is used if the pad prefix includes `*'.  In curses
-use, it is often the first parameter of the capability (if there is one).
-For a capability like (dch) or (il) this will be the number of character
-positions or lines affected, respectively.
-.PP
-\fBTack\fR will run the pad tests and display the results to the terminal.
-On capabilities that have multipliers \fBtack\fR will not tell you
-if the pad needs the multiplier or not.  You must make this decision
-yourself by rerunning the test with a different multiplier.
-If the padding changes in proportion to the multiplier than the
-multiplier is required.  If the multiplier has little or no effect on
-the suggested padding then the multiplier is not needed.
-Some capabilities will take several runs to get a good feel for
-the correct values.  You may wish to make the test longer
-to get more accurate results.  System load will also effect the
-results (a heavily loaded system will not stress the
-terminal as much, possibly leading to pad timings that are too short).
-.PP
-.SH NOTE
-The tests done at the beginning of the program are assumed to be correct later
-in the code.  In particular, \fBtack\fR displays the number of lines and
-columns indicated in the terminfo entry as part of its initial output.
-If these values are wrong a large number of tests will fail or give incorrect
-results.
-.SH FILES
-.TP 12
-tack.log
-If logging is enabled then all characters written to the terminal
-will also be written to the log file.  This gives you the ability
-to see how the tests were performed.  This feature is disabled by default.
-.TP 12
-.I "term"
-If you make changes to the terminfo entry \fBtack\fR will save
-the new terminfo to a file.  The file will have the same name
-as the terminal name.
-.SH SEE ALSO
-\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1M), \fBinfocmp\fR(1M).
-You should also have the documentation supplied by the terminal
-manufacturer.
-.SH BUGS
-If the screen size is incorrect, many of the tests will fail.
-.SH AUTHOR
-Concept, design, and original implementation by
-Daniel Weaver <danw@znyx.com>.  Portions of the code and
-documentation are by Eric S. Raymond <esr@snark.thyrsus.com>.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff -Naur ncurses-5.6.orig/tack/tack.c ncurses-5.6/tack/tack.c
--- ncurses-5.6.orig/tack/tack.c	2005-09-17 15:49:16.000000000 -0400
+++ ncurses-5.6/tack/tack.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,603 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id: tack.c,v 1.4 2005/09/17 19:49:16 tom Exp $")
-
-/*
-   This program is designed to test terminfo, not curses.  Therefore
-   I have used as little of curses as possible.
-
-   Pads associated with the following capabilities are used to set
-   delay times in the handler:  (cr), (ind), (cub1), (ff), (tab).
-
-   I use the (nxon) capability to set the tty handler with/without
-   xon/xoff.  If (smxon)/(rmxon) is defined I will change the terminal
-   too.
-
-   (xon) inhibits the sending of delay characters in putp().
-   If the terminal is defined with no padding then the (xon) boolean
-   is a don't care.  In this case I recommend that it be reset.
- */
-
-/*****************************************************************************
- *
- * Option processing
- *
- *****************************************************************************/
-
-/* options and modes */
-int debug_level;		/* debugging level */
-int translate_mode;		/* translate tab, bs, cr, lf, ff */
-int scan_mode;			/* use scan codes */
-int char_mask;			/* either 0xFF else 0x7F, eight bit data mask */
-int select_delay_type;		/* set handler delays for <cr><lf> */
-int select_xon_xoff;		/* TTY driver XON/XOFF mode select */
-int hex_out;			/* Display output in hex */
-int send_reset_init;		/* Send the reset and initialization strings */
-FILE *log_fp;			/* Terminal logfile */
-
-/*****************************************************************************
- *
- * Menu definitions
- *
- *****************************************************************************/
-
-static void tools_hex_echo(struct test_list *, int *, int *);
-static void tools_debug(struct test_list *, int *, int *);
-
-static char hex_echo_menu_entry[80];
-
-static struct test_list tools_test_list[] = {
-	{0, 0, 0, 0, "s) ANSI status reports", tools_status, 0},
-	{0, 0, 0, 0, "g) ANSI SGR modes (bold, underline, reverse)", tools_sgr, 0},
-	{0, 0, 0, 0, "c) ANSI character sets", tools_charset, 0},
-	{0, 0, 0, 0, hex_echo_menu_entry, tools_hex_echo, 0},
-	{0, 0, 0, 0, "e) echo tool", tools_report, 0},
-	{1, 0, 0, 0, "r) reply tool", tools_report, 0},
-	{0, 0, 0, 0, "p) performance testing", 0, &sync_menu},
-	{0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
-	{0, 0, "u8) (u9", 0, "u) test ENQ/ACK handshake", sync_handshake, 0},
-	{0, 0, 0, 0, "d) change debug level", tools_debug, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static struct test_menu tools_menu = {
-	0, 'q', 0, "Tools Menu", "tools",
-	0, 0, tools_test_list, 0, 0, 0
-};
-
-static void tty_width(struct test_list *, int *, int *);
-static void tty_delay(struct test_list *, int *, int *);
-static void tty_xon(struct test_list *, int *, int *);
-static void tty_trans(struct test_list *, int *, int *);
-static void tty_show_state(struct test_menu *);
-
-static char tty_width_menu[80];
-static char tty_delay_menu[80];
-static char tty_xon_menu[80];
-static char tty_trans_menu[80];
-static char enable_xon_xoff[] = {"x) enable xon/xoff"};
-static char disable_xon_xoff[] = {"x) disable xon/xoff"};
-
-static struct test_list tty_test_list[] = {
-	{0, 0, 0, 0, tty_width_menu, tty_width, 0},
-	{0, 0, 0, 0, tty_delay_menu, tty_delay, 0},
-	{0, 0, 0, 0, tty_xon_menu, tty_xon, 0},
-	{0, 0, 0, 0, tty_trans_menu, tty_trans, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static struct test_menu tty_menu = {
-	0, 'q', 0, "Terminal and driver configuration",
-	"tty", 0,
-	tty_show_state, tty_test_list, 0, 0, 0
-};
-
-struct test_menu edit_menu = {
-	0, 'q', 0, "Edit terminfo menu",
-	"edit", 0,
-	0, edit_test_list, 0, 0, 0
-};
-
-static struct test_menu mode_menu = {
-	0, 'n', 0, "Test modes and glitches:",
-	"mode", "n) run standard tests",
-	0, mode_test_list, 0, 0, 0
-};
-
-static struct test_menu acs_menu = {
-	0, 'n', 0,
-	"Test alternate character set and graphics rendition:",
-	"acs", "n) run standard tests",
-	0, acs_test_list, 0, 0, 0
-};
-
-static struct test_menu color_menu = {
-	0, 'n', 0,
-	"Test color:",
-	"color", "n) run standard tests",
-	0, color_test_list, 0, 0, 0
-};
-
-static struct test_menu crum_menu = {
-	0, 'n', 0,
-	"Test cursor movement:",
-	"move", "n) run standard tests",
-	0, crum_test_list, 0, 0, 0
-};
-
-static struct test_menu funkey_menu = {
-	0, 'n', 0,
-	"Test function keys:",
-	"fkey", "n) run standard tests",
-	sync_test, funkey_test_list, 0, 0, 0
-};
-
-static struct test_menu printer_menu = {
-	0, 'n', 0,
-	"Test printer:",
-	"printer", "n) run standard tests",
-	0, printer_test_list, 0, 0, 0
-};
-
-static void pad_gen(struct test_list *, int *, int *);
-
-static struct test_menu pad_menu = {
-	0, 'n', 0,
-	"Test padding and string capabilities:",
-	"pad", "n) run standard tests",
-	sync_test, pad_test_list, 0, 0, 0
-};
-
-static struct test_list normal_test_list[] = {
-	{0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
-	{0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
-	{MENU_NEXT, 0, 0, 0, "x) test modes and glitches", 0, &mode_menu},
-	{MENU_NEXT, 0, 0, 0, "a) test alternate character set and graphic rendition", 0, &acs_menu},
-	{MENU_NEXT, 0, 0, 0, "c) test color", 0, &color_menu},
-	{MENU_NEXT, 0, 0, 0, "m) test cursor movement", 0, &crum_menu},
-	{MENU_NEXT, 0, 0, 0, "f) test function keys", 0, &funkey_menu},
-	{MENU_NEXT, 0, 0, 0, "p) test padding and string capabilities", 0, &pad_menu},
-	{0, 0, 0, 0, "P) test printer", 0, &printer_menu},
-	{MENU_MENU, 0, 0, 0, "/) test a specific capability", 0, 0},
-	{0, 0, 0, 0, "t) auto generate pad delays", pad_gen, &pad_menu},
-	{0, 0, "u8) (u9", 0, 0, sync_handshake, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-
-static struct test_menu normal_menu = {
-	0, 'n', 0, "Main test menu",
-	"test", "n) run standard tests",
-	0, normal_test_list, 0, 0, 0
-};
-
-static void start_tools(struct test_list *, int *, int *);
-static void start_modes(struct test_list *, int *, int *);
-static void start_basic(struct test_list *, int *, int *);
-static void start_log(struct test_list *, int *, int *);
-
-static char logging_menu_entry[80] = "l) start logging";
-
-static struct test_list start_test_list[] = {
-	{0, 0, 0, 0, "b) display basic information", start_basic, 0},
-	{0, 0, 0, 0, "m) change modes", start_modes, 0},
-	{0, 0, 0, 0, "t) tools", start_tools, 0},
-	{MENU_COMPLETE, 0, 0, 0, "n) begin testing", 0, &normal_menu},
-	{0, 0, 0, 0, logging_menu_entry, start_log, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-	
-
-static struct test_menu start_menu = {
-	0, 'n', 0, "Main Menu", "tack", 0,
-	0, start_test_list, 0, 0, 0
-};
-
-static struct test_list write_terminfo_list[] = {
-	{0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
-	{MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*****************************************************************************
- *
- * Menu command interpretation.
- *
- *****************************************************************************/
-
-/*
-**	tools_hex_echo(testlist, state, ch)
-**
-**	Flip the hex echo flag.
-*/
-static void
-tools_hex_echo(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (hex_out) {
-		hex_out = FALSE;
-		strcpy(hex_echo_menu_entry,
-			"h) enable hex output on echo tool");
-	} else {
-		hex_out = TRUE;
-		strcpy(hex_echo_menu_entry,
-			"h) disable hex output on echo tool");
-	}
-}
-
-/*
-**	tools_debug(testlist, state, ch)
-**
-**	Change the debug level.
-*/
-static void
-tools_debug(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	char buf[32];
-
-	ptext("Enter a new value: ");
-	read_string(buf, sizeof(buf));
-	if (buf[0]) {
-		sscanf(buf, "%d", &debug_level);
-	}
-	sprintf(temp, "Debug level is now %d", debug_level);
-	ptext(temp);
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	start_tools(testlist, state, ch)
-**
-**	Run the generic test tools
-*/
-static void
-start_tools(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (hex_out) {
-		strcpy(hex_echo_menu_entry,
-			"h) disable hex output on echo tool");
-	} else {
-		strcpy(hex_echo_menu_entry,
-			"h) enable hex output on echo tool");
-	}
-	menu_display(&tools_menu, 0);
-}
-
-/*
-**	tty_show_state()
-**
-**	Display the current state on the tty driver settings
-*/
-static void
-tty_show_state(
-	struct test_menu *menu GCC_UNUSED)
-{
-	put_crlf();
-	(void) sprintf(temp,
-		"Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %u, translate %s, scan-code mode %s.",
-		(char_mask == ALLOW_PARITY) ? 8 : 7,
-		select_delay_type,
-		select_xon_xoff ? "en" : "dis",
-		tty_baud_rate,
-		translate_mode ? "on" : "off",
-		scan_mode ? "on" : "off");
-	ptextln(temp);
-	put_crlf();
-}
-
-/*
-**	tty_width(testlist, state, ch)
-**
-**	Change the character width
-*/
-static void
-tty_width(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (char_mask == STRIP_PARITY) {
-		char_mask = ALLOW_PARITY;
-		strcpy(tty_width_menu, "7) treat terminal as 7-bit");
-	} else {
-		char_mask = STRIP_PARITY;
-		strcpy(tty_width_menu, "8) treat terminal as 8-bit");
-	}
-}
-
-/*
-**	tty_delay(testlist, state, ch)
-**
-**	Change the delay for <cr><lf> in the TTY driver
-*/
-static void
-tty_delay(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (select_delay_type) {
-		select_delay_type = FALSE;
-		strcpy(tty_delay_menu,
-			"d) enable UNIX tty driver delays for <cr><lf>");
-	} else {
-		select_delay_type = TRUE;
-		strcpy(tty_delay_menu,
-			"d) disable UNIX tty driver delays for <cr><lf>");
-	}
-}
-
-/*
-**	tty_xon(testlist, state, ch)
-**
-**	Change the XON/XOFF flags in the TTY driver
-*/
-static void
-tty_xon(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (select_xon_xoff) {
-		if (needs_xon_xoff) {
-			ptextln("This terminal is marked as needing XON/XOFF protocol with (nxon)");
-		}
-		if (exit_xon_mode) {
-			tc_putp(exit_xon_mode);
-		}
-		xon_xoff = select_xon_xoff = FALSE;
-		strcpy(tty_xon_menu, enable_xon_xoff);
-	} else {
-		if (enter_xon_mode) {
-			tc_putp(enter_xon_mode);
-		}
-		xon_xoff = select_xon_xoff = TRUE;
-		strcpy(tty_xon_menu, disable_xon_xoff);
-	}
-	tty_set();
-}
-
-/*
-**	tty_trans(testlist, state, ch)
-**
-**	Change the translation mode for special characters
-*/
-static void
-tty_trans(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (translate_mode) {
-		translate_mode = FALSE;
-		strcpy(tty_trans_menu,
-			"t) use terminfo values for \\b\\f\\n\\r\\t");
-	} else {
-		translate_mode = TRUE;
-		strcpy(tty_trans_menu,
-			"t) override terminfo values for \\b\\f\\n\\r\\t");
-	}
-}
-
-/*
-**	pad_gen(testlist, state, ch)
-**
-**	Menu function for automatic pad generation
-*/
-static void
-pad_gen(
-	struct test_list *t,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	control_init();
-	if (tty_can_sync == SYNC_NOT_TESTED) {
-		verify_time();
-	}
-	auto_pad_mode = TRUE;
-	menu_display(t->sub_menu, ch);
-	auto_pad_mode = FALSE;
-}
-
-/*
-**	start_modes(testlist, state, ch)
-**
-**	Change the TTY modes
-*/
-static void
-start_modes(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-
-	if (select_delay_type) {
-		strcpy(tty_delay_menu,
-			"d) disable UNIX tty driver delays for <cr><lf>");
-	} else {
-		strcpy(tty_delay_menu,
-			"d) enable UNIX tty driver delays for <cr><lf>");
-	}
-	if (char_mask == ALLOW_PARITY) {
-		strcpy(tty_width_menu,
-			"7) treat terminal as 7-bit");
-	} else {
-		strcpy(tty_width_menu,
-			"8) treat terminal as 8-bit");
-	}
-	if (select_xon_xoff) {
-		strcpy(tty_xon_menu, disable_xon_xoff);
-	} else {
-		strcpy(tty_xon_menu, enable_xon_xoff);
-	}
-	if (translate_mode) {
-		strcpy(tty_trans_menu,
-			"t) override terminfo values for \\b\\f\\n\\r\\t");
-	} else {
-		strcpy(tty_trans_menu,
-			"t) use terminfo values for \\b\\f\\n\\r\\t");
-	}
-	menu_display(&tty_menu, 0);
-	tty_set();
-}
-
-/*
-**	start_basic(testlist, state, ch)
-**
-**	Display basic terminal information
-*/
-static void
-start_basic(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch)
-{
-	display_basic();
-	*ch = REQUEST_PROMPT;
-}
-
-/*
-**	start_log(testlist, state, ch)
-**
-**	Start/stop in logging function
-*/
-static void
-start_log(
-	struct test_list *t GCC_UNUSED,
-	int *state GCC_UNUSED,
-	int *ch GCC_UNUSED)
-{
-	if (logging_menu_entry[5] == 'a') {
-		ptextln("The log file will capture all characters sent to the terminal.");
-		if ((log_fp = fopen("tack.log", "w"))) {
-			ptextln("Start logging to file: tack.log");
-			strcpy(logging_menu_entry, "l) stop logging");
-		} else {
-			ptextln("File open error: tack.log");
-		}
-	} else {
-		if (log_fp) {
-			fclose(log_fp);
-			log_fp = 0;
-		}
-		ptextln("Terminal output logging stopped.");
-		strcpy(logging_menu_entry, "l) start logging");
-	}
-}
-
-/*
-**	show_usage()
-**
-**	Tell the user how its done.
-*/
-void
-show_usage(
-	char *name)
-{
-	(void) fprintf(stderr, "usage: %s [-itV] [term]\n", name);
-}
-
-/*
-**	print_version()
-**
-**	Print version and other useful information.
-*/
-void
-print_version(void)
-{
-	printf("tack version %d.%02d\n", MAJOR_VERSION, MINOR_VERSION);
-	printf("Copyright (C) 1997 Free Software Foundation, Inc.\n");
-	printf("Tack comes with NO WARRANTY, to the extent permitted by law.\n");
-	printf("You may redistribute copies of Tack under the terms of the\n");
-	printf("GNU General Public License.  For more information about\n");
-	printf("these matters, see the file named COPYING.\n");
-}
-
-
-/*****************************************************************************
- *
- * Main sequence
- *
- *****************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
-	int i, j;
-	char *term_variable;
-
-	/* scan the option flags */
-	send_reset_init = TRUE;
-	translate_mode = FALSE;
-	term_variable = getenv("TERM");
-	tty_can_sync = SYNC_NOT_TESTED;
-	for (i = 1; i < argc; i++) {
-		if (argv[i][0] == '-') {
-			for (j = 1; argv[i][j]; j++) {
-				switch (argv[i][j]) {
-				case 'V':
-					print_version();
-					return (1);
-				case 'i':
-					send_reset_init = FALSE;
-					break;
-				case 't':
-					translate_mode = FALSE;
-					break;
-				default:
-					show_usage(argv[0]);
-					return (0);
-				}
-			}
-		} else {
-			term_variable = argv[i];
-		}
-	}
-	(void) strcpy(tty_basename, term_variable);
-
-	curses_setup(argv[0]);
-
-	menu_can_scan(&normal_menu);	/* extract which caps can be tested */
-	menu_display(&start_menu, 0);
-
-	if (user_modified()) {
-		sprintf(temp, "Hit y to save changes to file: %s  ? ",
-			tty_basename);
-		ptext(temp);
-		if (wait_here() == 'y') {
-			save_info(write_terminfo_list, &i, &j);
-		}
-	}
-
-	put_str("\nTerminal test complete\n");
-	bye_kids(0);
-	return (0);
-}
diff -Naur ncurses-5.6.orig/tack/tack.h ncurses-5.6/tack/tack.h
--- ncurses-5.6.orig/tack/tack.h	2006-11-25 18:45:00.000000000 -0500
+++ ncurses-5.6/tack/tack.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,428 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-** 
-** This file is part of TACK.
-** 
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-** 
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-** 
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING.  If not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-** Boston, MA 02110-1301, USA
-*/
-
-/* $Id: tack.h,v 1.16 2006/11/25 23:45:00 tom Exp $ */
-
-#ifndef NCURSES_TACK_H_incl
-#define NCURSES_TACK_H_incl 1
-
-/* terminfo action checker include file */
-
-#define MAJOR_VERSION 1
-#define MINOR_VERSION 1
-
-#ifdef HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#else
-#define RETSIGTYPE void
-#define GCC_UNUSED /*nothing*/
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_SELECT 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_SYS_TIME_SELECT 1
-#endif
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <curses.h>
-#include <term_entry.h>
-#include <nc_tparm.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#if !HAVE_STRSTR
-extern char *_nc_strstr(const char *, const char *);
-#define strstr(h,n) _nc_strstr(h,n)
-#endif
-
-#define CUR_TP      (&(cur_term->type))
-#define MAX_STRINGS NUM_STRINGS(CUR_TP)
-#define STR_NAME(n) ExtStrname(CUR_TP,n,strnames)
-
-#define UChar(c)    ((unsigned char)(c))
-
-extern FILE *log_fp;
-extern FILE *debug_fp;
-extern int debug_level;
-extern char temp[];
-extern char tty_basename[];
-extern char tty_shortname[];
-
-#define SYNC_FAILED	0
-#define SYNC_TESTED	1
-#define SYNC_NOT_TESTED	2
-#define SYNC_NEEDED	3
-
-extern int tty_can_sync;
-extern int total_pads_sent;	/* count pad characters sent */
-extern int total_caps_sent;	/* count caps sent */
-extern int total_printing_characters; /* count printing characters sent */
-extern int no_alarm_event;	/* TRUE if the alarm has not gone off yet */
-extern unsigned long usec_run_time; /* length of last test in microseconds */
-extern int raw_characters_sent;	/* Total output characters */
-
-/* Stopwatch event timers */
-#define TIME_TEST 0
-#define TIME_SYNC 1
-#define TIME_FLUSH 2
-#define MAX_TIMERS 3
-
-/* definitions for pad.c */
-
-#define EXIT_CONDITION (no_alarm_event && (tt_delay_used < tt_delay_max))
-#define SLOW_TERMINAL_EXIT if (!test_complete && !EXIT_CONDITION) { break; }
-#define CAP_NOT_FOUND if (auto_pad_mode) return
-
-extern char letters[26+1];
-#define NEXT_LETTER letter = letters[letter_number =\
-	letters[letter_number + 1] ? letter_number + 1 : 0]
-
-extern int test_complete;	/* counts number of tests completed */
-extern char letter;
-extern int letter_number;
-extern int augment, repeats;
-extern long char_sent;
-extern const char *pad_repeat_test;	/* commands that force repeat */
-
-extern int replace_mode;
-extern int char_count, line_count, expand_chars;
-extern int can_go_home, can_clear_screen;
-
-extern int translate_mode, scan_mode;
-extern int auto_pad_mode;		/* TRUE for auto time tests */
-extern int char_mask;
-extern int hex_out;			/* Display output in hex */
-
-/* Parity bit macros */
-#define STRIP_PARITY 0x7f
-#define ALLOW_PARITY 0xff
-
-/* select_delay_type:	0 -> reset all delays
-			1 -> force long delays
-			2 -> do not change the delays */
-extern int select_delay_type;
-
-/* select_xon_xoff:	0 -> reset xon/xoff
-			1 -> set xon/xoff
-			2 -> do not change xon/xoff */
-extern int select_xon_xoff;
-
-extern int tty_frame_size;
-extern unsigned tty_baud_rate;
-extern unsigned long tty_cps;	/* The number of characters per second */
-extern int not_a_tty, nodelay_read;
-extern int send_reset_init;
-
-/* definitions for stty_query() and initial_stty_query() */
-#define TTY_CHAR_MODE	0
-#define TTY_NOECHO	1
-#define TTY_OUT_TRANS	2
-#define TTY_8_BIT	3
-#define TTY_XON_XOFF	4
-
-/* scan code definitions */
-#define MAX_SCAN 256
-
-/* translate mode default strings */
-struct default_string_list {
-	const char *name;	/* terminfo name */
-	const char *value;	/* value of default string */
-	int index;		/* index into the strfname[] array */
-};
-
-#define TM_last 8
-extern struct default_string_list TM_string[TM_last];
-
-/* attribute structure definition */
-struct mode_list {
-	const char *name;
-	const char *begin_mode;
-	const char *end_mode;
-	int number;
-};
-
-extern const struct mode_list alt_modes[];
-extern const int mode_map[];
-
-/* Test data base */
-
-#define FLAG_CAN_TEST	1
-#define FLAG_TESTED	2
-#define FLAG_LABEL	4
-#define FLAG_FUNCTION_KEY	8
-
-/* caps under test data base */
-
-#define TT_MAX	8
-#define MAX_CHANGES (TT_MAX+2)
-
-extern int tt_delay_max;	/* max number of milliseconds we can delay */
-extern int tt_delay_used;	/* number of milliseconds consumed in delay */
-extern const char *tt_cap[TT_MAX]; /* value of string */
-extern int tt_affected[TT_MAX];	/* lines or columns effected (repetition
-				   factor) */
-extern int tt_count[TT_MAX];	/* Number of times sent */
-extern int tt_delay[TT_MAX];	/* Number of milliseconds delay */
-extern int ttp;			/* number of entries used */
-
-extern const char *tx_cap[TT_MAX]; /* value of string */
-extern int tx_affected[TT_MAX];	/* lines or columns effected (repetition
-				   factor) */
-extern int tx_count[TT_MAX];	/* Number of times sent */
-extern int tx_delay[TT_MAX];	/* Number of milliseconds delay */
-extern int tx_index[TT_MAX];	/* String index */
-extern int txp;			/* number of entries used */
-extern int tx_characters;	/* printing characters sent by test */
-extern unsigned long tx_cps;	/* characters per second */
-
-/*
-	Menu control for tack.
-*/
-
-struct test_results {
-	struct test_results *next;	/* point to next entry */
-	struct test_list *test;	/* Test which got these results */
-	int reps;		/* repeat count */
-	int delay;		/* delay times 10 */
-};
-
-struct test_list {
-	int flags;		/* Test description flags */
-	int lines_needed;	/* Lines needed for test (0->no action) */
-	const char *caps_done;	/* Caps shown in Done message */
-	const char *caps_tested; /* Other caps also being tested */
-	const char *menu_entry;	/* Menu entry text (optional) */
-				/* Function that does testing */
-	void (*test_procedure)(struct test_list *, int *, int *);
-	struct test_menu *sub_menu;	/* Nested sub-menu */
-};
-
-struct test_menu {
-	int flags;		/* Menu feature flag */
-	int default_action;	/* Default command if <cr> <lf> entered */
-	const char *menu_text;	/* Describe this test_menu */
-	const char *menu_title;	/* Title for the menu */
-	const char *ident;	/* short menu name */
-	const char *standard_tests;	/* Standard test text */
-				/* print current settings (optional) */
-	void (*menu_function)(struct test_menu *);
-	struct test_list *tests;	/* Pointer to the menu/function pairs */
-	struct test_list *resume_tests;	/* Standard test resume point */
-	int resume_state;	/* resume state of test group */
-	int resume_char;	/* resume ch of test group */
-};
-
-
-/* menu flags */
-#define MENU_100c	0x00001a00	/* Augment 100% of columns */
-#define MENU_90c	0x00001900	/* Augment 90% of columns */
-#define MENU_80c	0x00001800	/* Augment 80% of columns */
-#define MENU_70c	0x00001700	/* Augment 70% of columns */
-#define MENU_60c	0x00001600	/* Augment 60% of columns */
-#define MENU_50c	0x00001500	/* Augment 50% of columns */
-#define MENU_40c	0x00001400	/* Augment 40% of columns */
-#define MENU_30c	0x00001300	/* Augment 30% of columns */
-#define MENU_20c	0x00001200	/* Augment 20% of columns */
-#define MENU_10c	0x00001100	/* Augment 10% of columns */
-#define MENU_LM1	0x00002e00	/* Augment lines - 1 */
-#define MENU_100l	0x00002a00	/* Augment 100% of lines */
-#define MENU_90l	0x00002900	/* Augment 90% of lines */
-#define MENU_50l	0x00002500	/* Augment 50% of lines */
-#define MENU_lines	0x00002000	/* Augment of lines */
-#define MENU_columns	0x00001000	/* Augment of columns */
-#define MENU_LC_MASK	0x00003000	/* Augment mask for lines and columns */
-#define MENU_1L		0x00002f00	/* Augment == one */
-#define MENU_1C		0x00001f00	/* Augment == one */
-#define MENU_ONE	0x00000f00	/* Augment == one */
-#define MENU_ONE_MASK	0x00000f00	/* Augment == one mask */
-#define MENU_REP_MASK	0x00003f00	/* Augment mask */
-
-#define MENU_CLEAR	0x00010000	/* clear screen */
-#define MENU_INIT	0x00020000	/* Initialization function */
-#define MENU_NEXT	0x00040000	/* Next test in sequence */
-#define MENU_LAST	0x00080000	/* End of menu list */
-#define MENU_STOP	0x00100000	/* Stop testing next-in-sequence */
-#define MENU_COMPLETE	0x00200000	/* Test complete after this */
-#define MENU_MENU	0x00400000	/* Pass the menu name not test name */
-
-#define REQUEST_PROMPT 256
-
-/* tack.c */
-extern struct test_menu edit_menu;
-extern void show_usage(char *);
-extern void print_version(void);
-
-/* output.c */
-extern char *expand(const char *);
-extern char *expand_command(const char *);
-extern char *expand_to(char *, int);
-extern char *hex_expand_to(char *, int);
-extern char *print_expand(char *);
-extern int getchp(int);
-extern int getnext(int);
-extern int tc_putch(int);
-extern int tc_putp(const char *);
-extern int wait_here(void);
-extern void go_home(void);
-extern void home_down(void);
-extern void maybe_wait(int);
-extern void ptext(const char *);
-extern void ptextln(const char *);
-extern void put_clear(void);
-extern void put_columns(const char *, int, int);
-extern void put_cr(void);
-extern void put_crlf(void);
-extern void put_dec(char *, int);
-extern void put_ind(void);
-extern void put_lf(void);
-extern void put_newlines(int);
-extern void put_str(const char *);
-extern void put_this(int);
-extern void putchp(int);
-extern void putln(const char *);
-extern void read_string(char *, int);
-extern void three_digit(char *, int);
-extern void tt_putp(const char *);
-extern void tt_putparm(NCURSES_CONST char *, int, int, int);
-extern void tt_tputs(const char *, int);
-
-#define put_that(n) put_this((int) (n))
-
-/* control.c */
-extern struct test_list color_test_list[];
-extern char *liberated(char *);
-extern char txt_longer_augment[80];
-extern char txt_longer_test_time[80];
-extern char txt_shorter_augment[80];
-extern char txt_shorter_test_time[80];
-extern int msec_cost(const char *const, int);
-extern int skip_pad_test(struct test_list *, int *, int *, const char *);
-extern int sliding_scale(int, int, unsigned long);
-extern int still_testing(void);
-extern long event_time(int);
-extern void control_init(void);
-extern void dump_test_stats(struct test_list *, int *, int *);
-extern void event_start(int);
-extern void longer_augment(struct test_list *, int *, int *);
-extern void longer_test_time(struct test_list *, int *, int *);
-extern void pad_test_shutdown(struct test_list *, int);
-extern void pad_test_startup(int);
-extern void page_loop(void);
-extern void set_augment_txt(void);
-extern void shorter_augment(struct test_list *, int *, int *);
-extern void shorter_test_time(struct test_list *, int *, int *);
-
-/* charset.c */
-extern struct test_list acs_test_list[];
-extern void set_attr(int);
-extern void eat_cookie(void);
-extern void put_mode(char *);
-
-/* crum.c */
-extern struct test_list crum_test_list[];
-
-/* ansi.c */
-extern void tools_status(struct test_list *, int *, int *);
-extern void tools_charset(struct test_list *, int *, int *);
-extern void tools_sgr(struct test_list *, int *, int *);
-
-/* edit.c */
-extern struct test_menu change_pad_menu;
-extern struct test_list edit_test_list[];
-extern char *get_string_cap_byname(const char *, const char **);
-extern int cap_match(const char *names, const char *cap);
-extern int get_string_cap_byvalue(const char *);
-extern int user_modified(void);
-extern void can_test(const char *, int);
-extern void cap_index(const char *, int *);
-extern void edit_init(void);
-extern void save_info(struct test_list *, int *, int *);
-extern void show_report(struct test_list *, int *, int *);
-
-/* fun.c */
-extern struct test_list funkey_test_list[];
-extern struct test_list printer_test_list[];
-extern void enter_key(const char *, char *, char *);
-extern int tty_meta_prep(void);
-extern void tools_report(struct test_list *, int *, int *);
-
-/* init.c */
-extern void reset_init(void);
-extern void display_basic(void);
-extern void put_name(const char *, const char *);
-extern void charset_can_test(void);
-extern void curses_setup(char *);
-extern void bye_kids(int);
-
-/* scan.c */
-extern char **scan_up, **scan_down, **scan_name;
-extern int scan_key(void);
-extern unsigned scan_max;	/* length of longest scan code */
-extern unsigned *scan_tested, *scan_length;
-extern void scan_init(char *fn);
-
-/* sysdep.c */
-extern int initial_stty_query(int);
-extern int stty_query(int);
-extern void ignoresig(void);
-extern void read_key(char *, int);
-extern void set_alarm_clock(int);
-extern void spin_flush(void);
-extern void tty_init(void);
-extern void tty_raw(int, int);
-extern void tty_reset(void);
-extern void tty_set(void);
-
-/* menu.c */
-extern char prompt_string[80];	/* menu prompt storage */
-extern int subtest_menu(struct test_list *, int *, int *);
-extern struct test_list *augment_test;
-extern void generic_done_message(struct test_list *, int *, int *);
-extern void menu_can_scan(const struct test_menu *);
-extern void menu_clear_screen(struct test_list *, int *, int *);
-extern void menu_display(struct test_menu *, int *);
-extern void menu_prompt(void);
-extern void menu_reset_init(struct test_list *, int *, int *);
-extern void pad_done_message(struct test_list *, int *, int *);
-
-/* modes.c */
-extern struct test_list mode_test_list[];
-
-/* pad.c */
-extern struct test_list pad_test_list[];
-
-/* sync.c */
-extern struct test_menu sync_menu;
-extern int tty_sync_error(void);
-extern void flush_input(void);
-extern void sync_handshake(struct test_list *, int *, int *);
-extern void sync_test(struct test_menu *);
-extern void verify_time(void);
-
-#endif /* NCURSES_TACK_H_incl */
diff -Naur ncurses-5.6.orig/test/Makefile.in ncurses-5.6/test/Makefile.in
--- ncurses-5.6.orig/test/Makefile.in	2006-10-21 18:56:03.000000000 -0400
+++ ncurses-5.6/test/Makefile.in	2008-06-18 06:49:49.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.92 2006/10/21 22:56:03 tom Exp $
+# $Id: Makefile.in,v 1.98 2008/04/12 20:44:47 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -75,9 +75,10 @@
 LOCAL_LIBDIR	= @top_builddir@/lib
 LOCAL_LIBS	= @TEST_DEPS@
 MATH_LIB	= @MATH_LIB@
+TEST_LIBS	= @TEST_LIBS@
 
 LD		= @LD@
-LINK		= @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
+LINK		= @LINK_TESTS@ $(LIBTOOL_LINK) $(CFLAGS)
 
 LDFLAGS		= @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
 
@@ -87,16 +88,18 @@
 LDFLAGS_PROFILE	= $(LDFLAGS) $(CFLAGS_PROFILE)
 LDFLAGS_SHARED	= $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
 
+TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 
+
 # use these for linking with all of the libraries
-LIBS_DEFAULT	= @TEST_ARGS@ @LIBS@ $(MATH_LIB)
+LIBS_DEFAULT	= $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB)
 LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
 
 # use these for linking with the (n)curses library
-LIBS_CURSES	= `echo "@TEST_ARGS@ @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(MATH_LIB)
+LIBS_CURSES	= `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB)
 LDFLAGS_CURSES	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
 
 # use these for linking with the tinfo library if we have it, or curses library if not
-LIBS_TINFO	= @TINFO_ARGS@ @LIBS@ $(MATH_LIB)
+LIBS_TINFO	= @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
 LDFLAGS_TINFO	= $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
 
 LINT		= @LINT@
diff -Naur ncurses-5.6.orig/test/README ncurses-5.6/test/README
--- ncurses-5.6.orig/test/README	2006-11-04 20:10:56.000000000 -0500
+++ ncurses-5.6/test/README	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: README,v 1.28 2006/11/05 01:10:56 tom Exp $
+-- $Id: README,v 1.36 2008/04/05 16:24:14 tom Exp $
 -------------------------------------------------------------------------------
 
 The programs in this directory are designed to test your newest toy :-)
@@ -210,27 +210,27 @@
 libncurses:
 ----------
 BC				-
-COLORS				test: echochar ncurses xmas
-COLOR_PAIR			test: background blue bs cardfile demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-COLOR_PAIRS			test: echochar ncurses newdemo
-COLS				test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus edit_field firework foldkeys hashtest ins_wide inserts lrtest movewindow ncurses newdemo rain tclock testcurs view worm
+COLORS				test: echochar ncurses savescreen xmas
+COLOR_PAIR			test: background blue bs cardfile demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+COLOR_PAIRS			test: echochar ncurses newdemo savescreen
+COLS				test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar edit_field firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
 ESCDELAY			lib: ncurses
-LINES				test: cardfile demo_defkey demo_keyok demo_menus edit_field firework hanoi hashtest ins_wide inserts lrtest movewindow ncurses newdemo rain tclock testcurs view worm xmas
+LINES				test: cardfile demo_defkey demo_keyok demo_menus demo_panels echochar edit_field firework hanoi hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
 PAIR_NUMBER			test: ncurses
 PC				lib: ncurses
 SP				lib: ncurses
 TABSIZE				lib: menu
 UP				-
 acs_map				test: gdc ins_wide inserts knight movewindow ncurses newdemo testcurs
-add_wch				test: ncurses
-add_wchnstr			test: ncurses
+add_wch				test: demo_panels ncurses
+add_wchnstr			-
 add_wchstr			test: view
-addch				test: blue bs ditto echochar hashtest ncurses testaddch view worm
+addch				test: blue bs echochar hashtest ncurses savescreen testaddch view worm
 addchnstr			-
 addchstr			-
 addnstr				-
-addnwstr			-
-addstr				test: blue bs cardfile gdc hanoi lrtest ncurses
+addnwstr			test: ncurses
+addstr				test: blue bs cardfile ditto gdc hanoi lrtest ncurses savescreen
 addwstr				test: ncurses
 assume_default_colors		test: ncurses
 attr_get			test: ncurses
@@ -241,20 +241,20 @@
 attron				test: bs echochar filter gdc ncurses
 attrset				test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
 baudrate			lib: ncurses
-beep				test: blue bs cardfile chgat demo_forms demo_menus edit_field hanoi ins_wide inserts knight movewindow ncurses tclock testcurs view xmas
-bkgd				test: background cardfile demo_forms ncurses tclock view
+beep				test: blue bs cardfile chgat demo_forms demo_menus demo_panels edit_field hanoi inch_wide inchs ins_wide inserts knight movewindow ncurses savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
+bkgd				test: background cardfile demo_forms ncurses savescreen tclock view
 bkgdset				test: background ncurses testaddch
 bkgrnd				test: ncurses
 bkgrndset			test: ncurses
-boolcodes			progs: dump_entry
-boolfnames			progs: dump_entry
-boolnames			progs: dump_entry infocmp
+boolcodes			test: test_arrays progs: dump_entry
+boolfnames			test: test_arrays progs: dump_entry
+boolnames			test: test_arrays progs: dump_entry infocmp
 border				-
 border_set			-
-box				test: cardfile chgat demo_forms demo_menus edit_field ins_wide inserts lrtest ncurses newdemo redraw testcurs
+box				test: cardfile chgat demo_forms demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts lrtest ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 box_set				test: ncurses
 can_change_color		test: ncurses
-cbreak				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto filter firework foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses newdemo tclock testcurs view worm xmas
+cbreak				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
 chgat				test: chgat
 clear				test: blue bs gdc ncurses testcurs xmas
 clearok				test: bs knight
@@ -263,26 +263,26 @@
 color_content			test: ncurses
 color_set			test: color_set ncurses
 copywin				test: ncurses testcurs
-cur_term			test: dots echochar lrtest progs: clear tic tput tset
-curs_set			test: echochar firework gdc hanoi lrtest ncurses newdemo rain tclock testcurs worm xmas
-curscr				test: edit_field knight lrtest ncurses tclock view
+cur_term			test: dots dots_mvcur lrtest progs: clear tput tset
+curs_set			test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
+curscr				test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
 curses_version			test: ncurses progs: infocmp tic toe tput tset
 def_prog_mode			test: bs ncurses
 def_shell_mode			lib: ncurses
 define_key			test: demo_altkeys demo_defkey foldkeys
 del_curterm			lib: ncurses
-delay_output			-
+delay_output			test: newdemo
 delch				-
 deleteln			-
-delscreen			-
-delwin				test: cardfile chgat demo_forms demo_menus edit_field ins_wide inserts movewindow ncurses newdemo redraw testcurs
-derwin				test: cardfile chgat demo_forms demo_menus ins_wide inserts movewindow ncurses
-doupdate			test: cardfile demo_menus edit_field ins_wide inserts knight movewindow ncurses redraw
+delscreen			test: ditto dots_mvcur
+delwin				test: cardfile chgat demo_forms demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+derwin				test: cardfile chgat demo_forms demo_menus inch_wide inchs ins_wide inserts movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
+doupdate			test: cardfile demo_menus demo_panels edit_field ins_wide inserts knight movewindow ncurses redraw savescreen test_get_wstr test_getstr
 dupwin				test: edit_field
-echo				test: bs hanoi ncurses testcurs testscanw
+echo				test: bs hanoi ncurses test_get_wstr test_getstr testcurs testscanw
 echo_wchar			test: ncurses
 echochar			test: echochar ncurses
-endwin				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto echochar filter firework firstlast foldkeys gdc hanoi hashtest ins_wide inserts keynames knight lrtest movewindow ncurses newdemo rain redraw tclock testaddch testcurs testscanw view worm xmas
+endwin				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto dots_mvcur echochar filter firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
 erase				test: cardfile demo_menus filter firework firstlast hanoi lrtest ncurses tclock testcurs
 erasechar			lib: ncurses
 erasewchar			-
@@ -290,45 +290,46 @@
 flash				test: cardfile lrtest ncurses tclock testcurs
 flushinp			test: ncurses newdemo testcurs
 get_wch				-
-get_wstr			-
-getbegx				test: chgat demo_menus movewindow ncurses newdemo redraw testcurs
-getbegy				test: chgat demo_menus movewindow ncurses newdemo redraw testcurs
+get_wstr			test: test_get_wstr
+getattrs			-
+getbegx				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
+getbegy				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
 getbkgd				test: ncurses
 getbkgrnd			test: ncurses
 getcchar			test: ncurses view
-getch				test: background blue bs chgat color_set demo_altkeys ditto filter firework firstlast foldkeys hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
-getcurx				test: bs chgat demo_altkeys demo_defkey foldkeys movewindow ncurses redraw testcurs
-getcury				test: bs chgat demo_altkeys demo_defkey edit_field foldkeys movewindow ncurses redraw testcurs
-getmaxx				test: chgat movewindow ncurses newdemo redraw testcurs
-getmaxy				test: chgat demo_forms movewindow ncurses newdemo redraw testcurs
+getch				test: background blue bs chgat color_set demo_altkeys ditto filter firework firstlast foldkeys hanoi hashtest lrtest savescreen tclock testaddch testcurs view xmas
+getcurx				test: bs chgat demo_altkeys demo_defkey demo_panels foldkeys movewindow ncurses redraw savescreen test_get_wstr test_getstr testcurs
+getcury				test: bs chgat demo_altkeys demo_defkey demo_panels edit_field foldkeys movewindow ncurses redraw savescreen testcurs
+getmaxx				test: chgat demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+getmaxy				test: chgat demo_forms demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 getmouse			test: bs knight movewindow ncurses
-getn_wstr			-
-getnstr				test: filter ncurses
+getn_wstr			test: test_get_wstr
+getnstr				test: filter ncurses test_getstr
 getparx				test: movewindow
 getpary				test: movewindow
-getstr				-
+getstr				test: test_getstr
 getwin				test: ncurses
 halfdelay			test: view
-has_colors			test: background bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
+has_colors			test: background bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testcurs view worm xmas
 has_ic				test: lrtest
 has_il				lib: ncurses
 has_key				lib: ncurses
 hline				test: gdc ncurses
 hline_set			-
-idcok				-
-idlok				test: ncurses testscanw view
-immedok				-
-in_wch				-
-in_wchnstr			-
-in_wchstr			-
-inch				-
-inchnstr			-
-inchstr				-
+idcok				test: test_opaque
+idlok				test: ncurses test_opaque testscanw view
+immedok				test: test_opaque
+in_wch				test: inch_wide
+in_wchnstr			test: inch_wide
+in_wchstr			test: inch_wide
+inch				test: inchs
+inchnstr			test: inchs
+inchstr				test: inchs
 init_color			test: ncurses
-init_pair			test: background blue bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-initscr				test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus echochar firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw tclock testaddch testcurs testscanw view worm xmas
-innstr				-
-innwstr				-
+init_pair			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+initscr				test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar firework firstlast gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+innstr				test: test_instr
+innwstr				test: test_inwstr
 ins_nwstr			test: ins_wide
 ins_wch				test: ins_wide
 ins_wstr			test: ins_wide
@@ -337,29 +338,39 @@
 insertln			-
 insnstr				test: inserts
 insstr				test: inserts
-instr				-
+instr				test: test_instr
 intrflush			test: demo_forms movewindow
-inwstr				-
+inwstr				test: test_inwstr
+is_cleared			test: test_opaque
+is_idcok			test: test_opaque
+is_idlok			test: test_opaque
+is_immedok			test: test_opaque
+is_keypad			test: test_opaque
+is_leaveok			test: test_opaque
 is_linetouched			lib: form
+is_nodelay			test: test_opaque
+is_notimeout			test: test_opaque
+is_scrollok			test: test_opaque
+is_syncok			test: test_opaque
 is_term_resized			-
 is_wintouched			lib: ncurses
 isendwin			-
 key_defined			test: demo_defkey foldkeys
-key_name			test: ncurses
+key_name			test: key_names ncurses
 keybound			test: demo_altkeys demo_defkey
 keyname				test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
 keyok				test: demo_keyok foldkeys
-keypad				test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus edit_field filter firework foldkeys hashtest ins_wide inserts keynames knight lrtest movewindow ncurses redraw tclock testcurs testscanw view
+keypad				test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field filter firework foldkeys hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
 killchar			lib: ncurses
 killwchar			-
-leaveok				test: hanoi
+leaveok				test: hanoi test_opaque
 longname			test: testcurs progs: tput
 mcprint				-
 meta				test: ncurses
 mouse_trafo			-
 mouseinterval			-
-mousemask			test: bs demo_menus knight movewindow ncurses
-move				test: blue bs cardfile chgat demo_altkeys demo_menus echochar foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses testscanw view worm xmas
+mousemask			test: bs demo_forms demo_menus knight movewindow ncurses
+move				test: blue bs cardfile chgat demo_altkeys demo_menus echochar foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses savescreen test_get_wstr test_getstr test_instr test_inwstr testscanw view xmas
 mvadd_wch			test: ncurses
 mvadd_wchnstr			-
 mvadd_wchstr			-
@@ -371,112 +382,112 @@
 mvaddstr			test: bs demo_forms gdc hanoi knight ncurses rain tclock testcurs xmas
 mvaddwstr			-
 mvchgat				test: chgat
-mvcur				test: redraw
+mvcur				test: dots_mvcur redraw
 mvdelch				-
 mvderwin			test: movewindow
 mvget_wch			-
-mvget_wstr			-
+mvget_wstr			test: test_get_wstr
 mvgetch				-
-mvgetn_wstr			-
-mvgetnstr			-
-mvgetstr			-
+mvgetn_wstr			test: test_get_wstr
+mvgetnstr			test: test_getstr
+mvgetstr			test: test_getstr
 mvhline				test: ncurses
 mvhline_set			test: ncurses
-mvin_wch			-
-mvin_wchnstr			-
-mvin_wchstr			-
-mvinch				-
-mvinchnstr			test: gdc
-mvinchstr			-
-mvinnstr			-
-mvinnwstr			-
+mvin_wch			test: inch_wide
+mvin_wchnstr			test: inch_wide
+mvin_wchstr			test: inch_wide
+mvinch				test: inchs
+mvinchnstr			test: gdc inchs
+mvinchstr			test: inchs
+mvinnstr			test: test_instr
+mvinnwstr			test: test_inwstr
 mvins_nwstr			test: ins_wide
 mvins_wch			test: ins_wide
 mvins_wstr			test: ins_wide
 mvinsch				test: ins_wide inserts
 mvinsnstr			test: inserts
 mvinsstr			test: inserts
-mvinstr				-
-mvinwstr			-
+mvinstr				test: test_instr
+mvinwstr			test: test_inwstr
 mvprintw			test: bs demo_menus firework hanoi ncurses tclock view
 mvscanw				-
 mvvline				test: ncurses
 mvvline_set			test: ncurses
 mvwadd_wch			-
 mvwadd_wchnstr			lib: form
-mvwadd_wchstr			-
+mvwadd_wchstr			test: inch_wide
 mvwaddch			test: movewindow newdemo testcurs xmas
 mvwaddchnstr			-
-mvwaddchstr			-
+mvwaddchstr			test: inchs
 mvwaddnstr			test: newdemo testcurs
 mvwaddnwstr			-
-mvwaddstr			test: firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
-mvwaddwstr			-
+mvwaddstr			test: firstlast ins_wide inserts knight ncurses newdemo test_instr testcurs xmas
+mvwaddwstr			test: test_inwstr
 mvwchgat			test: chgat
 mvwdelch			test: ncurses
 mvwget_wch			-
-mvwget_wstr			-
-mvwgetch			-
-mvwgetn_wstr			-
-mvwgetnstr			-
-mvwgetstr			-
+mvwget_wstr			test: test_get_wstr
+mvwgetch			test: inch_wide inchs test_get_wstr test_getstr test_instr test_inwstr test_opaque
+mvwgetn_wstr			test: test_get_wstr
+mvwgetnstr			test: test_getstr
+mvwgetstr			test: test_getstr
 mvwhline			test: movewindow
 mvwhline_set			-
 mvwin				test: cardfile demo_menus movewindow testcurs xmas
-mvwin_wch			-
-mvwin_wchnstr			lib: form
-mvwin_wchstr			-
-mvwinch				test: newdemo testcurs
-mvwinchnstr			-
-mvwinchstr			-
-mvwinnstr			test: testcurs
-mvwinnwstr			-
+mvwin_wch			test: inch_wide
+mvwin_wchnstr			test: inch_wide
+mvwin_wchstr			test: inch_wide
+mvwinch				test: inchs newdemo testcurs
+mvwinchnstr			test: inchs
+mvwinchstr			test: inchs
+mvwinnstr			test: test_instr testcurs
+mvwinnwstr			test: test_inwstr
 mvwins_nwstr			test: ins_wide
 mvwins_wch			test: ins_wide
 mvwins_wstr			test: ins_wide
 mvwinsch			test: ins_wide inserts
 mvwinsnstr			test: inserts
 mvwinsstr			test: inserts testcurs
-mvwinstr			-
-mvwinwstr			-
-mvwprintw			test: chgat ncurses testcurs
+mvwinstr			test: test_instr
+mvwinwstr			test: test_inwstr
+mvwprintw			test: chgat demo_panels inch_wide inchs ncurses test_instr test_inwstr testcurs
 mvwscanw			test: testcurs
 mvwvline			test: ins_wide inserts movewindow
 mvwvline_set			-
-napms				test: dots echochar firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
+napms				test: demo_panels ditto dots dots_mvcur echochar firework gdc hanoi lrtest ncurses railroad rain tclock test_opaque testcurs view worm xmas progs: tset
 newpad				test: edit_field ncurses testcurs
 newscr				lib: ncurses
-newterm				test: demo_altkeys ditto filter foldkeys gdc keynames
-newwin				test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus edit_field firstlast ins_wide inserts knight movewindow ncurses newdemo redraw testcurs xmas
+newterm				test: demo_altkeys ditto dots_mvcur filter foldkeys gdc keynames
+newwin				test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field firstlast inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs xmas
 nl				test: demo_forms ncurses rain testcurs
 nocbreak			test: testcurs
-nodelay				test: firework gdc lrtest ncurses newdemo rain tclock view xmas
-noecho				test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus ditto firework firstlast foldkeys gdc hanoi hashtest ins_wide inserts knight lrtest movewindow ncurses rain redraw tclock testcurs view worm xmas
+nodelay				test: ditto firework gdc lrtest ncurses newdemo rain tclock test_opaque view worm xmas
+noecho				test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
 nofilter			-
 nonl				test: bs demo_forms hashtest movewindow ncurses view worm xmas
 noqiflush			-
 noraw				test: demo_forms demo_menus ncurses testcurs
-notimeout			-
-numcodes			progs: dump_entry
-numfnames			progs: dump_entry
-numnames			progs: dump_entry infocmp
+notimeout			test: test_opaque
+numcodes			test: test_arrays progs: dump_entry
+numfnames			test: test_arrays progs: dump_entry
+numnames			test: test_arrays progs: dump_entry infocmp
 ospeed				progs: tset
 overlay				test: ncurses testcurs xmas
-overwrite			test: ncurses
+overwrite			test: ncurses savescreen
 pair_content			test: background color_set
 pecho_wchar			-
 pechochar			-
 pnoutrefresh			test: edit_field ncurses
 prefresh			test: testcurs
-printw				test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses testcurs testscanw view
+printw				test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view
 putp				progs: tput
 putwin				test: ncurses
 qiflush				-
 raw				test: demo_forms ncurses redraw testcurs
 redrawwin			test: redraw
-refresh				test: blue bs demo_defkey demo_forms demo_keyok demo_menus ditto echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses tclock testcurs view worm xmas
+refresh				test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view xmas
 reset_prog_mode			test: filter ncurses
-reset_shell_mode		test: bs filter
+reset_shell_mode		test: bs filter savescreen
 resetty				-
 resize_term			test: view
 resizeterm			lib: ncurses
@@ -484,16 +495,18 @@
 ripoffline			test: demo_menus ncurses
 savetty				-
 scanw				test: testcurs testscanw
-scr_dump			-
-scr_init			-
-scr_restore			-
-scr_set				-
-scrl				-
+scr_dump			test: savescreen
+scr_init			test: savescreen
+scr_restore			test: savescreen
+scr_set				test: savescreen
+scrl				test: view
 scroll				test: testcurs
-scrollok			test: demo_altkeys demo_defkey demo_keyok ditto foldkeys hashtest knight ncurses redraw testcurs testscanw view
+scrollok			test: demo_altkeys demo_defkey demo_keyok demo_panels ditto foldkeys hashtest knight ncurses redraw test_opaque testcurs testscanw view
 set_curterm			lib: ncurses
-set_term			test: ditto
-setcchar			test: ins_wide ncurses view
+set_escdelay			-
+set_tabsize			-
+set_term			lib: ncurses
+setcchar			test: demo_panels ins_wide ncurses view
 setscrreg			test: view
 setupterm			test: dots progs: clear tput tset
 slk_attr			-
@@ -507,22 +520,22 @@
 slk_color			test: ncurses
 slk_init			test: ncurses
 slk_label			test: ncurses
-slk_noutrefresh			test: ncurses
+slk_noutrefresh			-
 slk_refresh			test: ncurses
 slk_restore			test: ncurses
 slk_set				test: ncurses
-slk_touch			test: ncurses
+slk_touch			lib: ncurses
 slk_wset			test: ncurses
-standend			test: blue gdc ncurses worm
+standend			test: blue gdc ncurses
 standout			test: blue ncurses
-start_color			test: background blue bs cardfile chgat color_set demo_forms demo_menus echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-stdscr				test: bs chgat demo_altkeys demo_forms demo_menus ditto filter firework foldkeys gdc hanoi hashtest ins_wide inserts keynames knight lrtest movewindow ncurses rain redraw tclock testcurs testscanw view xmas
-strcodes			progs: dump_entry
-strfnames			progs: dump_entry
-strnames			test: foldkeys progs: dump_entry infocmp tic
+start_color			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+stdscr				test: bs chgat demo_altkeys demo_forms demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts keynames knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view worm xmas
+strcodes			test: test_arrays progs: dump_entry
+strfnames			test: test_arrays progs: dump_entry
+strnames			test: foldkeys test_arrays progs: dump_entry infocmp tic
 subpad				test: testcurs
 subwin				test: movewindow ncurses newdemo testcurs
-syncok				-
+syncok				test: test_opaque
 term_attrs			test: ncurses
 termattrs			test: ncurses testcurs
 termname			test: testcurs
@@ -534,11 +547,11 @@
 tigetflag			progs: tput
 tigetnum			test: ncurses progs: tput
 tigetstr			test: blue demo_defkey foldkeys testcurs progs: tput
-timeout				test: rain
+timeout				test: rain savescreen
 touchline			test: chgat
-touchwin			test: chgat demo_menus edit_field filter firstlast ins_wide inserts movewindow ncurses redraw xmas
-tparm				test: dots progs: tic tput
-tputs				test: dots railroad progs: clear tset
+touchwin			test: chgat demo_menus edit_field filter firstlast inch_wide inchs ins_wide inserts movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
+tparm				test: dots dots_mvcur progs: tic tput
+tputs				test: dots dots_mvcur railroad progs: clear tset
 trace				test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
 ttytype				lib: ncurses
 typeahead			test: testcurs
@@ -551,6 +564,8 @@
 use_env				progs: tput
 use_extended_names		progs: infocmp tic
 use_legacy_coding		-
+use_screen			test: ditto
+use_window			test: rain worm
 vid_attr			-
 vid_puts			-
 vidattr				lib: ncurses
@@ -561,58 +576,60 @@
 vw_scanw			-
 vwprintw			test: movewindow
 vwscanw				lib: ncurses
-wadd_wch			lib: ncurses
+wadd_wch			test: inch_wide
 wadd_wchnstr			lib: form
 wadd_wchstr			-
-waddch				test: demo_forms firstlast knight ncurses
+waddch				test: demo_forms demo_panels firstlast inch_wide inchs knight ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque worm
 waddchnstr			lib: ncurses
 waddchstr			-
 waddnstr			lib: menu
 waddnwstr			test: ncurses
-waddstr				test: chgat demo_forms edit_field firstlast ins_wide knight ncurses redraw testcurs
-waddwstr			test: ins_wide
+waddstr				test: chgat demo_forms demo_panels edit_field firstlast ins_wide knight ncurses redraw testcurs
+waddwstr			test: ins_wide test_get_wstr
 wattr_get			-
 wattr_off			lib: ncurses
 wattr_on			lib: ncurses
 wattr_set			-
 wattroff			test: demo_forms ncurses testcurs xmas
 wattron				test: testcurs xmas
-wattrset			test: demo_forms ncurses newdemo testcurs xmas
+wattrset			test: demo_forms ncurses newdemo test_get_wstr test_getstr testcurs xmas
 wbkgd				test: cardfile demo_forms demo_menus ncurses newdemo testcurs
-wbkgdset			test: ins_wide inserts ncurses
+wbkgdset			test: demo_panels ins_wide inserts ncurses
 wbkgrnd				lib: ncurses
 wbkgrndset			lib: ncurses
 wborder				lib: ncurses
 wborder_set			lib: ncurses
-wchgat				test: chgat view
-wclear				test: ncurses testcurs
-wclrtobot			test: firstlast ncurses testcurs
-wclrtoeol			test: chgat demo_defkey demo_keyok firstlast ins_wide inserts knight ncurses testcurs
+wchgat				test: chgat test_get_wstr test_getstr view
+wclear				test: ncurses test_opaque testcurs
+wclrtobot			test: firstlast inch_wide inchs ncurses test_instr test_inwstr testcurs
+wclrtoeol			test: chgat demo_defkey demo_keyok demo_panels firstlast inch_wide inchs ins_wide inserts knight ncurses test_instr test_inwstr testcurs
 wcolor_set			lib: ncurses
 wcursyncup			lib: form
 wdelch				test: ncurses testcurs
 wdeleteln			test: testcurs
 wecho_wchar			lib: ncurses
 wechochar			lib: ncurses
-wenclose			lib: menu
-werase				test: cardfile demo_forms demo_menus edit_field firstlast knight ncurses newdemo testcurs xmas
+wenclose			lib: form
+werase				test: cardfile demo_forms demo_menus demo_panels edit_field firstlast knight ncurses newdemo test_get_wstr test_getstr test_opaque testcurs xmas
 wget_wch			test: ins_wide ncurses
-wget_wstr			-
+wget_wstr			test: test_get_wstr
 wgetbkgrnd			lib: ncurses
-wgetch				test: cardfile chgat demo_defkey demo_keyok demo_menus edit_field gdc inserts knight movewindow ncurses newdemo redraw testcurs
-wgetn_wstr			test: ncurses
-wgetnstr			test: ncurses
-wgetstr				-
+wgetch				test: cardfile chgat demo_defkey demo_keyok demo_menus demo_panels edit_field gdc inserts knight movewindow ncurses newdemo rain redraw test_opaque testcurs worm
+wgetn_wstr			test: ncurses test_get_wstr
+wgetnstr			test: ncurses test_getstr
+wgetparent			test: test_opaque
+wgetscrreg			test: test_opaque
+wgetstr				test: test_getstr
 whline				test: testcurs
 whline_set			lib: ncurses
-win_wch				lib: form
-win_wchnstr			lib: form
-win_wchstr			-
-winch				test: knight testcurs
-winchnstr			lib: ncurses
-winchstr			-
-winnstr				test: demo_altkeys demo_defkey foldkeys
-winnwstr			lib: ncurses
+win_wch				test: inch_wide
+win_wchnstr			test: inch_wide
+win_wchstr			test: inch_wide
+winch				test: inchs knight testcurs
+winchnstr			test: inchs
+winchstr			test: inchs
+winnstr				test: demo_altkeys demo_defkey foldkeys test_instr
+winnwstr			test: test_inwstr
 wins_nwstr			test: ins_wide
 wins_wch			test: ins_wide
 wins_wstr			test: ins_wide
@@ -621,42 +638,42 @@
 winsertln			test: testcurs
 winsnstr			test: inserts
 winsstr				test: inserts
-winstr				-
-winwstr				lib: ncurses
-wmouse_trafo			lib: menu
-wmove				test: chgat demo_altkeys demo_defkey demo_keyok demo_menus firstlast foldkeys ins_wide inserts knight movewindow ncurses newdemo redraw testcurs
-wnoutrefresh			test: demo_menus edit_field ins_wide inserts knight movewindow ncurses redraw
-wprintw				test: chgat demo_defkey demo_forms demo_keyok demo_menus edit_field ins_wide inserts knight movewindow ncurses testcurs
+winstr				test: test_instr
+winwstr				test: test_inwstr
+wmouse_trafo			lib: form
+wmove				test: chgat demo_altkeys demo_defkey demo_keyok demo_menus demo_panels firstlast foldkeys inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs worm
+wnoutrefresh			test: demo_menus edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque
+wprintw				test: chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 wredrawln			test: redraw
-wrefresh			test: chgat demo_forms demo_keyok demo_menus edit_field firstlast knight lrtest movewindow ncurses newdemo redraw tclock testcurs view xmas
+wrefresh			test: chgat demo_forms demo_keyok demo_menus demo_panels edit_field firstlast knight lrtest movewindow ncurses newdemo redraw savescreen tclock testcurs view worm xmas
 wresize				test: cardfile ncurses
 wscanw				test: testcurs
-wscrl				test: ncurses testcurs view
+wscrl				test: ncurses testcurs
 wsetscrreg			test: ncurses testcurs
-wstandend			test: xmas
-wstandout			test: xmas
+wstandend			test: test_opaque xmas
+wstandout			test: test_opaque xmas
 wsyncdown			test: movewindow
 wsyncup				lib: form
 wtimeout			test: ncurses
 wtouchln			lib: ncurses
-wunctrl				-
+wunctrl				lib: ncurses
 wvline				test: testcurs
 wvline_set			lib: ncurses
 
 libpanel:
 --------
-bottom_panel			test: ncurses
-del_panel			test: ncurses
-hide_panel			test: ncurses
-move_panel			test: ncurses
-new_panel			test: cardfile ncurses
-panel_above			-
-panel_below			-
-panel_hidden			-
-panel_userptr			test: ncurses
-panel_window			test: cardfile ncurses
-replace_panel			-
-set_panel_userptr		test: ncurses
-show_panel			test: ncurses
-top_panel			test: cardfile ncurses
-update_panels			test: cardfile ncurses
+bottom_panel			test: demo_panels ncurses
+del_panel			test: demo_panels ncurses
+hide_panel			test: demo_panels ncurses
+move_panel			test: demo_panels ncurses
+new_panel			test: cardfile demo_panels ncurses
+panel_above			test: demo_panels
+panel_below			test: demo_panels
+panel_hidden			test: demo_panels
+panel_userptr			test: demo_panels ncurses
+panel_window			test: cardfile demo_panels ncurses
+replace_panel			test: demo_panels
+set_panel_userptr		test: demo_panels ncurses
+show_panel			test: demo_panels ncurses
+top_panel			test: cardfile demo_panels ncurses
+update_panels			test: cardfile demo_panels ncurses
diff -Naur ncurses-5.6.orig/test/aclocal.m4 ncurses-5.6/test/aclocal.m4
--- ncurses-5.6.orig/test/aclocal.m4	2006-12-02 19:10:15.000000000 -0500
+++ ncurses-5.6/test/aclocal.m4	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 2003-2005,2006 Free Software Foundation, Inc.              *
+dnl Copyright (c) 2003-2007,2008 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: aclocal.m4,v 1.17 2006/12/03 00:10:15 tom Exp $
+dnl $Id: aclocal.m4,v 1.22 2008/02/09 18:22:17 tom Exp $
 dnl
 dnl Author: Thomas E. Dickey
 dnl
@@ -122,42 +122,119 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 4 updated: 2002/12/21 14:25:52
+dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
 dnl but old versions (and some misinstalled ones) need that.  To make things
-dnl worse, gcc 3.x gives error messages if -I/usr/local/include is added to
+dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
 dnl the include-path).
 AC_DEFUN([CF_ADD_INCDIR],
 [
-for cf_add_incdir in $1
-do
-	while true
+if test -n "$1" ; then
+  for cf_add_incdir in $1
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				AC_TRY_COMPILE([#include <stdio.h>],
-						[printf("Hello")],
-						[],
-						[CPPFLAGS="$cf_save_CPPFLAGS"])
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  AC_TRY_COMPILE([#include <stdio.h>],
+				  [printf("Hello")],
+				  [],
+				  [cf_have_incdir=yes])
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  CF_VERBOSE(adding $cf_add_incdir to include-path)
+		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
-done
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
+dnl -------------
+dnl	Adds to the library-path
+dnl
+dnl	Some machines have trouble with multiple -L options.
+dnl
+dnl $1 is the (list of) directory(s) to add
+dnl $2 is the optional name of the variable to update (default LDFLAGS)
+dnl
+AC_DEFUN([CF_ADD_LIBDIR],
+[
+if test -n "$1" ; then
+  for cf_add_libdir in $1
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        CF_VERBOSE(adding $cf_add_libdir to library-path)
+        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
+      fi
+    fi
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
+dnl ------------------
+dnl Append to a search-list for a nonstandard header/lib-file
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
+dnl	$3 = the subdirectory, e.g., bin, include or lib
+dnl $4 = the directory under which we will test for subdirectories
+dnl $5 = a directory that we do not want $4 to match
+AC_DEFUN([CF_ADD_SUBDIR_PATH],
+[
+test "$4" != "$5" && \
+test -d "$4" && \
+ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
+	test -n "$verbose" && echo "	... testing for $3-directories under $4"
+	test -d $4/$3 &&          $1="[$]$1 $4/$3"
+	test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
+	test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
+	test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
+	test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
+}
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
@@ -230,6 +307,12 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
+dnl --------------
+dnl Allow user to disable a normally-on option.
+AC_DEFUN([CF_ARG_DISABLE],
+[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
 dnl -------------
 dnl Allow user to enable a normally-off option.
@@ -383,6 +466,60 @@
 CF_TERM_HEADER
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CURSES_FUNCS version: 13 updated: 2007/04/28 09:15:55
+dnl ---------------
+dnl Curses-functions are a little complicated, since a lot of them are macros.
+AC_DEFUN([CF_CURSES_FUNCS],
+[
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+AC_REQUIRE([CF_XOPEN_CURSES])
+AC_REQUIRE([CF_CURSES_TERM_H])
+for cf_func in $1
+do
+	CF_UPPER(cf_tr_func,$cf_func)
+	AC_MSG_CHECKING(for ${cf_func})
+	CF_MSG_LOG(${cf_func})
+	AC_CACHE_VAL(cf_cv_func_$cf_func,[
+		eval cf_result='$ac_cv_func_'$cf_func
+		if test ".$cf_result" != ".no"; then
+			AC_TRY_LINK([
+#ifdef HAVE_XCURSES
+#include <xcurses.h>
+char * XCursesProgramName = "test";
+#else
+#include <${cf_cv_ncurses_header-curses.h}>
+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+#include <ncursesw/term.h>
+#else
+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+#include <ncurses/term.h>
+#else
+#ifdef HAVE_TERM_H
+#include <term.h>
+#endif
+#endif
+#endif
+#endif],
+			[
+#ifndef ${cf_func}
+long foo = (long)(&${cf_func});
+${cf_cv_main_return-return}(foo == 0);
+#endif
+			],
+			[cf_result=yes],
+			[cf_result=no])
+		fi
+		eval 'cf_cv_func_'$cf_func'=$cf_result'
+	])
+	# use the computed/retrieved cache-value:
+	eval 'cf_result=$cf_cv_func_'$cf_func
+	AC_MSG_RESULT($cf_result)
+	if test $cf_result != no; then
+		AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
+	fi
+done
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CURSES_HEADER version: 1 updated: 2005/12/31 13:28:25
 dnl ----------------
 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
@@ -412,7 +549,7 @@
 AC_CHECK_HEADERS($cf_cv_ncurses_header)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 24 updated: 2006/02/04 19:44:43
+dnl CF_CURSES_LIBS version: 26 updated: 2007/07/29 10:32:40
 dnl --------------
 dnl Look for the curses libraries.  Older curses implementations may require
 dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
@@ -421,97 +558,139 @@
 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 AC_MSG_CHECKING(if we have identified curses libraries)
 AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-	[initscr(); tgoto("?", 0,0)],
-	cf_result=yes,
-	cf_result=no)
+    [initscr(); tgoto("?", 0,0)],
+    cf_result=yes,
+    cf_result=no)
 AC_MSG_RESULT($cf_result)
 
 if test "$cf_result" = no ; then
 case $host_os in #(vi
 freebsd*) #(vi
-	AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"])
-	;;
+    AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"])
+    ;;
 hpux10.*) #(vi
-	AC_CHECK_LIB(cur_colr,initscr,[
-		LIBS="-lcur_colr $LIBS"
-		ac_cv_func_initscr=yes
-		],[
-	AC_CHECK_LIB(Hcurses,initscr,[
-		# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-		LIBS="-lHcurses $LIBS"
-		CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
-		ac_cv_func_initscr=yes
-		])])
-	;;
+    AC_CHECK_LIB(cur_colr,initscr,[
+        LIBS="-lcur_colr $LIBS"
+        ac_cv_func_initscr=yes
+        ],[
+    AC_CHECK_LIB(Hcurses,initscr,[
+        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+        LIBS="-lHcurses $LIBS"
+        CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
+        ac_cv_func_initscr=yes
+        ])])
+    ;;
 linux*) # Suse Linux does not follow /usr/lib convention
-	LIBS="$LIBS -L/lib"
-	;;
+    CF_ADD_LIBDIR(/lib)
+    ;;
 sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
-	ac_cv_func_initscr=yes
-	;;
+    if test -d /usr/5lib ; then
+      CF_ADD_LIBDIR(/usr/5lib)
+      LIBS="$LIBS -lcurses -ltermcap"
+    fi
+    ac_cv_func_initscr=yes
+    ;;
 esac
 
 if test ".$ac_cv_func_initscr" != .yes ; then
-	cf_save_LIBS="$LIBS"
-	cf_term_lib=""
-	cf_curs_lib=""
-
-	if test ".${cf_cv_ncurses_version-no}" != .no
-	then
-		cf_check_list="ncurses curses cursesX"
-	else
-		cf_check_list="cursesX curses ncurses"
-	fi
-
-	# Check for library containing tgoto.  Do this before curses library
-	# because it may be needed to link the test-case for initscr.
-	AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
-		for cf_term_lib in $cf_check_list termcap termlib unknown
-		do
-			AC_CHECK_LIB($cf_term_lib,tgoto,[break])
-		done
-	])
-
-	# Check for library containing initscr
-	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	for cf_curs_lib in $cf_check_list xcurses jcurses unknown
-	do
-		AC_CHECK_LIB($cf_curs_lib,initscr,[break])
-	done
-	test $cf_curs_lib = unknown && AC_ERROR(no curses library found)
-
-	LIBS="-l$cf_curs_lib $cf_save_LIBS"
-	if test "$cf_term_lib" = unknown ; then
-		AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
-		AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-			[initscr()],
-			[cf_result=yes],
-			[cf_result=no])
-		AC_MSG_RESULT($cf_result)
-		test $cf_result = no && AC_ERROR(Cannot link curses library)
-	elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-		:
-	elif test "$cf_term_lib" != predefined ; then
-		AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
-		AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-			[initscr(); tgoto((char *)0, 0, 0);],
-			[cf_result=no],
-			[
-			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-			AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-				[initscr()],
-				[cf_result=yes],
-				[cf_result=error])
-			])
-		AC_MSG_RESULT($cf_result)
-	fi
+    cf_save_LIBS="$LIBS"
+    cf_term_lib=""
+    cf_curs_lib=""
+
+    if test ".${cf_cv_ncurses_version-no}" != .no
+    then
+        cf_check_list="ncurses curses cursesX"
+    else
+        cf_check_list="cursesX curses ncurses"
+    fi
+
+    # Check for library containing tgoto.  Do this before curses library
+    # because it may be needed to link the test-case for initscr.
+    AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
+        for cf_term_lib in $cf_check_list termcap termlib unknown
+        do
+            AC_CHECK_LIB($cf_term_lib,tgoto,[break])
+        done
+    ])
+
+    # Check for library containing initscr
+    test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+    for cf_curs_lib in $cf_check_list xcurses jcurses unknown
+    do
+        AC_CHECK_LIB($cf_curs_lib,initscr,[break])
+    done
+    test $cf_curs_lib = unknown && AC_ERROR(no curses library found)
+
+    LIBS="-l$cf_curs_lib $cf_save_LIBS"
+    if test "$cf_term_lib" = unknown ; then
+        AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
+        AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
+            [initscr()],
+            [cf_result=yes],
+            [cf_result=no])
+        AC_MSG_RESULT($cf_result)
+        test $cf_result = no && AC_ERROR(Cannot link curses library)
+    elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+        :
+    elif test "$cf_term_lib" != predefined ; then
+        AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
+        AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
+            [initscr(); tgoto((char *)0, 0, 0);],
+            [cf_result=no],
+            [
+            LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+            AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
+                [initscr()],
+                [cf_result=yes],
+                [cf_result=error])
+            ])
+        AC_MSG_RESULT($cf_result)
+    fi
 fi
 fi
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CURSES_TERM_H version: 6 updated: 2003/11/06 19:59:57
+dnl ----------------
+dnl SVr4 curses should have term.h as well (where it puts the definitions of
+dnl the low-level interface).  This may not be true in old/broken implementations,
+dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
+dnl running with Solaris 2.5.1).
+AC_DEFUN([CF_CURSES_TERM_H],
+[
+AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
+
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+# for <term.h> if we do not find the variant.
+for cf_header in \
+	`echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
+	term.h
+do
+	AC_TRY_COMPILE([
+#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_header}>],
+	[WINDOW *x],
+	[cf_cv_term_header=$cf_header
+	 break],
+	[cf_cv_term_header=no])
+done
+])
+
+case $cf_cv_term_header in #(vi
+term.h) #(vi
+	AC_DEFINE(HAVE_TERM_H)
+	;;
+ncurses/term.h)
+	AC_DEFINE(HAVE_NCURSES_TERM_H)
+	;;
+ncursesw/term.h)
+	AC_DEFINE(HAVE_NCURSESW_TERM_H)
+	;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CURSES_WACS_MAP version: 3 updated: 2003/05/17 22:19:02
 dnl ------------------
 dnl Check for likely values of wacs_map[]:
@@ -537,6 +716,43 @@
 dnl "dirname" is not portable, so we fake it with a shell script.
 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
+dnl ---------------
+dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl pick out/analyze warning messages when the compile-line is long.
+dnl
+dnl Sets:
+dnl	ECHO_LT - symbol to control if libtool is verbose
+dnl	ECHO_LD - symbol to prefix "cc -o" lines
+dnl	RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
+dnl	SHOW_CC - symbol to put before explicit "cc -c" lines
+dnl	ECHO_CC - symbol to put before any "cc" line
+dnl
+AC_DEFUN([CF_DISABLE_ECHO],[
+AC_MSG_CHECKING(if you want to see long compiling messages)
+CF_ARG_DISABLE(echo,
+	[  --disable-echo          display "compiling" commands],
+	[
+    ECHO_LT='--silent'
+    ECHO_LD='@echo linking [$]@;'
+    RULE_CC='	@echo compiling [$]<'
+    SHOW_CC='	@echo compiling [$]@'
+    ECHO_CC='@'
+],[
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC='# compiling'
+    SHOW_CC='# compiling'
+    ECHO_CC=''
+])
+AC_MSG_RESULT($enableval)
+AC_SUBST(ECHO_LT)
+AC_SUBST(ECHO_LD)
+AC_SUBST(RULE_CC)
+AC_SUBST(SHOW_CC)
+AC_SUBST(ECHO_CC)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ENABLE_WARNINGS version: 3 updated: 2003/05/24 14:24:29
 dnl ------------------
 dnl Configure-option to enable gcc warnings
@@ -606,7 +822,7 @@
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_CURSES_VERSION version: 3 updated: 2003/05/17 22:19:02
+dnl CF_FUNC_CURSES_VERSION version: 4 updated: 2007/04/28 09:15:55
 dnl ----------------------
 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
 dnl It's a character string "SVR4", not documented.
@@ -619,7 +835,7 @@
 {
 	char temp[1024];
 	sprintf(temp, "%s\n", curses_version());
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }]
 ,[cf_cv_func_curses_version=yes]
 ,[cf_cv_func_curses_version=no]
@@ -628,7 +844,7 @@
 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
+dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
 dnl -----------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 dnl compiler warnings.  Though useful, not all are supported -- and contrary
@@ -655,7 +871,7 @@
 then
 	AC_CHECKING([for $CC __attribute__ directives])
 cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
+#line __oline__ "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -717,7 +933,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
+dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -742,7 +958,7 @@
 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
 
 cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
+#line __oline__ "${as_me-configure}"
 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
 EOF
 
@@ -763,7 +979,7 @@
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
-	for cf_opt in $1 \
+	for cf_opt in \
 		wd1419 \
 		wd1682 \
 		wd1683 \
@@ -930,15 +1146,15 @@
 AC_DEFUN([CF_LIBRARY_PATH],
 [CF_SUBDIR_PATH($1,$2,lib)])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
 dnl ----------
 dnl Write a debug message to config.log, along with the line number in the
 dnl configure script.
 AC_DEFUN([CF_MSG_LOG],[
-echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CC_CHECK version: 3 updated: 2003/01/12 18:59:28
+dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
 dnl -------------------
 dnl Check if we can compile with ncurses' header file
 dnl $1 is the cache variable to set
@@ -967,11 +1183,11 @@
 #endif
 #endif
 	]
-	,[$1=$cf_header]
+	,[$1=$2]
 	,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CPPFLAGS version: 18 updated: 2005/12/31 13:26:39
+dnl CF_NCURSES_CPPFLAGS version: 19 updated: 2007/07/29 13:35:20
 dnl -------------------
 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
 dnl the CPPFLAGS variable so we can include its header.
@@ -999,8 +1215,9 @@
 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
 
 test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && \
-CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+test "$cf_cv_curses_dir" != "no" && { \
+  CF_ADD_INCDIR($cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root)
+}
 
 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
 	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
@@ -1087,7 +1304,7 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 12 updated: 2004/04/27 16:26:05
+dnl CF_NCURSES_LIBS version: 13 updated: 2007/07/29 10:29:20
 dnl ---------------
 dnl Look for the ncurses library.  This is a little complicated on Linux,
 dnl because it may be linked with the gpm (general purpose mouse) library.
@@ -1127,7 +1344,8 @@
 
 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
 then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
+	CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
+	LIBS="-l$cf_nculib_root $LIBS"
 else
 	CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
 		[#include <${cf_cv_ncurses_header-curses.h}>],
@@ -1155,7 +1373,7 @@
 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 11 updated: 2003/11/06 19:59:57
+dnl CF_NCURSES_VERSION version: 12 updated: 2007/04/28 09:15:55
 dnl ------------------
 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
@@ -1186,7 +1404,7 @@
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }],[
 	cf_cv_ncurses_version=`cat $cf_tempfile`],,[
 
@@ -1442,7 +1660,42 @@
 		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SUBDIR_PATH version: 4 updated: 2006/11/18 17:13:19
+dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
+dnl ---------------
+dnl signal handler, but there are some gcc depedencies in that recommendation.
+dnl Try anyway.
+AC_DEFUN([CF_SIG_ATOMIC_T],
+[
+AC_MSG_CHECKING(for signal global datatype)
+AC_CACHE_VAL(cf_cv_sig_atomic_t,[
+	for cf_type in \
+		"volatile sig_atomic_t" \
+		"sig_atomic_t" \
+		"int"
+	do
+	AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+
+extern $cf_type x;
+$cf_type x;
+static void handler(int sig)
+{
+	x = 5;
+}],
+		[signal(SIGINT, handler);
+		 x = 1],
+		[cf_cv_sig_atomic_t=$cf_type],
+		[cf_cv_sig_atomic_t=no])
+		test "$cf_cv_sig_atomic_t" != no && break
+	done
+	])
+AC_MSG_RESULT($cf_cv_sig_atomic_t)
+test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
 dnl --------------
 dnl Construct a search-list for a nonstandard header/lib-file
 dnl	$1 = the variable to return as result
@@ -1451,59 +1704,11 @@
 AC_DEFUN([CF_SUBDIR_PATH],
 [$1=""
 
-test -d "[$]HOME" && {
-	test -n "$verbose" && echo "	... testing $3-directories under [$]HOME"
-	test -d "[$]HOME/$3" &&          $1="[$]$1 [$]HOME/$3"
-	test -d "[$]HOME/$3/$2" &&       $1="[$]$1 [$]HOME/$3/$2"
-	test -d "[$]HOME/$3/$2/$3" &&    $1="[$]$1 [$]HOME/$3/$2/$3"
-}
-
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$2 to the actual package location:
-test -d "[$]HOME/$2" && {
-	test -n "$verbose" && echo "	... testing $3-directories under [$]HOME/$2"
-	test -d "[$]HOME/$2/$3" &&       $1="[$]$1 [$]HOME/$2/$3"
-	test -d "[$]HOME/$2/$3/$2" &&    $1="[$]$1 [$]HOME/$2/$3/$2"
-}
-
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing $3-directories under /usr/local"
-	test -d /usr/local/$3 &&       $1="[$]$1 /usr/local/$3"
-	test -d /usr/local/$3/$2 &&    $1="[$]$1 /usr/local/$3/$2"
-	test -d /usr/local/$3/$2/$3 && $1="[$]$1 /usr/local/$3/$2/$3"
-	test -d /usr/local/$2/$3 &&    $1="[$]$1 /usr/local/$2/$3"
-	test -d /usr/local/$2/$3/$2 && $1="[$]$1 /usr/local/$2/$3/$2"
-}
-
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing $3-directories under $prefix"
-	test -d $prefix/$3 &&          $1="[$]$1 $prefix/$3"
-	test -d $prefix/$3/$2 &&       $1="[$]$1 $prefix/$3/$2"
-	test -d $prefix/$3/$2/$3 &&    $1="[$]$1 $prefix/$3/$2/$3"
-	test -d $prefix/$2/$3 &&       $1="[$]$1 $prefix/$2/$3"
-	test -d $prefix/$2/$3/$2 &&    $1="[$]$1 $prefix/$2/$3/$2"
-}
-
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing $3-directories under /opt"
-	test -d /opt/$3 &&             $1="[$]$1 /opt/$3"
-	test -d /opt/$3/$2 &&          $1="[$]$1 /opt/$3/$2"
-	test -d /opt/$3/$2/$3 &&       $1="[$]$1 /opt/$3/$2/$3"
-	test -d /opt/$2/$3 &&          $1="[$]$1 /opt/$2/$3"
-	test -d /opt/$2/$3/$2 &&       $1="[$]$1 /opt/$2/$3/$2"
-}
-
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing $3-directories under /usr"
-	test -d /usr/$3 &&             $1="[$]$1 /usr/$3"
-	test -d /usr/$3/$2 &&          $1="[$]$1 /usr/$3/$2"
-	test -d /usr/$3/$2/$3 &&       $1="[$]$1 /usr/$3/$2/$3"
-	test -d /usr/$2/$3 &&          $1="[$]$1 /usr/$2/$3"
-}
+CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
+CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
@@ -1611,11 +1816,12 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
+dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
 dnl ----------
 dnl Use AC_VERBOSE w/o the warnings
 AC_DEFUN([CF_VERBOSE],
 [test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
+CF_MSG_LOG([$1])
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
@@ -1630,7 +1836,37 @@
 	[cf_cv_curses_dir=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09
+dnl CF_XOPEN_CURSES version: 8 updated: 2003/11/07 19:47:46
+dnl ---------------
+dnl Test if we should define X/Open source for curses, needed on Digital Unix
+dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
+dnl
+dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
+dnl as getbegy().  The latter is better design, but the former is standard.
+AC_DEFUN([CF_XOPEN_CURSES],
+[
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
+AC_TRY_LINK([
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header-curses.h}>],[
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)],
+	[cf_cv_need_xopen_extension=no],
+	[AC_TRY_LINK([
+#define _XOPEN_SOURCE_EXTENDED
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header-curses.h}>],[
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)],
+	[cf_cv_need_xopen_extension=yes],
+	[cf_cv_need_xopen_extension=unknown])])])
+test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -1664,7 +1900,7 @@
 irix[[56]].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|k*bsd*-gnu) #(vi
 	CF_GNU_SOURCE
 	;;
 mirbsd*) #(vi
diff -Naur ncurses-5.6.orig/test/bs.c ncurses-5.6/test/bs.c
--- ncurses-5.6.orig/test/bs.c	2006-05-20 11:38:52.000000000 -0400
+++ ncurses-5.6/test/bs.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
  * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
  * v2.1 with ncurses mouse support, September 1995
  *
- * $Id: bs.c,v 1.44 2006/05/20 15:38:52 tom Exp $
+ * $Id: bs.c,v 1.45 2007/04/07 17:13:11 tom Exp $
  */
 
 #include <test.priv.h>
@@ -459,7 +459,7 @@
 	do {
 	    c = getch();
 	} while
-	    (!strchr("hjklrR", c) || c == FF);
+	    (!(strchr("hjklrR", c) || c == FF));
 
 	if (c == FF) {
 	    (void) clearok(stdscr, TRUE);
diff -Naur ncurses-5.6.orig/test/cardfile.c ncurses-5.6/test/cardfile.c
--- ncurses-5.6.orig/test/cardfile.c	2006-12-09 19:30:09.000000000 -0500
+++ ncurses-5.6/test/cardfile.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,7 +29,7 @@
 /*
  * Author: Thomas E. Dickey
  *
- * $Id: cardfile.c,v 1.28 2006/12/10 00:30:09 tom Exp $
+ * $Id: cardfile.c,v 1.33 2008/04/12 22:05:53 tom Exp $
  *
  * File format: text beginning in column 1 is a title; other text is content.
  */
@@ -71,9 +71,9 @@
 #if !HAVE_STRDUP
 #define strdup my_strdup
 static char *
-strdup(char *s)
+strdup(const char *s)
 {
-    char *p = (char *) malloc(strlen(s) + 1);
+    char *p = typeMalloc(char, strlen(s) + 1);
     if (p)
 	strcpy(p, s);
     return (p);
@@ -111,7 +111,7 @@
 	    break;
     }
 
-    card = (CARD *) calloc(1, sizeof(CARD));
+    card = typeCalloc(CARD, 1);
     card->title = strdup(title);
     card->content = strdup("");
 
@@ -135,14 +135,16 @@
     if ((total = strlen(content)) != 0) {
 	if ((offset = strlen(card->content)) != 0) {
 	    total += 1 + offset;
-	    card->content = (char *) realloc(card->content, total + 1);
-	    strcpy(card->content + offset++, " ");
+	    card->content = typeRealloc(char, total + 1, card->content);
+	    if (card->content)
+		strcpy(card->content + offset++, " ");
 	} else {
 	    if (card->content != 0)
 		free(card->content);
-	    card->content = (char *) malloc(total + 1);
+	    card->content = typeMalloc(char, total + 1);
 	}
-	strcpy(card->content + offset, content);
+	if (card->content)
+	    strcpy(card->content + offset, content);
     }
 }
 
@@ -306,8 +308,8 @@
 	return (MY_CTRL_N);
     case CTRL('P'):
 	return (MY_CTRL_P);
-    case CTRL('Q'):
-    case 033:
+    case QUIT:
+    case ESCAPE:
 	return (MY_CTRL_Q);
 
     case KEY_BACKSPACE:
@@ -334,7 +336,7 @@
 static FIELD **
 make_fields(CARD * p, int form_high, int form_wide)
 {
-    FIELD **f = (FIELD **) calloc(3, sizeof(FIELD *));
+    FIELD **f = typeCalloc(FIELD *, 3);
 
     f[0] = new_field(1, form_wide, 0, 0, 0, 0);
     set_field_back(f[0], A_REVERSE);
@@ -568,7 +570,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((n = getopt(argc, argv, "c")) != EOF) {
+    while ((n = getopt(argc, argv, "c")) != -1) {
 	switch (n) {
 	case 'c':
 	    try_color = TRUE;
diff -Naur ncurses-5.6.orig/test/chgat.c ncurses-5.6/test/chgat.c
--- ncurses-5.6.orig/test/chgat.c	2006-07-15 18:48:27.000000000 -0400
+++ ncurses-5.6/test/chgat.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,14 +26,14 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: chgat.c,v 1.5 2006/07/15 22:48:27 tom Exp $
+ * $Id: chgat.c,v 1.8 2008/02/09 23:19:13 tom Exp $
  *
  * test-driver for chgat/wchgat/mvchgat/mvwchgat
  */
 
 #include <test.priv.h>
 
-#ifdef HAVE_CHGAT
+#if HAVE_CHGAT
 
 #define SHOW(n) ((n) == ERR ? "ERR" : "OK")
 #define COLOR_DEFAULT (-1)
@@ -47,25 +47,26 @@
 typedef struct {
     unsigned c;
     unsigned v;
-    int pair, attr;
+    int pair;
+    unsigned attr;
     int count;
     int ch;
-    char *c_msg;
-    char *v_msg;
+    const char *c_msg;
+    const char *v_msg;
     int y_val;
     int x_val;
     int y_beg, x_beg;
     int y_max, x_max;
 } STATUS;
 
-static char *
+static const char *
 color_params(unsigned state, int *pair)
 {
     /* *INDENT-OFF* */
     static struct {
 	int pair;
 	int fg, bg;
-	char *msg;
+	const char *msg;
     } table[] = {
 	{ 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
 	{ 1, COLOR_RED,     COLOR_BLACK,   "red/black" },
@@ -74,7 +75,7 @@
     /* *INDENT-ON* */
 
     static bool first = TRUE;
-    char *result = 0;
+    const char *result = 0;
 
     if (has_colors()) {
 	if (first) {
@@ -93,13 +94,13 @@
     return result;
 }
 
-static char *
-video_params(unsigned state, int *attr)
+static const char *
+video_params(unsigned state, unsigned *attr)
 {
     /* *INDENT-OFF* */
     static struct {
-	int attr;
-	char *msg;
+	unsigned attr;
+	const char *msg;
     } table[] = {
 	{ A_NORMAL,	"normal" },
 	{ A_BOLD,	"bold" },
@@ -109,7 +110,7 @@
     };
     /* *INDENT-ON* */
 
-    char *result = 0;
+    const char *result = 0;
 
     if (state < SIZEOF(table)) {
 	*attr = table[state].attr;
diff -Naur ncurses-5.6.orig/test/color_set.c ncurses-5.6/test/color_set.c
--- ncurses-5.6.orig/test/color_set.c	2006-06-03 12:40:10.000000000 -0400
+++ ncurses-5.6/test/color_set.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,12 +26,12 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: color_set.c,v 1.5 2006/06/03 16:40:10 tom Exp $
+ * $Id: color_set.c,v 1.6 2008/02/10 00:18:01 tom Exp $
  */
 
 #include <test.priv.h>
 
-#ifdef HAVE_COLOR_SET
+#if HAVE_COLOR_SET
 
 #define SHOW(n) ((n) == ERR ? "ERR" : "OK")
 
diff -Naur ncurses-5.6.orig/test/configure ncurses-5.6/test/configure
--- ncurses-5.6.orig/test/configure	2006-12-02 19:10:59.000000000 -0500
+++ ncurses-5.6/test/configure	2008-06-18 06:49:47.000000000 -0400
@@ -183,6 +183,7 @@
 EOF
 cat <<\EOF
 --enable and --with options recognized:
+  --disable-echo          display "compiling" commands
   --enable-warnings       test: turn on gcc compiler warnings
   --with-curses-dir=DIR   directory in which (n)curses is installed
   --with-5lib             use SunOS sysv-libraries
@@ -535,7 +536,7 @@
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:539: checking for X" >&5
+echo "configure:540: checking for X" >&5
 
 
 # Check whether --with-x or --without-x was given.
@@ -598,12 +599,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 602 "configure"
+#line 603 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -672,14 +673,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 676 "configure"
+#line 677 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -802,7 +803,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:806: checking host system type" >&5
+echo "configure:807: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -850,7 +851,7 @@
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:854: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:855: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -879,7 +880,7 @@
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:883: checking for $ac_word" >&5
+echo "configure:884: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -909,7 +910,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:913: checking for $ac_word" >&5
+echo "configure:914: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -960,7 +961,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:964: checking for $ac_word" >&5
+echo "configure:965: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -992,7 +993,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:996: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:997: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1003,12 +1004,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 1007 "configure"
+#line 1008 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1034,12 +1035,12 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1038: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1039: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1043: checking whether we are using GNU C" >&5
+echo "configure:1044: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1048,7 +1049,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1052: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1067,7 +1068,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1071: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1072: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1099,7 +1100,7 @@
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1103: checking how to run the C preprocessor" >&5
+echo "configure:1104: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1114,13 +1115,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1118 "configure"
+#line 1119 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1131,13 +1132,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1135 "configure"
+#line 1136 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1148,13 +1149,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1152 "configure"
+#line 1153 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1158: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1183,7 +1184,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1187: checking for $ac_word" >&5
+echo "configure:1188: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1219,15 +1220,15 @@
 DFT_DEP_SUFFIX=""			
 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`	
 DFT_UPR_MODEL="NORMAL"			
-ECHO_LINK='@ echo linking $@ ... ;'	
 LD="ld"					
 LDFLAGS_SHARED=""			
+LDFLAGS_STATIC=""			
 LD_MODEL=""				
 LD_SHARED_OPTS=""			
 LIBTOOL=""				
 LIB_CLEAN=""				
 LIB_COMPILE=""				
-LIB_LINK=""				
+LIB_LINK='${CC}'			
 LINK_TESTS=""				
 LINT=lint				
 LINT_OPTS=""				
@@ -1243,12 +1244,12 @@
 cf_cv_libtype=
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1247: checking for Cygwin environment" >&5
+echo "configure:1248: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1252 "configure"
+#line 1253 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1259,7 +1260,7 @@
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:1263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -1276,19 +1277,19 @@
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1280: checking for mingw32 environment" >&5
+echo "configure:1281: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1285 "configure"
+#line 1286 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1292: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -1307,7 +1308,7 @@
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1311: checking for executable suffix" >&5
+echo "configure:1312: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1317,7 +1318,7 @@
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:1321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:1322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
       *.c | *.o | *.obj) ;;
@@ -1338,13 +1339,13 @@
 ac_exeext=$EXEEXT
 
 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1342: checking for object suffix" >&5
+echo "configure:1343: checking for object suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   rm -f conftest*
 echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   for ac_file in conftest.*; do
     case $ac_file in
     *.c) ;;
@@ -1364,7 +1365,7 @@
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1368: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1369: checking for ${CC-cc} option to accept ANSI C" >&5
 if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1460,7 +1461,7 @@
 
 
 	cat > conftest.$ac_ext <<EOF
-#line 1464 "configure"
+#line 1465 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -1476,7 +1477,7 @@
 	struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:1480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -1584,175 +1585,6 @@
 fi
 
 
-
-GCC_VERSION=none
-if test "$GCC" = yes ; then
-	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
-echo "configure:1592: checking version of $CC" >&5
-	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
-	test -z "$GCC_VERSION" && GCC_VERSION=unknown
-	echo "$ac_t""$GCC_VERSION" 1>&6
-fi
-
-
-if ( test "$GCC" = yes || test "$GXX" = yes )
-then
-echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:1602: checking if you want to turn on gcc warnings" >&5
-
-# Check whether --enable-warnings or --disable-warnings was given.
-if test "${enable_warnings+set}" = set; then
-  enableval="$enable_warnings"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    with_warnings=yes 
-  else
-    with_warnings=no
-  fi
-else
-  enableval=no 
-  with_warnings=no
-  
-fi
-
-echo "$ac_t""$with_warnings" 1>&6
-if test "$with_warnings" = "yes"
-then
-	
-
-
-INTEL_COMPILER=no
-
-if test "$GCC" = yes ; then
-	case $host_os in
-	linux*|gnu*)
-		echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
-echo "configure:1631: checking if this is really Intel C compiler" >&5
-		cf_save_CFLAGS="$CFLAGS"
-		CFLAGS="$CFLAGS -no-gcc"
-		cat > conftest.$ac_ext <<EOF
-#line 1635 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  INTEL_COMPILER=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-		CFLAGS="$cf_save_CFLAGS"
-		echo "$ac_t""$INTEL_COMPILER" 1>&6
-		;;
-	esac
-fi
-
-
-cat > conftest.$ac_ext <<EOF
-#line 1665 "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
-
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
-	echo "checking for $CC warning options" 1>&6
-echo "configure:1684: checking for $CC warning options" >&5
-	cf_save_CFLAGS="$CFLAGS"
-	EXTRA_CFLAGS="-Wall"
-	for cf_opt in  \
-		wd1419 \
-		wd1682 \
-		wd1683 \
-		wd1684 \
-		wd193 \
-		wd279 \
-		wd593 \
-		wd810 \
-		wd869 \
-		wd981
-	do
-		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo configure:1700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-		fi
-	done
-	CFLAGS="$cf_save_CFLAGS"
-
-elif test "$GCC" = yes
-then
-	echo "checking for $CC warning options" 1>&6
-echo "configure:1710: checking for $CC warning options" >&5
-	cf_save_CFLAGS="$CFLAGS"
-	EXTRA_CFLAGS="-W -Wall"
-	cf_warn_CONST=""
-	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
-	for cf_opt in \
-		Wbad-function-cast \
-		Wcast-align \
-		Wcast-qual \
-		Winline \
-		Wmissing-declarations \
-		Wmissing-prototypes \
-		Wnested-externs \
-		Wpointer-arith \
-		Wshadow \
-		Wstrict-prototypes \
-		Wundef $cf_warn_CONST 
-	do
-		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo configure:1729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
-			case $cf_opt in #(vi
-			Wcast-qual) #(vi
-				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
-				;;
-			Winline) #(vi
-				case $GCC_VERSION in
-				3.3*)
-					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
-
-					continue;;
-				esac
-				;;
-			esac
-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-		fi
-	done
-	CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
-
-
-
-fi
-fi
-
-
 if test "$GCC" = yes
 then
 cat > conftest.i <<EOF
@@ -1772,9 +1604,9 @@
 if test "$GCC" = yes
 then
 	echo "checking for $CC __attribute__ directives" 1>&6
-echo "configure:1776: checking for $CC __attribute__ directives" >&5
+echo "configure:1608: checking for $CC __attribute__ directives" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1778 "configure"
+#line 1610 "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -1812,7 +1644,7 @@
 EOF
 			;;
 		esac
-		if { (eval echo configure:1816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+		if { (eval echo configure:1648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 			test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
 			cat conftest.h >>confdefs.h
 		fi
@@ -1825,7 +1657,7 @@
 
 
 echo $ac_n "checking if $CC -U and -D options work together""... $ac_c" 1>&6
-echo "configure:1829: checking if $CC -U and -D options work together" >&5
+echo "configure:1661: checking if $CC -U and -D options work together" >&5
 if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1833,7 +1665,7 @@
 	cf_save_CPPFLAGS="$CPPFLAGS"
 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
 	cat > conftest.$ac_ext <<EOF
-#line 1837 "configure"
+#line 1669 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1847,7 +1679,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:1851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_cc_u_d_options=yes
@@ -1890,16 +1722,16 @@
 irix[56].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|k*bsd*-gnu) #(vi
 	
 echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:1897: checking if we must define _GNU_SOURCE" >&5
+echo "configure:1729: checking if we must define _GNU_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 1903 "configure"
+#line 1735 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1909,7 +1741,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1919,7 +1751,7 @@
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 1923 "configure"
+#line 1755 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1929,7 +1761,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1973,13 +1805,13 @@
 	;;
 *)
 	echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
-echo "configure:1977: checking if we should define _XOPEN_SOURCE" >&5
+echo "configure:1809: checking if we should define _XOPEN_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 1983 "configure"
+#line 1815 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1989,7 +1821,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -1999,7 +1831,7 @@
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 2003 "configure"
+#line 1835 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -2009,7 +1841,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -2064,16 +1896,16 @@
 
 
 echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
-echo "configure:2068: checking if we should define _POSIX_C_SOURCE" >&5
+echo "configure:1900: checking if we should define _POSIX_C_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	
-echo "(line 2074) testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me-configure}:1906: testing if the symbol is already defined go no further ..." 1>&5
 
 	cat > conftest.$ac_ext <<EOF
-#line 2077 "configure"
+#line 1909 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -2083,7 +1915,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_posix_c_source=no
 else
@@ -2105,7 +1937,7 @@
 	 esac
 	 if test "$cf_want_posix_source" = yes ; then
 		cat > conftest.$ac_ext <<EOF
-#line 2109 "configure"
+#line 1941 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -2115,7 +1947,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -2126,15 +1958,15 @@
 rm -f conftest*
 	 fi
 	 
-echo "(line 2130) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me-configure}:1962: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
 
 	 CFLAGS="$cf_trim_CFLAGS"
 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
 	 
-echo "(line 2135) testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me-configure}:1967: testing if the second compile does not leave our definition intact error ..." 1>&5
 
 	 cat > conftest.$ac_ext <<EOF
-#line 2138 "configure"
+#line 1970 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -2144,7 +1976,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -2178,6 +2010,350 @@
 	;;
 esac
 
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:2015: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2020 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:2069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+
+echo $ac_n "checking for signal global datatype""... $ac_c" 1>&6
+echo "configure:2091: checking for signal global datatype" >&5
+if eval "test \"`echo '$''{'cf_cv_sig_atomic_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+	for cf_type in \
+		"volatile sig_atomic_t" \
+		"sig_atomic_t" \
+		"int"
+	do
+	cat > conftest.$ac_ext <<EOF
+#line 2102 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+
+extern $cf_type x;
+$cf_type x;
+static void handler(int sig)
+{
+	x = 5;
+}
+int main() {
+signal(SIGINT, handler);
+		 x = 1
+; return 0; }
+EOF
+if { (eval echo configure:2120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_sig_atomic_t=$cf_type
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_sig_atomic_t=no
+fi
+rm -f conftest*
+		test "$cf_cv_sig_atomic_t" != no && break
+	done
+	
+fi
+
+echo "$ac_t""$cf_cv_sig_atomic_t" 1>&6
+test "$cf_cv_sig_atomic_t" != no && cat >> confdefs.h <<EOF
+#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+EOF
+
+
+
+
+echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
+echo "configure:2144: checking if you want to see long compiling messages" >&5
+
+# Check whether --enable-echo or --disable-echo was given.
+if test "${enable_echo+set}" = set; then
+  enableval="$enable_echo"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    
+    ECHO_LT='--silent'
+    ECHO_LD='@echo linking $@;'
+    RULE_CC='	@echo compiling $<'
+    SHOW_CC='	@echo compiling $@'
+    ECHO_CC='@'
+ 
+  else
+    
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC='# compiling'
+    SHOW_CC='# compiling'
+    ECHO_CC=''
+
+  fi
+else
+  enableval=yes 
+  
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC='# compiling'
+    SHOW_CC='# compiling'
+    ECHO_CC=''
+
+  
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+
+
+
+
+
+
+
+GCC_VERSION=none
+if test "$GCC" = yes ; then
+	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
+echo "configure:2191: checking version of $CC" >&5
+	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+	test -z "$GCC_VERSION" && GCC_VERSION=unknown
+	echo "$ac_t""$GCC_VERSION" 1>&6
+fi
+
+
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
+echo "configure:2201: checking if you want to turn on gcc warnings" >&5
+
+# Check whether --enable-warnings or --disable-warnings was given.
+if test "${enable_warnings+set}" = set; then
+  enableval="$enable_warnings"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    with_warnings=yes 
+  else
+    with_warnings=no
+  fi
+else
+  enableval=no 
+  with_warnings=no
+  
+fi
+
+echo "$ac_t""$with_warnings" 1>&6
+if test "$with_warnings" = "yes"
+then
+	
+
+
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+	case $host_os in
+	linux*|gnu*)
+		echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
+echo "configure:2230: checking if this is really Intel C compiler" >&5
+		cf_save_CFLAGS="$CFLAGS"
+		CFLAGS="$CFLAGS -no-gcc"
+		cat > conftest.$ac_ext <<EOF
+#line 2234 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+		CFLAGS="$cf_save_CFLAGS"
+		echo "$ac_t""$INTEL_COMPILER" 1>&6
+		;;
+	esac
+fi
+
+
+cat > conftest.$ac_ext <<EOF
+#line 2264 "${as_me-configure}"
+int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+EOF
+
+if test "$INTEL_COMPILER" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #269: invalid format string conversion
+
+	echo "checking for $CC warning options" 1>&6
+echo "configure:2283: checking for $CC warning options" >&5
+	cf_save_CFLAGS="$CFLAGS"
+	EXTRA_CFLAGS="-Wall"
+	for cf_opt in \
+		wd1419 \
+		wd1682 \
+		wd1683 \
+		wd1684 \
+		wd193 \
+		wd279 \
+		wd593 \
+		wd810 \
+		wd869 \
+		wd981
+	do
+		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+		if { (eval echo configure:2299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
+			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+		fi
+	done
+	CFLAGS="$cf_save_CFLAGS"
+
+elif test "$GCC" = yes
+then
+	echo "checking for $CC warning options" 1>&6
+echo "configure:2309: checking for $CC warning options" >&5
+	cf_save_CFLAGS="$CFLAGS"
+	EXTRA_CFLAGS="-W -Wall"
+	cf_warn_CONST=""
+	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
+	for cf_opt in \
+		Wbad-function-cast \
+		Wcast-align \
+		Wcast-qual \
+		Winline \
+		Wmissing-declarations \
+		Wmissing-prototypes \
+		Wnested-externs \
+		Wpointer-arith \
+		Wshadow \
+		Wstrict-prototypes \
+		Wundef $cf_warn_CONST 
+	do
+		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+		if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
+			case $cf_opt in #(vi
+			Wcast-qual) #(vi
+				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
+				;;
+			Winline) #(vi
+				case $GCC_VERSION in
+				3.3*)
+					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+
+echo "${as_me-configure}:2339: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+
+
+					continue;;
+				esac
+				;;
+			esac
+			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+		fi
+	done
+	CFLAGS="$cf_save_CFLAGS"
+fi
+rm -f conftest*
+
+
+
+fi
+fi
+
 
 
 
@@ -2263,7 +2439,7 @@
 	
 
 echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:2267: checking for extra include directories" >&5
+echo "configure:2443: checking for extra include directories" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2288,7 +2464,7 @@
 
 
 echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
-echo "configure:2292: checking if we have identified curses headers" >&5
+echo "configure:2468: checking if we have identified curses headers" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2301,14 +2477,14 @@
 	ncurses/ncurses.h
 do
 cat > conftest.$ac_ext <<EOF
-#line 2305 "configure"
+#line 2481 "configure"
 #include "confdefs.h"
 #include <${cf_header}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:2312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_header=$cf_header; break
 else
@@ -2331,17 +2507,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2335: checking for $ac_hdr" >&5
+echo "configure:2511: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2340 "configure"
+#line 2516 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2370,7 +2546,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:2374: checking for terminfo header" >&5
+echo "configure:2550: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2387,7 +2563,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 2391 "configure"
+#line 2567 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -2397,7 +2573,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:2401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -2446,7 +2622,7 @@
 
 	
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:2450: checking for ncurses version" >&5
+echo "configure:2626: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2472,7 +2648,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:2476: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:2652: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -2481,7 +2657,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 2485 "configure"
+#line 2661 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -2502,10 +2678,10 @@
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:2509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -2529,16 +2705,16 @@
 	
 
 echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
-echo "configure:2533: checking if we have identified curses libraries" >&5
+echo "configure:2709: checking if we have identified curses libraries" >&5
 cat > conftest.$ac_ext <<EOF
-#line 2535 "configure"
+#line 2711 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:2542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -2553,8 +2729,8 @@
 if test "$cf_result" = no ; then
 case $host_os in #(vi
 freebsd*) #(vi
-	echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:2558: checking for tgoto in -lmytinfo" >&5
+    echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+echo "configure:2734: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2562,7 +2738,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2566 "configure"
+#line 2742 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2573,7 +2749,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:2577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2593,10 +2769,10 @@
   echo "$ac_t""no" 1>&6
 fi
 
-	;;
+    ;;
 hpux10.*) #(vi
-	echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:2600: checking for initscr in -lcur_colr" >&5
+    echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
+echo "configure:2776: checking for initscr in -lcur_colr" >&5
 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2604,7 +2780,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcur_colr  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2608 "configure"
+#line 2784 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2615,7 +2791,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2631,14 +2807,14 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
-		LIBS="-lcur_colr $LIBS"
-		ac_cv_func_initscr=yes
-		
+        LIBS="-lcur_colr $LIBS"
+        ac_cv_func_initscr=yes
+        
 else
   echo "$ac_t""no" 1>&6
 
-	echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:2642: checking for initscr in -lHcurses" >&5
+    echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
+echo "configure:2818: checking for initscr in -lHcurses" >&5
 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2646,7 +2822,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2650 "configure"
+#line 2826 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2657,7 +2833,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2673,49 +2849,107 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
-		# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-		LIBS="-lHcurses $LIBS"
-		CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
-		ac_cv_func_initscr=yes
-		
+        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+        LIBS="-lHcurses $LIBS"
+        CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
+        ac_cv_func_initscr=yes
+        
 else
   echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-	;;
-linux*) # Suse Linux does not follow /usr/lib convention
-	LIBS="$LIBS -L/lib"
-	;;
+    ;;
+linux*) # Suse Linux does not follow /usr/lib convention
+    
+if test -n "/lib" ; then
+  for cf_add_libdir in /lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:2886: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+    ;;
 sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
-	ac_cv_func_initscr=yes
-	;;
+    if test -d /usr/5lib ; then
+      
+if test -n "/usr/5lib" ; then
+  for cf_add_libdir in /usr/5lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:2918: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+      LIBS="$LIBS -lcurses -ltermcap"
+    fi
+    ac_cv_func_initscr=yes
+    ;;
 esac
 
 if test ".$ac_cv_func_initscr" != .yes ; then
-	cf_save_LIBS="$LIBS"
-	cf_term_lib=""
-	cf_curs_lib=""
-
-	if test ".${cf_cv_ncurses_version-no}" != .no
-	then
-		cf_check_list="ncurses curses cursesX"
-	else
-		cf_check_list="cursesX curses ncurses"
-	fi
+    cf_save_LIBS="$LIBS"
+    cf_term_lib=""
+    cf_curs_lib=""
+
+    if test ".${cf_cv_ncurses_version-no}" != .no
+    then
+        cf_check_list="ncurses curses cursesX"
+    else
+        cf_check_list="cursesX curses ncurses"
+    fi
 
-	# Check for library containing tgoto.  Do this before curses library
-	# because it may be needed to link the test-case for initscr.
-	echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:2714: checking for tgoto" >&5
+    # Check for library containing tgoto.  Do this before curses library
+    # because it may be needed to link the test-case for initscr.
+    echo $ac_n "checking for tgoto""... $ac_c" 1>&6
+echo "configure:2948: checking for tgoto" >&5
 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2719 "configure"
+#line 2953 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char tgoto(); below.  */
@@ -2738,7 +2972,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_tgoto=yes"
 else
@@ -2756,10 +2990,10 @@
 else
   echo "$ac_t""no" 1>&6
 
-		for cf_term_lib in $cf_check_list termcap termlib unknown
-		do
-			echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:2763: checking for tgoto in -l$cf_term_lib" >&5
+        for cf_term_lib in $cf_check_list termcap termlib unknown
+        do
+            echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
+echo "configure:2997: checking for tgoto in -l$cf_term_lib" >&5
 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2767,7 +3001,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_term_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2771 "configure"
+#line 3005 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2778,7 +3012,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:2782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2798,17 +3032,17 @@
   echo "$ac_t""no" 1>&6
 fi
 
-		done
-	
+        done
+    
 fi
 
 
-	# Check for library containing initscr
-	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	for cf_curs_lib in $cf_check_list xcurses jcurses unknown
-	do
-		echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:2812: checking for initscr in -l$cf_curs_lib" >&5
+    # Check for library containing initscr
+    test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+    for cf_curs_lib in $cf_check_list xcurses jcurses unknown
+    do
+        echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
+echo "configure:3046: checking for initscr in -l$cf_curs_lib" >&5
 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2816,7 +3050,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_curs_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2820 "configure"
+#line 3054 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2827,7 +3061,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2847,22 +3081,22 @@
   echo "$ac_t""no" 1>&6
 fi
 
-	done
-	test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
+    done
+    test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
 
-	LIBS="-l$cf_curs_lib $cf_save_LIBS"
-	if test "$cf_term_lib" = unknown ; then
-		echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:2857: checking if we can link with $cf_curs_lib library" >&5
-		cat > conftest.$ac_ext <<EOF
-#line 2859 "configure"
+    LIBS="-l$cf_curs_lib $cf_save_LIBS"
+    if test "$cf_term_lib" = unknown ; then
+        echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
+echo "configure:3091: checking if we can link with $cf_curs_lib library" >&5
+        cat > conftest.$ac_ext <<EOF
+#line 3093 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -2872,22 +3106,22 @@
   cf_result=no
 fi
 rm -f conftest*
-		echo "$ac_t""$cf_result" 1>&6
-		test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
-	elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-		:
-	elif test "$cf_term_lib" != predefined ; then
-		echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:2882: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
-		cat > conftest.$ac_ext <<EOF
-#line 2884 "configure"
+        echo "$ac_t""$cf_result" 1>&6
+        test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
+    elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+        :
+    elif test "$cf_term_lib" != predefined ; then
+        echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
+echo "configure:3116: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+        cat > conftest.$ac_ext <<EOF
+#line 3118 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:2891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=no
 else
@@ -2895,16 +3129,16 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   
-			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-			cat > conftest.$ac_ext <<EOF
-#line 2901 "configure"
+            LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+            cat > conftest.$ac_ext <<EOF
+#line 3135 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -2914,11 +3148,11 @@
   cf_result=error
 fi
 rm -f conftest*
-			
+            
 fi
 rm -f conftest*
-		echo "$ac_t""$cf_result" 1>&6
-	fi
+        echo "$ac_t""$cf_result" 1>&6
+    fi
 fi
 fi
 
@@ -2930,11 +3164,76 @@
 cf_ncuhdr_root=ncurses
 
 test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && \
-CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+test "$cf_cv_curses_dir" != "no" && { \
+  
+if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+  for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 3194 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:3201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:3218: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+}
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:2938: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:3237: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2945,7 +3244,7 @@
 	do
 		
 	cat > conftest.$ac_ext <<EOF
-#line 2949 "configure"
+#line 3248 "configure"
 #include "confdefs.h"
 
 
@@ -2966,7 +3265,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:2970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
 	
@@ -2992,7 +3291,7 @@
 else
 
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:2996: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:3295: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3000,34 +3299,23 @@
 	test -n "$verbose" && echo
 	cf_search=""
 
-test -d "$HOME" && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME"
-	test -d "$HOME/include" &&          cf_search="$cf_search $HOME/include"
-	test -d "$HOME/include/$cf_ncuhdr_root" &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-	test -d "$HOME/include/$cf_ncuhdr_root/include" &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-}
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
-test -d "$HOME/$cf_ncuhdr_root" && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME/$cf_ncuhdr_root"
-	test -d "$HOME/$cf_ncuhdr_root/include" &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-	test -d "$HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root" &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+	test -d /usr/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing include-directories under /usr/local"
-	test -d /usr/local/include &&       cf_search="$cf_search /usr/local/include"
-	test -d /usr/local/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-	test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
 
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing include-directories under $prefix"
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
 	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
 	test -d $prefix/include/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
 	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
@@ -3035,25 +3323,43 @@
 	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing include-directories under /opt"
-	test -d /opt/include &&             cf_search="$cf_search /opt/include"
-	test -d /opt/include/$cf_ncuhdr_root &&          cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-	test -d /opt/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include &&          cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+	test -d /usr/local/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+	test -d /opt/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing include-directories under /usr"
-	test -d /usr/include &&             cf_search="$cf_search /usr/include"
-	test -d /usr/include/$cf_ncuhdr_root &&          cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-	test -d /usr/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-	test -d /usr/$cf_ncuhdr_root/include &&          cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -3074,46 +3380,69 @@
 	for cf_incdir in $cf_search
 	do
 		
-for cf_add_incdir in $cf_incdir
-do
-	while true
+if test -n "$cf_incdir" ; then
+  for cf_add_incdir in $cf_incdir
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 3091 "configure"
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 3408 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:3432: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
-done
+  done
+fi
 
 		for cf_header in \
 			ncurses.h \
@@ -3121,7 +3450,7 @@
 		do
 			
 	cat > conftest.$ac_ext <<EOF
-#line 3125 "configure"
+#line 3454 "configure"
 #include "confdefs.h"
 
 
@@ -3142,7 +3471,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:3146: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3475: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
 	
@@ -3176,46 +3505,69 @@
 		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
 	fi
 	
-for cf_add_incdir in $cf_1st_incdir
-do
-	while true
+if test -n "$cf_1st_incdir" ; then
+  for cf_add_incdir in $cf_1st_incdir
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 3193 "configure"
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 3533 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:3557: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
-done
+  done
+fi
 
 
 fi
@@ -3249,7 +3601,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:3253: checking for terminfo header" >&5
+echo "configure:3605: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3266,7 +3618,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
+#line 3622 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3276,7 +3628,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:3280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -3331,7 +3683,7 @@
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:3335: checking for ncurses version" >&5
+echo "configure:3687: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3357,7 +3709,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:3361: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:3713: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -3366,7 +3718,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 3370 "configure"
+#line 3722 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3387,10 +3739,10 @@
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:3394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -3421,7 +3773,7 @@
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:3425: checking for Gpm_Open in -lgpm" >&5
+echo "configure:3777: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3429,7 +3781,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3433 "configure"
+#line 3785 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3440,7 +3792,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:3444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3456,7 +3808,7 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:3460: checking for initscr in -lgpm" >&5
+echo "configure:3812: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3464,7 +3816,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3468 "configure"
+#line 3820 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3475,7 +3827,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3507,7 +3859,7 @@
 	# version of ncurses (but it should do no harm, since it's static).
 	if test "$cf_nculib_root" = ncurses ; then
 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:3511: checking for tgoto in -lmytinfo" >&5
+echo "configure:3863: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3515,7 +3867,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3519 "configure"
+#line 3871 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3526,7 +3878,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:3530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3554,18 +3906,47 @@
 
 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
 then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
+	
+if test -n "$cf_cv_curses_dir/lib" ; then
+  for cf_add_libdir in $cf_cv_curses_dir/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:3930: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	LIBS="-l$cf_nculib_root $LIBS"
 else
 	
 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
 	cf_libdir=""
 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:3564: checking for initscr" >&5
+echo "configure:3945: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3569 "configure"
+#line 3950 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -3588,7 +3969,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -3608,17 +3989,17 @@
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:3612: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:3993: checking for initscr in -l$cf_nculib_root" >&5
 		LIBS="-l$cf_nculib_root $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 3615 "configure"
+#line 3996 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -3630,34 +4011,23 @@
   echo "$ac_t""no" 1>&6
 			cf_search=""
 
-test -d "$HOME" && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME"
-	test -d "$HOME/lib" &&          cf_search="$cf_search $HOME/lib"
-	test -d "$HOME/lib/$cf_nculib_root" &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-	test -d "$HOME/lib/$cf_nculib_root/lib" &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-}
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
-test -d "$HOME/$cf_nculib_root" && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME/$cf_nculib_root"
-	test -d "$HOME/$cf_nculib_root/lib" &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-	test -d "$HOME/$cf_nculib_root/lib/$cf_nculib_root" &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/lib/$cf_nculib_root"
+	test -d /usr/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing lib-directories under /usr/local"
-	test -d /usr/local/lib &&       cf_search="$cf_search /usr/local/lib"
-	test -d /usr/local/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-	test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
 
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing lib-directories under $prefix"
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
 	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
 	test -d $prefix/lib/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
 	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
@@ -3665,39 +4035,57 @@
 	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing lib-directories under /opt"
-	test -d /opt/lib &&             cf_search="$cf_search /opt/lib"
-	test -d /opt/lib/$cf_nculib_root &&          cf_search="$cf_search /opt/lib/$cf_nculib_root"
-	test -d /opt/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib &&          cf_search="$cf_search /opt/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+	test -d /usr/local/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/lib/$cf_nculib_root"
+	test -d /opt/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing lib-directories under /usr"
-	test -d /usr/lib &&             cf_search="$cf_search /usr/lib"
-	test -d /usr/lib/$cf_nculib_root &&          cf_search="$cf_search /usr/lib/$cf_nculib_root"
-	test -d /usr/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-	test -d /usr/$cf_nculib_root/lib &&          cf_search="$cf_search /usr/$cf_nculib_root/lib"
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
+
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:3691: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:4079: checking for -l$cf_nculib_root in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 3694 "configure"
+#line 4082 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -3728,7 +4116,7 @@
 
 if test -n "$cf_ncurses_LIBS" ; then
 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:3732: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:4120: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
 	cf_ncurses_SAVE="$LIBS"
 	for p in $cf_ncurses_LIBS ; do
 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -3737,14 +4125,14 @@
 		fi
 	done
 	cat > conftest.$ac_ext <<EOF
-#line 3741 "configure"
+#line 4129 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3770,14 +4158,14 @@
 	cf_cv_libtype=w
 	
 echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
-echo "configure:3774: checking for multibyte character support" >&5
+echo "configure:4162: checking for multibyte character support" >&5
 if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cf_save_LIBS="$LIBS"
 	cat > conftest.$ac_ext <<EOF
-#line 3781 "configure"
+#line 4169 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -3785,7 +4173,7 @@
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:3789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_utf8_lib=yes
 else
@@ -3794,7 +4182,7 @@
   rm -rf conftest*
   LIBS="-lutf8 $LIBS"
 	 cat > conftest.$ac_ext <<EOF
-#line 3798 "configure"
+#line 4186 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -3802,7 +4190,7 @@
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:3806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_utf8_lib=add-on
 else
@@ -3835,11 +4223,76 @@
 cf_ncuhdr_root=ncursesw
 
 test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && \
-CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+test "$cf_cv_curses_dir" != "no" && { \
+  
+if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+  for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4253 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:4260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:4277: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+}
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:3843: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:4296: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3850,7 +4303,7 @@
 	do
 		
 	cat > conftest.$ac_ext <<EOF
-#line 3854 "configure"
+#line 4307 "configure"
 #include "confdefs.h"
 
 
@@ -3879,7 +4332,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:3883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
 	
@@ -3905,7 +4358,7 @@
 else
 
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:3909: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:4362: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3913,34 +4366,23 @@
 	test -n "$verbose" && echo
 	cf_search=""
 
-test -d "$HOME" && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME"
-	test -d "$HOME/include" &&          cf_search="$cf_search $HOME/include"
-	test -d "$HOME/include/$cf_ncuhdr_root" &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-	test -d "$HOME/include/$cf_ncuhdr_root/include" &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-}
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
-test -d "$HOME/$cf_ncuhdr_root" && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME/$cf_ncuhdr_root"
-	test -d "$HOME/$cf_ncuhdr_root/include" &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-	test -d "$HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root" &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+	test -d /usr/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing include-directories under /usr/local"
-	test -d /usr/local/include &&       cf_search="$cf_search /usr/local/include"
-	test -d /usr/local/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-	test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
 
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing include-directories under $prefix"
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
 	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
 	test -d $prefix/include/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
 	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
@@ -3948,25 +4390,43 @@
 	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing include-directories under /opt"
-	test -d /opt/include &&             cf_search="$cf_search /opt/include"
-	test -d /opt/include/$cf_ncuhdr_root &&          cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-	test -d /opt/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include &&          cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+	test -d /usr/local/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+	test -d /opt/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing include-directories under /usr"
-	test -d /usr/include &&             cf_search="$cf_search /usr/include"
-	test -d /usr/include/$cf_ncuhdr_root &&          cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-	test -d /usr/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-	test -d /usr/$cf_ncuhdr_root/include &&          cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
 }
 
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -3987,46 +4447,69 @@
 	for cf_incdir in $cf_search
 	do
 		
-for cf_add_incdir in $cf_incdir
-do
-	while true
+if test -n "$cf_incdir" ; then
+  for cf_add_incdir in $cf_incdir
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 4004 "configure"
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4475 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:4499: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
-done
+  done
+fi
 
 		for cf_header in \
 			ncurses.h \
@@ -4034,7 +4517,7 @@
 		do
 			
 	cat > conftest.$ac_ext <<EOF
-#line 4038 "configure"
+#line 4521 "configure"
 #include "confdefs.h"
 
 
@@ -4055,7 +4538,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:4059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
 	
@@ -4089,46 +4572,69 @@
 		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
 	fi
 	
-for cf_add_incdir in $cf_1st_incdir
-do
-	while true
+if test -n "$cf_1st_incdir" ; then
+  for cf_add_incdir in $cf_1st_incdir
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+          if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 4106 "configure"
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4600 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4607: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:4624: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+
+          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+          test "$cf_top_incdir" = "$cf_add_incdir" && break
+          cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
-done
+  done
+fi
 
 
 fi
@@ -4162,7 +4668,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:4166: checking for terminfo header" >&5
+echo "configure:4672: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4179,7 +4685,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 4183 "configure"
+#line 4689 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4189,7 +4695,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:4193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -4244,7 +4750,7 @@
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:4248: checking for ncurses version" >&5
+echo "configure:4754: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4270,7 +4776,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:4274: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:4780: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -4279,7 +4785,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 4283 "configure"
+#line 4789 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4300,10 +4806,10 @@
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:4307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4813: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -4334,7 +4840,7 @@
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:4338: checking for Gpm_Open in -lgpm" >&5
+echo "configure:4844: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4342,7 +4848,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4346 "configure"
+#line 4852 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4353,7 +4859,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:4357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4369,7 +4875,7 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:4373: checking for initscr in -lgpm" >&5
+echo "configure:4879: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4377,7 +4883,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4381 "configure"
+#line 4887 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4388,7 +4894,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4420,7 +4926,7 @@
 	# version of ncurses (but it should do no harm, since it's static).
 	if test "$cf_nculib_root" = ncurses ; then
 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:4424: checking for tgoto in -lmytinfo" >&5
+echo "configure:4930: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4428,7 +4934,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4432 "configure"
+#line 4938 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4439,7 +4945,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4467,18 +4973,47 @@
 
 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
 then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
+	
+if test -n "$cf_cv_curses_dir/lib" ; then
+  for cf_add_libdir in $cf_cv_curses_dir/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:4997: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	LIBS="-l$cf_nculib_root $LIBS"
 else
 	
 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
 	cf_libdir=""
 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:4477: checking for initscr" >&5
+echo "configure:5012: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4482 "configure"
+#line 5017 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -4501,7 +5036,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -4521,17 +5056,17 @@
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:4525: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:5060: checking for initscr in -l$cf_nculib_root" >&5
 		LIBS="-l$cf_nculib_root $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 4528 "configure"
+#line 5063 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -4543,34 +5078,23 @@
   echo "$ac_t""no" 1>&6
 			cf_search=""
 
-test -d "$HOME" && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME"
-	test -d "$HOME/lib" &&          cf_search="$cf_search $HOME/lib"
-	test -d "$HOME/lib/$cf_nculib_root" &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-	test -d "$HOME/lib/$cf_nculib_root/lib" &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-}
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
-test -d "$HOME/$cf_nculib_root" && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME/$cf_nculib_root"
-	test -d "$HOME/$cf_nculib_root/lib" &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-	test -d "$HOME/$cf_nculib_root/lib/$cf_nculib_root" &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/lib/$cf_nculib_root"
+	test -d /usr/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing lib-directories under /usr/local"
-	test -d /usr/local/lib &&       cf_search="$cf_search /usr/local/lib"
-	test -d /usr/local/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-	test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
 
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing lib-directories under $prefix"
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
 	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
 	test -d $prefix/lib/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
 	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
@@ -4578,39 +5102,57 @@
 	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing lib-directories under /opt"
-	test -d /opt/lib &&             cf_search="$cf_search /opt/lib"
-	test -d /opt/lib/$cf_nculib_root &&          cf_search="$cf_search /opt/lib/$cf_nculib_root"
-	test -d /opt/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib &&          cf_search="$cf_search /opt/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+	test -d /usr/local/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/lib/$cf_nculib_root"
+	test -d /opt/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing lib-directories under /usr"
-	test -d /usr/lib &&             cf_search="$cf_search /usr/lib"
-	test -d /usr/lib/$cf_nculib_root &&          cf_search="$cf_search /usr/lib/$cf_nculib_root"
-	test -d /usr/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-	test -d /usr/$cf_nculib_root/lib &&          cf_search="$cf_search /usr/$cf_nculib_root/lib"
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
 }
 
+
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:4604: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:5146: checking for -l$cf_nculib_root in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 4607 "configure"
+#line 5149 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -4641,7 +5183,7 @@
 
 if test -n "$cf_ncurses_LIBS" ; then
 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:4645: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:5187: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
 	cf_ncurses_SAVE="$LIBS"
 	for p in $cf_ncurses_LIBS ; do
 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -4650,14 +5192,14 @@
 		fi
 	done
 	cat > conftest.$ac_ext <<EOF
-#line 4654 "configure"
+#line 5196 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:4661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -4700,17 +5242,17 @@
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:4704: checking whether -R must be followed by a space" >&5
+echo "configure:5246: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 4707 "configure"
+#line 5249 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -4726,14 +5268,14 @@
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 4730 "configure"
+#line 5272 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -4765,7 +5307,7 @@
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:4769: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5311: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4773,7 +5315,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4777 "configure"
+#line 5319 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4784,7 +5326,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4806,7 +5348,7 @@
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:4810: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5352: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4814,7 +5356,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4818 "configure"
+#line 5360 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4825,7 +5367,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4854,12 +5396,12 @@
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:4858: checking for gethostbyname" >&5
+echo "configure:5400: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4863 "configure"
+#line 5405 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -4882,7 +5424,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -4903,7 +5445,7 @@
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4907: checking for gethostbyname in -lnsl" >&5
+echo "configure:5449: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4911,7 +5453,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4915 "configure"
+#line 5457 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4922,7 +5464,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:4926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4952,12 +5494,12 @@
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:4956: checking for connect" >&5
+echo "configure:5498: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4961 "configure"
+#line 5503 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -4980,7 +5522,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -5001,7 +5543,7 @@
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:5005: checking for connect in -lsocket" >&5
+echo "configure:5547: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5009,7 +5551,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5013 "configure"
+#line 5555 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5020,7 +5562,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:5024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5044,12 +5586,12 @@
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5048: checking for remove" >&5
+echo "configure:5590: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5053 "configure"
+#line 5595 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5072,7 +5614,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -5093,7 +5635,7 @@
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5097: checking for remove in -lposix" >&5
+echo "configure:5639: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5101,7 +5643,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5105 "configure"
+#line 5647 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5112,7 +5654,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5136,12 +5678,12 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5140: checking for shmat" >&5
+echo "configure:5682: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5145 "configure"
+#line 5687 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5164,7 +5706,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -5185,7 +5727,7 @@
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5189: checking for shmat in -lipc" >&5
+echo "configure:5731: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5193,7 +5735,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5197 "configure"
+#line 5739 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5204,7 +5746,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5237,7 +5779,7 @@
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5241: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:5783: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5245,7 +5787,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5249 "configure"
+#line 5791 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5256,7 +5798,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5290,7 +5832,10 @@
 
 LDFLAGS="$X_LIBS $LDFLAGS"
 
-test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
+test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
+
+echo "${as_me-configure}:5838: testing checking additions to CFLAGS ..." 1>&5
+
 
 cf_check_cflags="$CFLAGS"
 cf_check_cppflags="$CPPFLAGS"
@@ -5351,18 +5896,27 @@
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
+echo "${as_me-configure}:5900: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+
 	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
+echo "${as_me-configure}:5909: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+
 	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
+echo "${as_me-configure}:5918: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
@@ -5371,14 +5925,14 @@
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 5375 "configure"
+#line 5929 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:5382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -5386,9 +5940,15 @@
   rm -rf conftest*
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
+echo "${as_me-configure}:5944: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+
+
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
+echo "${as_me-configure}:5950: testing but keeping change to \$CPPFLAGS ..." 1>&5
+
+
 	 fi
 	 CFLAGS="$cf_check_flags"
 fi
@@ -5397,12 +5957,12 @@
 
 
 echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
-echo "configure:5401: checking for XOpenDisplay" >&5
+echo "configure:5961: checking for XOpenDisplay" >&5
 if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5406 "configure"
+#line 5966 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XOpenDisplay(); below.  */
@@ -5425,7 +5985,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_XOpenDisplay=yes"
 else
@@ -5444,7 +6004,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5448: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6008: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5452,7 +6012,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5456 "configure"
+#line 6016 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5463,7 +6023,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5487,12 +6047,12 @@
 
 
 echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
-echo "configure:5491: checking for XtAppInitialize" >&5
+echo "configure:6051: checking for XtAppInitialize" >&5
 if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5496 "configure"
+#line 6056 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XtAppInitialize(); below.  */
@@ -5515,7 +6075,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_XtAppInitialize=yes"
 else
@@ -5534,7 +6094,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:5538: checking for XtAppInitialize in -lXt" >&5
+echo "configure:6098: checking for XtAppInitialize in -lXt" >&5
 ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5542,7 +6102,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5546 "configure"
+#line 6106 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5553,7 +6113,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:5557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5591,7 +6151,7 @@
 cf_x_athena=${cf_x_athena-Xaw}
 
 echo $ac_n "checking if you want to link with Xaw 3d library""... $ac_c" 1>&6
-echo "configure:5595: checking if you want to link with Xaw 3d library" >&5
+echo "configure:6155: checking if you want to link with Xaw 3d library" >&5
 withval=
 
 # Check whether --with-Xaw3d or --without-Xaw3d was given.
@@ -5608,7 +6168,7 @@
 fi
 
 echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
-echo "configure:5612: checking if you want to link with neXT Athena library" >&5
+echo "configure:6172: checking if you want to link with neXT Athena library" >&5
 withval=
 
 # Check whether --with-neXtaw or --without-neXtaw was given.
@@ -5625,7 +6185,7 @@
 fi
 
 echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
-echo "configure:5629: checking if you want to link with Athena-Plus library" >&5
+echo "configure:6189: checking if you want to link with Athena-Plus library" >&5
 withval=
 
 # Check whether --with-XawPlus or --without-XawPlus was given.
@@ -5642,7 +6202,7 @@
 fi
 
 echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:5646: checking for XextCreateExtension in -lXext" >&5
+echo "configure:6206: checking for XextCreateExtension in -lXext" >&5
 ac_lib_var=`echo Xext'_'XextCreateExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5650,7 +6210,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5654 "configure"
+#line 6214 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5661,7 +6221,7 @@
 XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:5665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5700,13 +6260,13 @@
 		if test $cf_path != default ; then
 			CPPFLAGS="-I$cf_path/include $cf_save"
 			echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
-echo "configure:5704: checking for $cf_test in $cf_path" >&5
+echo "configure:6264: checking for $cf_test in $cf_path" >&5
 		else
 			echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
-echo "configure:5707: checking for $cf_test" >&5
+echo "configure:6267: checking for $cf_test" >&5
 		fi
 		cat > conftest.$ac_ext <<EOF
-#line 5710 "configure"
+#line 6270 "configure"
 #include "confdefs.h"
 
 #include <X11/Intrinsic.h>
@@ -5715,7 +6275,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -5762,21 +6322,21 @@
 			if test $cf_path != default ; then
 				LIBS="-L$cf_path/lib $cf_lib $LIBS"
 				echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
-echo "configure:5766: checking for $cf_lib in $cf_path" >&5
+echo "configure:6326: checking for $cf_lib in $cf_path" >&5
 			else
 				LIBS="$cf_lib $LIBS"
 				echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
-echo "configure:5770: checking for $cf_test in $cf_lib" >&5
+echo "configure:6330: checking for $cf_test in $cf_lib" >&5
 			fi
 			cat > conftest.$ac_ext <<EOF
-#line 5773 "configure"
+#line 6333 "configure"
 #include "confdefs.h"
 
 int main() {
 $cf_test()
 ; return 0; }
 EOF
-if { (eval echo configure:5780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -5817,7 +6377,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5821: checking for $ac_word" >&5
+echo "configure:6381: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XCURSES_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5867,6 +6427,9 @@
 
 test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
+echo "${as_me-configure}:6431: testing checking additions to CFLAGS ..." 1>&5
+
+
 cf_check_cflags="$CFLAGS"
 cf_check_cppflags="$CPPFLAGS"
 
@@ -5926,18 +6489,27 @@
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
+echo "${as_me-configure}:6493: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+
 	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
+echo "${as_me-configure}:6502: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+
 	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
+echo "${as_me-configure}:6511: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
@@ -5946,14 +6518,14 @@
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 5950 "configure"
+#line 6522 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:5957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -5961,9 +6533,15 @@
   rm -rf conftest*
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
+echo "${as_me-configure}:6537: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+
+
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
+echo "${as_me-configure}:6543: testing but keeping change to \$CPPFLAGS ..." 1>&5
+
+
 	 fi
 	 CFLAGS="$cf_check_flags"
 fi
@@ -5971,7 +6549,7 @@
 fi
 
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5975: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6553: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5979,7 +6557,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5983 "configure"
+#line 6561 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5990,7 +6568,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6011,14 +6589,14 @@
 fi
 
 echo $ac_n "checking for XCurses library""... $ac_c" 1>&6
-echo "configure:6015: checking for XCurses library" >&5
+echo "configure:6593: checking for XCurses library" >&5
 if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 LIBS="-lXCurses $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6022 "configure"
+#line 6600 "configure"
 #include "confdefs.h"
 
 #include <xcurses.h>
@@ -6028,7 +6606,7 @@
 XCursesExit();
 ; return 0; }
 EOF
-if { (eval echo configure:6032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_lib_XCurses=yes
 else
@@ -6073,7 +6651,7 @@
 *)
 	# look for curses-related libraries
 	echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6077: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+echo "configure:6655: checking for new_panel in -lpanel$cf_cv_libtype" >&5
 ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6081,7 +6659,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lpanel$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6085 "configure"
+#line 6663 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6092,7 +6670,7 @@
 new_panel()
 ; return 0; }
 EOF
-if { (eval echo configure:6096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6120,7 +6698,7 @@
 fi
 
 	echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6124: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+echo "configure:6702: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
 ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6128,7 +6706,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmenu$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6132 "configure"
+#line 6710 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6139,7 +6717,7 @@
 menu_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:6143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6167,7 +6745,7 @@
 fi
 
 	echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6171: checking for form_driver in -lform$cf_cv_libtype" >&5
+echo "configure:6749: checking for form_driver in -lform$cf_cv_libtype" >&5
 ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6175,7 +6753,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lform$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6179 "configure"
+#line 6757 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6186,7 +6764,7 @@
 form_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:6190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6225,17 +6803,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6229: checking for $ac_hdr" >&5
+echo "configure:6807: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6234 "configure"
+#line 6812 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6265,12 +6843,12 @@
 esac
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:6269: checking return type of signal handlers" >&5
+echo "configure:6847: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6274 "configure"
+#line 6852 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -6287,7 +6865,7 @@
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:6291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -6307,12 +6885,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:6311: checking for ANSI C header files" >&5
+echo "configure:6889: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6316 "configure"
+#line 6894 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -6320,7 +6898,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6337,7 +6915,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 6341 "configure"
+#line 6919 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -6355,7 +6933,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 6359 "configure"
+#line 6937 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -6376,7 +6954,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 6380 "configure"
+#line 6958 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -6387,7 +6965,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:6391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -6411,12 +6989,12 @@
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:6415: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:6993: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6420 "configure"
+#line 6998 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -6425,7 +7003,7 @@
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:6429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -6458,17 +7036,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6462: checking for $ac_hdr" >&5
+echo "configure:7040: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6467 "configure"
+#line 7045 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6496,45 +7074,17 @@
 
 
 for ac_func in \
-chgat \
-color_set \
-filter \
-getbegx \
-getcurx \
-getmaxx \
-getnstr \
 gettimeofday \
-getwin \
-mvvline \
-mvwvline \
-napms \
-putwin \
-resize_term \
-resizeterm \
-ripoffline \
-setupterm \
-slk_color \
-slk_init \
 strdup \
-termattrs \
-tgetent \
-tigetnum \
-tigetstr \
-typeahead \
-use_default_colors \
-vsscanf \
-wchgat \
-winsstr \
-wresize \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6533: checking for $ac_func" >&5
+echo "configure:7083: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6538 "configure"
+#line 7088 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6557,7 +7107,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6582,8 +7132,240 @@
 done
 
 
+
+echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
+echo "configure:7138: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 7144 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header-curses.h}>
+int main() {
+
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
+; return 0; }
+EOF
+if { (eval echo configure:7156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_need_xopen_extension=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cat > conftest.$ac_ext <<EOF
+#line 7164 "configure"
+#include "confdefs.h"
+
+#define _XOPEN_SOURCE_EXTENDED
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header-curses.h}>
+int main() {
+
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
+; return 0; }
+EOF
+if { (eval echo configure:7177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_need_xopen_extension=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_need_xopen_extension=unknown
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
+test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+
+
+echo $ac_n "checking for term.h""... $ac_c" 1>&6
+echo "configure:7196: checking for term.h" >&5
+if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+
+# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+# for <term.h> if we do not find the variant.
+for cf_header in \
+	`echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
+	term.h
+do
+	cat > conftest.$ac_ext <<EOF
+#line 7209 "configure"
+#include "confdefs.h"
+
+#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_header}>
+int main() {
+WINDOW *x
+; return 0; }
+EOF
+if { (eval echo configure:7218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_term_header=$cf_header
+	 break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_term_header=no
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$cf_cv_term_header" 1>&6
+
+case $cf_cv_term_header in #(vi
+term.h) #(vi
+	cat >> confdefs.h <<\EOF
+#define HAVE_TERM_H 1
+EOF
+
+	;;
+ncurses/term.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_TERM_H 1
+EOF
+
+	;;
+ncursesw/term.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSESW_TERM_H 1
+EOF
+
+	;;
+esac
+
+
+
+
+for cf_func in \
+chgat \
+color_set \
+filter \
+getbegx \
+getcurx \
+getmaxx \
+getnstr \
+getparx \
+getwin \
+mvvline \
+mvwvline \
+napms \
+putwin \
+resize_term \
+resizeterm \
+ripoffline \
+setupterm \
+slk_color \
+slk_init \
+termattrs \
+tgetent \
+tigetnum \
+tigetstr \
+typeahead \
+use_default_colors \
+vsscanf \
+wchgat \
+winsstr \
+wresize \
+
+do
+	
+cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	echo $ac_n "checking for ${cf_func}""... $ac_c" 1>&6
+echo "configure:7295: checking for ${cf_func}" >&5
+	
+echo "${as_me-configure}:7297: testing ${cf_func} ..." 1>&5
+
+	if eval "test \"`echo '$''{'cf_cv_func_$cf_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+		eval cf_result='$ac_cv_func_'$cf_func
+		if test ".$cf_result" != ".no"; then
+			cat > conftest.$ac_ext <<EOF
+#line 7306 "configure"
+#include "confdefs.h"
+
+#ifdef HAVE_XCURSES
+#include <xcurses.h>
+char * XCursesProgramName = "test";
+#else
+#include <${cf_cv_ncurses_header-curses.h}>
+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+#include <ncursesw/term.h>
+#else
+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+#include <ncurses/term.h>
+#else
+#ifdef HAVE_TERM_H
+#include <term.h>
+#endif
+#endif
+#endif
+#endif
+int main() {
+
+#ifndef ${cf_func}
+long foo = (long)(&${cf_func});
+${cf_cv_main_return-return}(foo == 0);
+#endif
+			
+; return 0; }
+EOF
+if { (eval echo configure:7335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_result=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_result=no
+fi
+rm -f conftest*
+		fi
+		eval 'cf_cv_func_'$cf_func'=$cf_result'
+	
+fi
+
+	# use the computed/retrieved cache-value:
+	eval 'cf_result=$cf_cv_func_'$cf_func
+	echo "$ac_t""$cf_result" 1>&6
+	if test $cf_result != no; then
+		cat >> confdefs.h <<EOF
+#define HAVE_${cf_tr_func} 1
+EOF
+
+	fi
+done
+
+
+echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6
+echo "configure:7363: checking for ncurses extended functions" >&5
+if eval "test \"`echo '$''{'cf_cv_ncurses_ext_funcs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
 cat > conftest.$ac_ext <<EOF
-#line 6587 "configure"
+#line 7369 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -6601,30 +7383,81 @@
 	(void) use_default_colors ();
 	(void) use_extended_names (0);
 	(void) wresize (0, 0, 0);
-	
 ; return 0; }
 EOF
-if { (eval echo configure:6608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  cat >> confdefs.h <<\EOF
+  cf_cv_ncurses_ext_funcs=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_ncurses_ext_funcs=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_ncurses_ext_funcs" 1>&6
+test "$cf_cv_ncurses_ext_funcs" != no && cat >> confdefs.h <<\EOF
 #define NCURSES_EXT_FUNCS 1
 EOF
 
+
+echo $ac_n "checking for wide-character functions""... $ac_c" 1>&6
+echo "configure:7409: checking for wide-character functions" >&5
+if eval "test \"`echo '$''{'cf_cv_widechar_funcs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 7415 "configure"
+#include "confdefs.h"
+
+#include <${cf_cv_ncurses_header-curses.h}>
+int main() {
+
+	static wchar_t src_wchar[2];
+	static cchar_t dst_cchar;
+	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+	
+; return 0; }
+EOF
+if { (eval echo configure:7427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cf_cv_widechar_funcs=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_widechar_funcs=no
 fi
 rm -f conftest*
 
+fi
+
+echo "$ac_t""$cf_cv_widechar_funcs" 1>&6
+if test "$cf_cv_widechar_funcs" != no ; then
+	cat >> confdefs.h <<\EOF
+#define USE_WIDEC_SUPPORT 1
+EOF
+
+else
+	cat >> confdefs.h <<\EOF
+#define USE_WIDEC_SUPPORT 0
+EOF
+
+fi
+
 
 echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:6622: checking if sys/time.h works with sys/select.h" >&5
+echo "configure:7455: checking if sys/time.h works with sys/select.h" >&5
 if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 6628 "configure"
+#line 7461 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -6639,7 +7472,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sys_time_select=yes
 else
@@ -6660,7 +7493,7 @@
 
 
 echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:6664: checking for function curses_version" >&5
+echo "configure:7497: checking for function curses_version" >&5
 if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6669,7 +7502,7 @@
   cf_cv_func_curses_version=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 6673 "configure"
+#line 7506 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -6677,11 +7510,11 @@
 {
 	char temp[1024];
 	sprintf(temp, "%s\n", curses_version());
-	exit(0);
+	${cf_cv_main_return-return}(0);
 }
 
 EOF
-if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cf_cv_func_curses_version=yes
 
@@ -6706,7 +7539,7 @@
 
 
 echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
-echo "configure:6710: checking for alternate character set array" >&5
+echo "configure:7543: checking for alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6715,7 +7548,7 @@
 for name in acs_map _acs_map __acs_map _nc_acs_map
 do
 cat > conftest.$ac_ext <<EOF
-#line 6719 "configure"
+#line 7552 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -6726,7 +7559,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_acs_map=$name; break
 else
@@ -6747,7 +7580,7 @@
 
 
 echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
-echo "configure:6751: checking for wide alternate character set array" >&5
+echo "configure:7584: checking for wide alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6756,7 +7589,7 @@
 	for name in wacs_map _wacs_map __wacs_map _nc_wacs
 	do
 	cat > conftest.$ac_ext <<EOF
-#line 6760 "configure"
+#line 7593 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -6767,7 +7600,7 @@
 $name['k'] = *WACS_PLUS
 ; return 0; }
 EOF
-if { (eval echo configure:6771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_wacs_map=$name
 	 break
@@ -6783,9 +7616,9 @@
 
 
 echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:6787: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:7620: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 6789 "configure"
+#line 7622 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -6798,7 +7631,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -6826,9 +7659,9 @@
 
 
 echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:6830: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:7663: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 6832 "configure"
+#line 7665 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -6841,7 +7674,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7678: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -7018,9 +7851,9 @@
 s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
 s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
 s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
-s%@ECHO_LINK@%$ECHO_LINK%g
 s%@LD@%$LD%g
 s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
+s%@LDFLAGS_STATIC@%$LDFLAGS_STATIC%g
 s%@LD_MODEL@%$LD_MODEL%g
 s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
 s%@LIBTOOL@%$LIBTOOL%g
@@ -7040,6 +7873,11 @@
 s%@EXEEXT@%$EXEEXT%g
 s%@OBJEXT@%$OBJEXT%g
 s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
+s%@ECHO_LT@%$ECHO_LT%g
+s%@ECHO_LD@%$ECHO_LD%g
+s%@RULE_CC@%$RULE_CC%g
+s%@SHOW_CC@%$SHOW_CC%g
+s%@ECHO_CC@%$ECHO_CC%g
 s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
 s%@X_CFLAGS@%$X_CFLAGS%g
 s%@X_PRE_LIBS@%$X_PRE_LIBS%g
@@ -7247,6 +8085,7 @@
 # Extra initialization commands, if any
 
 AWK="$AWK"
+ECHO_LD="$ECHO_LD"
 
 EOF
 cat >> $CONFIG_STATUS <<\EOF
@@ -7258,7 +8097,7 @@
 	if test ! -d $srcdir/$cf_dir; then
 		continue
 	elif test -f $srcdir/$cf_dir/programs; then
-		$AWK -f $srcdir/mk-test.awk ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
+		$AWK -f $srcdir/mk-test.awk ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
 	fi
 done
 
diff -Naur ncurses-5.6.orig/test/configure.in ncurses-5.6/test/configure.in
--- ncurses-5.6.orig/test/configure.in	2006-07-15 14:54:07.000000000 -0400
+++ ncurses-5.6/test/configure.in	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 dnl
 dnl Author: Thomas E. Dickey 1996, etc.
 dnl
-dnl $Id: configure.in,v 1.58 2006/07/15 18:54:07 tom Exp $
+dnl $Id: configure.in,v 1.65 2008/02/09 18:24:11 tom Exp $
 dnl This is a simple configuration-script for the ncurses test programs that
 dnl allows the test-directory to be separately configured against a reference
 dnl system (i.e., sysvr4 curses)
@@ -58,15 +58,15 @@
 DFT_DEP_SUFFIX=""			AC_SUBST(DFT_DEP_SUFFIX)
 DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`	AC_SUBST(DFT_OBJ_SUBDIR)
 DFT_UPR_MODEL="NORMAL"			AC_SUBST(DFT_UPR_MODEL)
-ECHO_LINK='@ echo linking $@ ... ;'	AC_SUBST(ECHO_LINK)
 LD="ld"					AC_SUBST(LD)
 LDFLAGS_SHARED=""			AC_SUBST(LDFLAGS_SHARED)
+LDFLAGS_STATIC=""			AC_SUBST(LDFLAGS_STATIC)
 LD_MODEL=""				AC_SUBST(LD_MODEL)
 LD_SHARED_OPTS=""			AC_SUBST(LD_SHARED_OPTS)
 LIBTOOL=""				AC_SUBST(LIBTOOL)
 LIB_CLEAN=""				AC_SUBST(LIB_CLEAN)
 LIB_COMPILE=""				AC_SUBST(LIB_COMPILE)
-LIB_LINK=""				AC_SUBST(LIB_LINK)
+LIB_LINK='${CC}'			AC_SUBST(LIB_LINK)
 LINK_TESTS=""				AC_SUBST(LINK_TESTS)
 LINT=lint				AC_SUBST(LINT)
 LINT_OPTS=""				AC_SUBST(LINT_OPTS)
@@ -85,9 +85,13 @@
 AC_OBJEXT
 
 CF_ANSI_CC_REQD
-CF_ENABLE_WARNINGS
 CF_GCC_ATTRIBUTES
 CF_XOPEN_SOURCE
+AC_C_CONST
+CF_SIG_ATOMIC_T
+
+CF_DISABLE_ECHO
+CF_ENABLE_WARNINGS
 
 CF_WITH_CURSES_DIR
 
@@ -174,6 +178,11 @@
 )
 
 AC_CHECK_FUNCS( \
+gettimeofday \
+strdup \
+)
+
+CF_CURSES_FUNCS( \
 chgat \
 color_set \
 filter \
@@ -181,7 +190,7 @@
 getcurx \
 getmaxx \
 getnstr \
-gettimeofday \
+getparx \
 getwin \
 mvvline \
 mvwvline \
@@ -193,7 +202,6 @@
 setupterm \
 slk_color \
 slk_init \
-strdup \
 termattrs \
 tgetent \
 tigetnum \
@@ -206,6 +214,7 @@
 wresize \
 )
 
+AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
 AC_TRY_LINK([
 #include <${cf_cv_ncurses_header-curses.h}>],
 [
@@ -220,8 +229,28 @@
 	(void) resizeterm (0, 0);
 	(void) use_default_colors ();
 	(void) use_extended_names (0);
-	(void) wresize (0, 0, 0);
-	],[AC_DEFINE(NCURSES_EXT_FUNCS)])
+	(void) wresize (0, 0, 0);],
+	[cf_cv_ncurses_ext_funcs=yes],
+	[cf_cv_ncurses_ext_funcs=no])
+])
+test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)
+
+AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
+AC_TRY_LINK([
+#include <${cf_cv_ncurses_header-curses.h}>],
+[
+	static wchar_t src_wchar[2];
+	static cchar_t dst_cchar;
+	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+	],
+	[cf_cv_widechar_funcs=yes],
+	[cf_cv_widechar_funcs=no])
+])
+if test "$cf_cv_widechar_funcs" != no ; then
+	AC_DEFINE(USE_WIDEC_SUPPORT,1)
+else
+	AC_DEFINE(USE_WIDEC_SUPPORT,0)
+fi
 
 CF_SYS_TIME_SELECT
 CF_FUNC_CURSES_VERSION
@@ -236,7 +265,7 @@
 dnl ---------------------------------------------------------------------------
 
 AC_OUTPUT(Makefile,[
-CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LINK"], .)
+CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .)
 	cat >>Makefile <<TEST_EOF
 
 # These rules are generated so we do not rely on suffix rules, which do not
@@ -256,4 +285,5 @@
 done
 ],[
 AWK="$AWK"
+ECHO_LD="$ECHO_LD"
 ],cat)
diff -Naur ncurses-5.6.orig/test/demo_altkeys.c ncurses-5.6/test/demo_altkeys.c
--- ncurses-5.6.orig/test/demo_altkeys.c	2006-12-09 11:49:49.000000000 -0500
+++ ncurses-5.6/test/demo_altkeys.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2005,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2005-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_altkeys.c,v 1.7 2006/12/09 16:49:49 tom Exp $
+ * $Id: demo_altkeys.c,v 1.8 2008/04/12 22:06:22 tom Exp $
  *
  * Demonstrate the define_key() function.
  * Thomas Dickey - 2005/10/22
@@ -110,7 +110,7 @@
     for (n = KEY_MIN; n < KEY_MAX; ++n) {
 	char *value;
 	if ((value = keybound(n, 0)) != 0) {
-	    char *temp = malloc(strlen(value) + 2);
+	    char *temp = typeMalloc(char, strlen(value) + 2);
 	    sprintf(temp, "\033%s", value);
 	    define_key(temp, n + MY_KEYS);
 	    free(temp);
diff -Naur ncurses-5.6.orig/test/demo_defkey.c ncurses-5.6/test/demo_defkey.c
--- ncurses-5.6.orig/test/demo_defkey.c	2006-04-01 14:08:03.000000000 -0500
+++ ncurses-5.6/test/demo_defkey.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_defkey.c,v 1.16 2006/04/01 19:08:03 tom Exp $
+ * $Id: demo_defkey.c,v 1.18 2008/04/12 22:06:12 tom Exp $
  *
  * Demonstrate the define_key() function.
  * Thomas Dickey - 2002/11/23
@@ -112,10 +112,10 @@
 		    need += strlen(temp);
 	    }
 	    if (!pass)
-		result = (char *) calloc(need, 1);
+		result = typeCalloc(char, need);
 	}
     } else {
-	result = (char *) calloc(1, 1);
+	result = typeCalloc(char, 1);
     }
     return result;
 }
@@ -143,13 +143,12 @@
 		code_name);
     }
     log_last_line(win);
+
     if (vis_string != 0) {
 	free(vis_string);
 	vis_string = 0;
     }
 
-    if (vis_string != 0)
-	free(vis_string);
     vis_string = visible(new_string);
     if ((rc = key_defined(new_string)) > 0) {
 	wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
diff -Naur ncurses-5.6.orig/test/demo_forms.c ncurses-5.6/test/demo_forms.c
--- ncurses-5.6.orig/test/demo_forms.c	2006-12-09 19:30:24.000000000 -0500
+++ ncurses-5.6/test/demo_forms.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2003-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_forms.c,v 1.22 2006/12/10 00:30:24 tom Exp $
+ * $Id: demo_forms.c,v 1.24 2007/07/21 17:45:09 tom Exp $
  *
  * Demonstrate a variety of functions from the form library.
  * Thomas Dickey - 2003/4/26
@@ -322,6 +322,10 @@
     int pg;
     WINDOW *also;
 
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
     help_edit_field();
 
     mvaddstr(4, 57, "Forms Entry Test");
@@ -423,6 +427,10 @@
 	free_field(f[c]);
     noraw();
     nl();
+
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(0, (mmask_t *) 0);
+#endif
 }
 
 static void
@@ -451,7 +459,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((ch = getopt(argc, argv, "dj:m:o:t:")) != EOF) {
+    while ((ch = getopt(argc, argv, "dj:m:o:t:")) != -1) {
 	switch (ch) {
 	case 'd':
 	    d_option = TRUE;
diff -Naur ncurses-5.6.orig/test/demo_menus.c ncurses-5.6/test/demo_menus.c
--- ncurses-5.6.orig/test/demo_menus.c	2006-06-17 13:39:37.000000000 -0400
+++ ncurses-5.6/test/demo_menus.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2005,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2005-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_menus.c,v 1.20 2006/06/17 17:39:37 tom Exp $
+ * $Id: demo_menus.c,v 1.24 2008/04/12 22:03:33 tom Exp $
  *
  * Demonstrate a variety of functions from the menu library.
  * Thomas Dickey - 2005/4/9
@@ -112,7 +112,7 @@
 static char *
 strdup(char *s)
 {
-    char *p = (char *) malloc(strlen(s) + 1);
+    char *p = typeMalloc(char, strlen(s) + 1);
     if (p)
 	strcpy(p, s);
     return (p);
@@ -130,14 +130,14 @@
     while ((c = wgetch(win)) == CTRL('T')) {
 	if (_nc_tracing) {
 	    save_trace = _nc_tracing;
-	    _tracef("TOGGLE-TRACING OFF");
+	    Trace(("TOGGLE-TRACING OFF"));
 	    _nc_tracing = 0;
 	} else {
 	    _nc_tracing = save_trace;
 	}
 	trace(_nc_tracing);
 	if (_nc_tracing)
-	    _tracef("TOGGLE-TRACING ON");
+	    Trace(("TOGGLE-TRACING ON"));
     }
 #else
     c = wgetch(win);
@@ -270,7 +270,7 @@
 #if 0
 	if (count > 0) {
 	    while (*ip) {
-		_tracef("freeing item %d:%d", ip - menu_items(m), count);
+		Trace(("freeing item %d:%d", ip - menu_items(m), count));
 		free_item(*ip++);
 	    }
 	}
@@ -291,7 +291,7 @@
 static void
 build_file_menu(MenuNo number)
 {
-    static const char *labels[] =
+    static CONST_MENUS char *labels[] =
     {
 	"Exit",
 	(char *) 0
@@ -299,7 +299,7 @@
     static ITEM *items[SIZEOF(labels)];
 
     ITEM **ip = items;
-    const char **ap;
+    CONST_MENUS char **ap;
 
     for (ap = labels; *ap; ap++)
 	*ip++ = new_item(*ap, "");
@@ -319,7 +319,7 @@
 static void
 build_select_menu(MenuNo number, char *filename)
 {
-    static const char *labels[] =
+    static CONST_MENUS char *labels[] =
     {
 	"Lions",
 	"Tigers",
@@ -339,7 +339,7 @@
     static ITEM **items;
 
     ITEM **ip;
-    const char **ap = 0;
+    CONST_MENUS char **ap = 0;
     unsigned count = 0;
 
     if (filename != 0) {
@@ -349,10 +349,10 @@
 	    && sb.st_size != 0) {
 	    unsigned size = sb.st_size;
 	    unsigned j, k;
-	    char *blob = malloc(size + 1);
-	    const char **list = (const char **) calloc(sizeof(*list), size + 1);
+	    char *blob = typeMalloc(char, size + 1);
+	    CONST_MENUS char **list = typeCalloc(CONST_MENUS char *, size + 1);
 
-	    items = (ITEM **) calloc(sizeof(ITEM *), size + 1);
+	    items = typeCalloc(ITEM *, size + 1);
 	    if (blob != 0 && list != 0) {
 		FILE *fp = fopen(filename, "r");
 		if (fp != 0) {
@@ -383,7 +383,7 @@
     }
     if (ap == 0) {
 	count = SIZEOF(labels) - 1;
-	items = (ITEM **) calloc(count + 1, sizeof(*items));
+	items = typeCalloc(ITEM *, count + 1);
 	ap = labels;
     }
 
@@ -456,7 +456,7 @@
 	size_t need = 12;
 	for (n = 0; t_tbl[n].name != 0; n++)
 	    need += strlen(t_tbl[n].name) + 2;
-	buf = (char *) malloc(need);
+	buf = typeMalloc(char, need);
     }
     sprintf(buf, "0x%02x = {", tlevel);
     if (tlevel == 0) {
@@ -523,7 +523,7 @@
 		    newtrace |= t_tbl[item_index(*ip)].mask;
 	    }
 	    trace(newtrace);
-	    _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
+	    Trace(("trace level interactively set to %s", tracetrace(_nc_tracing)));
 
 	    (void) mvprintw(LINES - 2, 0,
 			    "Trace level is %s\n", tracetrace(_nc_tracing));
@@ -569,7 +569,7 @@
 static void
 build_menus(char *filename)
 {
-    static const char *labels[] =
+    static CONST_MENUS char *labels[] =
     {
 	"File",
 	"Select",
@@ -581,7 +581,7 @@
     static ITEM *items[SIZEOF(labels)];
 
     ITEM **ip = items;
-    const char **ap;
+    CONST_MENUS char **ap;
 
     for (ap = labels; *ap; ap++)
 	*ip++ = new_item(*ap, "");
@@ -834,7 +834,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != EOF) {
+    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
 	switch (c) {
 #if HAVE_RIPOFFLINE
 	case 'f':
diff -Naur ncurses-5.6.orig/test/demo_panels.c ncurses-5.6/test/demo_panels.c
--- ncurses-5.6.orig/test/demo_panels.c	2006-04-01 14:08:03.000000000 -0500
+++ ncurses-5.6/test/demo_panels.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,17 +26,10 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_panels.c,v 1.2 2006/04/01 19:08:03 tom Exp $
+ * $Id: demo_panels.c,v 1.30 2008/04/12 21:59:49 tom Exp $
  *
  * Demonstrate a variety of functions from the panel library.
- * Thomas Dickey - 2003/4/26
  */
-/*
-panel_above			-
-panel_below			-
-panel_hidden			-
-replace_panel			-
-*/
 
 #include <test.priv.h>
 
@@ -44,11 +37,771 @@
 
 #include <panel.h>
 
+#define LAST_POS '@'
+#define TEMP_POS '>'
+
+typedef void (*InitPanel) (void);
+typedef void (*FillPanel) (PANEL *);
+
+static bool use_colors = FALSE;
+static bool unboxed = FALSE;
+static FILE *log_in;
+static FILE *log_out;
+
+static void
+close_input(void)
+{
+    if (log_in != 0) {
+	fclose(log_in);
+	log_in = 0;
+    }
+}
+
+static void
+close_output(void)
+{
+    if (log_out != 0) {
+	fclose(log_out);
+	log_out = 0;
+    }
+}
+
+static WINDOW *
+statusline(void)
+{
+    WINDOW *result = stdscr;
+
+    wmove(result, LINES - 1, 0);
+    wclrtoeol(result);
+    return result;
+}
+
+static void
+pflush(void)
+{
+    update_panels();
+    doupdate();
+}
+
+static void
+saywhat(NCURSES_CONST char *text)
+{
+    WINDOW *win = statusline();
+    if (text != 0 && *text != '\0') {
+	waddstr(win, text);
+	waddstr(win, "; ");
+    }
+    waddstr(win, "press any key to continue");
+}
+
+static void
+show_position(NCURSES_CONST char *text,
+	      NCURSES_CONST char *also,
+	      int which,
+	      int ypos,
+	      int xpos)
+{
+    WINDOW *win = statusline();
+
+    wprintw(win, "%s for panel %d now %d,%d%s", text, which, ypos, xpos, also);
+    wmove(stdscr, ypos, xpos);
+}
+
+static int
+get_position(NCURSES_CONST char *text,
+	     NCURSES_CONST char *also,
+	     int which,
+	     int *xpos,
+	     int *ypos)
+{
+    int result = 0;
+    int x1, y1;
+    char cmd;
+    WINDOW *win;
+
+    getyx(stdscr, y1, x1);
+    win = statusline();
+
+    show_position(text, also, which, y1, x1);
+
+    if (log_in != 0) {
+	if (fscanf(log_in, "%c%d,%d\n", &cmd, &y1, &x1) == 3) {
+	    switch (cmd) {
+	    case LAST_POS:
+		result = 1;
+		(void) wgetch(stdscr);
+		break;
+	    case TEMP_POS:
+		result = 0;
+		wrefresh(stdscr);
+		napms(100);
+		break;
+	    default:
+		result = -1;
+		break;
+	    }
+	} else {
+	    result = -1;
+	}
+    } else {
+
+	switch (wgetch(stdscr)) {
+	case QUIT:
+	case ESCAPE:
+	case ERR:
+	    result = -1;
+	    break;
+	case ' ':
+	    result = 1;
+	    break;
+	case KEY_UP:
+	    if (y1 > 0) {
+		--y1;
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_DOWN:
+	    if (y1 < getmaxy(stdscr)) {
+		++y1;
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_LEFT:
+	    if (x1 > 0) {
+		--x1;
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_RIGHT:
+	    if (x1 < getmaxx(stdscr)) {
+		++x1;
+	    } else {
+		beep();
+	    }
+	    break;
+	}
+    }
+
+    wmove(stdscr, y1, x1);
+    *ypos = y1;
+    *xpos = x1;
+
+    if (result >= 0) {
+	if (log_out)
+	    fprintf(log_out, "%c%d,%d\n",
+		    ((result > 0)
+		     ? LAST_POS
+		     : TEMP_POS),
+		    y1, x1);
+    }
+    return result;
+}
+
+static PANEL *
+mkpanel(short color, int rows, int cols, int tly, int tlx)
+{
+    WINDOW *win;
+    PANEL *pan = 0;
+    char *userdata = typeMalloc(char, 3);
+
+    if ((win = newwin(rows, cols, tly, tlx)) != 0) {
+	keypad(win, TRUE);
+	if ((pan = new_panel(win)) == 0) {
+	    delwin(win);
+	} else if (use_colors) {
+	    short fg = ((color == COLOR_BLUE)
+			? COLOR_WHITE
+			: COLOR_BLACK);
+	    short bg = color;
+
+	    init_pair(color, fg, bg);
+	    wbkgdset(win, (chtype) (COLOR_PAIR(color) | ' '));
+	} else if (!unboxed) {
+	    wbkgdset(win, A_BOLD | ' ');
+	}
+    }
+    sprintf(userdata, "p%d", color % 8);
+    set_panel_userptr(pan, (NCURSES_CONST void *) userdata);
+    return pan;
+}
+
+static void
+my_remove_panel(PANEL ** pans, int which)
+{
+    if (pans[which] != 0) {
+	PANEL *pan = pans[which];
+	WINDOW *win = panel_window(pan);
+	char *user = (char *) panel_userptr(pan);
+
+	free(user);
+	del_panel(pan);
+	delwin(win);
+
+	pans[which] = 0;
+    }
+}
+
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define ABS(a)   ((a) < 0 ? -(a) : (a))
+
+static void
+my_create_panel(PANEL ** pans, int which, FillPanel myFill)
+{
+    PANEL *pan = 0;
+    int code;
+    int pair = which;
+    short fg = (pair == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK;
+    short bg = pair;
+    int x0, y0, x1, y1;
+
+    init_pair(pair, fg, bg);
+
+    /* remove the old panel, if any */
+    my_remove_panel(pans, which);
+
+    /* get the position of one corner */
+    wmove(stdscr, getmaxy(stdscr) / 2, getmaxx(stdscr) / 2);
+    getyx(stdscr, y0, x0);
+    while ((code = get_position("First corner", "", which, &x0, &y0)) == 0) {
+	;
+    }
+
+    if (code > 0) {
+	char also[80];
+	sprintf(also, " (first %d,%d)", y0, x0);
+	/* get the position of the opposite corner */
+	while ((code = get_position("Opposite corner",
+				    also, which, &x1, &y1)) == 0) {
+	    ;
+	}
+
+	if (code > 0) {
+	    int tly = MIN(y0, y1);
+	    int tlx = MIN(x0, x1);
+	    pan = mkpanel(pair, ABS(y1 - y0) + 1, ABS(x1 - x0) + 1, tly, tlx);
+	    /* finish */
+	    myFill(pan);
+	    pans[which] = pan;
+	    pflush();
+	    wmove(stdscr, y1, x1);
+	}
+    }
+}
+
+static void
+my_move_panel(PANEL ** pans, int which, bool continuous)
+{
+    if (pans[which] != 0) {
+	int code;
+	int y0, x0;
+	int y1, x1;
+	WINDOW *win = panel_window(pans[which]);
+	char also[80];
+
+	getbegyx(win, y0, x0);
+	sprintf(also, " (start %d,%d)", y0, x0);
+	wmove(stdscr, y0, x0);
+	while ((code = get_position("Move panel", also, which, &x1, &y1)) == 0) {
+	    if (continuous) {
+		move_panel(pans[which], y1, x1);
+		pflush();
+	    }
+	}
+	if (code > 0) {
+	    move_panel(pans[which], y1, x1);
+	}
+    }
+}
+
+static void
+my_resize_panel(PANEL ** pans, int which, FillPanel myFill)
+{
+    if (pans[which] != 0) {
+	int code;
+	int y0, x0;
+	int y1, x1;
+	WINDOW *win = panel_window(pans[which]);
+	char also[80];
+
+	getbegyx(win, y0, x0);
+	sprintf(also, " (start %d,%d)", y0, x0);
+	wmove(stdscr, y0, x0);
+	while ((code = get_position("Resize panel",
+				    also, which, &x1, &y1)) == 0) {
+	    ;
+	}
+	if (code > 0) {
+	    WINDOW *next = newwin(ABS(y1 - y0) + 1,
+				  ABS(x1 - x0) + 1,
+				  MIN(y0, y1),
+				  MIN(x0, x1));
+	    if (next != 0) {
+		keypad(next, TRUE);
+		if (use_colors) {
+		    wbkgdset(next, (chtype) (COLOR_PAIR(which) | ' '));
+		} else if (!unboxed) {
+		    wbkgdset(next, A_BOLD | ' ');
+		}
+		replace_panel(pans[which], next);
+		myFill(pans[which]);
+		delwin(win);
+	    }
+	}
+    }
+}
+
+static void
+init_panel(void)
+{
+    register int y, x;
+
+    for (y = 0; y < LINES - 1; y++) {
+	for (x = 0; x < COLS; x++)
+	    wprintw(stdscr, "%d", (y + x) % 10);
+    }
+}
+
+static void
+fill_panel(PANEL * pan)
+{
+    WINDOW *win = panel_window(pan);
+    int num = ((const char *) panel_userptr(pan))[1];
+    int y, x;
+
+    wmove(win, 1, 1);
+    wprintw(win, "-pan%c-", num);
+    wclrtoeol(win);
+    box(win, 0, 0);
+    for (y = 2; y < getmaxy(win) - 1; y++) {
+	for (x = 1; x < getmaxx(win) - 1; x++) {
+	    wmove(win, y, x);
+	    waddch(win, UChar(num));
+	}
+    }
+}
+
+static void
+fill_unboxed(PANEL * pan)
+{
+    WINDOW *win = panel_window(pan);
+    int num = ((const char *) panel_userptr(pan))[1];
+    int y, x;
+
+    for (y = 0; y < getmaxy(win); y++) {
+	for (x = 0; x < getmaxx(win); x++) {
+	    wmove(win, y, x);
+	    waddch(win, UChar(num));
+	}
+    }
+}
+
+#if USE_WIDEC_SUPPORT
+static void
+make_fullwidth_digit(cchar_t *target, int digit)
+{
+    wchar_t source[2];
+
+    source[0] = digit + 0xff10;
+    source[1] = 0;
+    setcchar(target, source, A_NORMAL, 0, 0);
+}
+
+static void
+init_wide_panel(void)
+{
+    int digit;
+    cchar_t temp[10];
+
+    for (digit = 0; digit < 10; ++digit)
+	make_fullwidth_digit(&temp[digit], digit);
+
+    do {
+	int y, x;
+	getyx(stdscr, y, x);
+	digit = (y + x / 2) % 10;
+    } while (add_wch(&temp[digit]) != ERR);
+}
+
+static void
+fill_wide_panel(PANEL * pan)
+{
+    WINDOW *win = panel_window(pan);
+    int num = ((const char *) panel_userptr(pan))[1];
+    int y, x;
+
+    wmove(win, 1, 1);
+    wprintw(win, "-pan%c-", num);
+    wclrtoeol(win);
+    box(win, 0, 0);
+    for (y = 2; y < getmaxy(win) - 1; y++) {
+	for (x = 1; x < getmaxx(win) - 1; x++) {
+	    wmove(win, y, x);
+	    waddch(win, UChar(num));
+	}
+    }
+}
+#endif
+
+#define MAX_PANELS 5
+
+static int
+which_panel(PANEL * px[MAX_PANELS + 1], PANEL * pan)
+{
+    int result = 0;
+    int j;
+
+    for (j = 1; j <= MAX_PANELS; ++j) {
+	if (px[j] == pan) {
+	    result = j;
+	    break;
+	}
+    }
+    return result;
+}
+
+static void
+show_panels(PANEL * px[MAX_PANELS + 1])
+{
+    static const char *help[] =
+    {
+	"",
+	"Commands are letter/digit pairs.  Digits are the panel number.",
+	"",
+	"  b - put the panel on the bottom of the stack",
+	"  c - create the panel",
+	"  d - delete the panel",
+	"  h - hide the panel",
+	"  m - move the panel (M for continuous move)",
+	"  r - resize the panel",
+	"  s - show the panel",
+	"  b - put the panel on the top of the stack"
+    };
+
+    struct {
+	bool valid;
+	bool hidden;
+	PANEL *above;
+	PANEL *below;
+    } table[MAX_PANELS + 1];
+
+    WINDOW *win;
+    PANEL *pan;
+    int j;
+
+    for (j = 1; j <= MAX_PANELS; ++j) {
+	table[j].valid = (px[j] != 0);
+	if (table[j].valid) {
+	    table[j].hidden = panel_hidden(px[j]);
+	    table[j].above = panel_above(px[j]);
+	    table[j].below = panel_below(px[j]);
+	}
+    }
+
+    if ((win = newwin(LINES - 1, COLS, 0, 0)) != 0) {
+	keypad(win, TRUE);
+	if ((pan = new_panel(win)) != 0) {
+	    werase(win);
+	    mvwprintw(win, 0, 0, "Panels:\n");
+	    for (j = 1; j <= MAX_PANELS; ++j) {
+		if (table[j].valid) {
+		    wprintw(win, " %d:", j);
+		    if (table[j].hidden) {
+			waddstr(win, " hidden");
+		    } else {
+			if (table[j].above) {
+			    wprintw(win, " above %d",
+				    which_panel(px, table[j].above));
+			}
+			if (table[j].below) {
+			    wprintw(win, "%s below %d",
+				    table[j].above ? "," : "",
+				    which_panel(px, table[j].below));
+			}
+		    }
+		    waddch(win, '\n');
+		}
+	    }
+	    for (j = 0; j < (int) SIZEOF(help); ++j) {
+		if (wprintw(win, "%s\n", help[j]) == ERR)
+		    break;
+	    }
+	    wgetch(win);
+	    del_panel(pan);
+	    pflush();
+	}
+	delwin(win);
+    }
+}
+
+#define wrapper(func) \
+static int my_##func(PANEL *pan) \
+{ \
+    int code = ERR; \
+    if (pan != 0) { \
+	code = func(pan); \
+    } \
+    return code; \
+}
+/* *INDENT-OFF* */
+wrapper(bottom_panel)
+wrapper(hide_panel)
+wrapper(show_panel)
+wrapper(top_panel)
+/* *INDENT-ON* */
+
+static void
+do_panel(PANEL * px[MAX_PANELS + 1],
+	 NCURSES_CONST char *cmd,
+	 FillPanel myFill)
+{
+    int which = cmd[1] - '0';
+
+    if (which < 1 || which > MAX_PANELS) {
+	beep();
+	return;
+    }
+
+    if (log_in != 0) {
+	pflush();
+    }
+
+    saywhat(cmd);
+    switch (*cmd) {
+    case 'b':
+	my_bottom_panel(px[which]);
+	break;
+    case 'c':
+	my_create_panel(px, which, myFill);
+	break;
+    case 'd':
+	my_remove_panel(px, which);
+	break;
+    case 'h':
+	my_hide_panel(px[which]);
+	break;
+    case 'm':
+	my_move_panel(px, which, FALSE);
+	break;
+    case 'M':
+	my_move_panel(px, which, TRUE);
+	break;
+    case 'r':
+	my_resize_panel(px, which, myFill);
+	break;
+    case 's':
+	my_show_panel(px[which]);
+	break;
+    case 't':
+	my_top_panel(px[which]);
+	break;
+    }
+}
+
+static bool
+ok_letter(int ch)
+{
+    return isalpha(UChar(ch)) && strchr("bcdhmMrst", ch) != 0;
+}
+
+static bool
+ok_digit(int ch)
+{
+    return isdigit(UChar(ch)) && (ch >= '1') && (ch - '0' <= MAX_PANELS);
+}
+
+/*
+ * A command consists of one or more letter/digit pairs separated by a space.
+ * Digits are limited to 1..MAX_PANELS.
+ *
+ * End the command with a newline.  Reject other characters.
+ */
+static bool
+get_command(PANEL * px[MAX_PANELS + 1], char *buffer, int limit)
+{
+    int length = 0;
+    int y0, x0;
+    int c0, ch;
+    WINDOW *win;
+
+    getyx(stdscr, y0, x0);
+    win = statusline();
+    waddstr(win, "Command:");
+    buffer[length = 0] = '\0';
+
+    if (log_in != 0) {
+	if (fgets(buffer, limit - 3, log_in) != 0) {
+	    length = strlen(buffer);
+	    while (length > 0 && isspace(UChar(buffer[length - 1])))
+		buffer[--length] = '\0';
+	    waddstr(win, buffer);
+	} else {
+	    close_input();
+	}
+	(void) wgetch(win);
+    } else {
+	c0 = 0;
+	for (;;) {
+	    ch = wgetch(win);
+	    if (ch == ERR || ch == QUIT || ch == ESCAPE) {
+		buffer[0] = '\0';
+		break;
+	    } else if (ch == CTRL('L')) {
+		wrefresh(curscr);
+	    } else if (ch == '\n' || ch == KEY_ENTER) {
+		break;
+	    } else if (ch == '?') {
+		show_panels(px);
+	    } else if (length + 3 < limit) {
+		if (ch >= KEY_MIN) {
+		    beep();
+		} else if (ok_letter(UChar(ch))) {
+		    if (isalpha(UChar(c0))) {
+			beep();
+		    } else if (isdigit(UChar(c0))) {
+			wprintw(win, " %c", ch);
+			buffer[length++] = ' ';
+			buffer[length++] = c0 = ch;
+		    } else {
+			wprintw(win, "%c", ch);
+			buffer[length++] = c0 = ch;
+		    }
+		} else if (ok_digit(ch)) {
+		    if (isalpha(UChar(c0))) {
+			wprintw(win, "%c", ch);
+			buffer[length++] = c0 = ch;
+		    } else {
+			beep();
+		    }
+		} else if (ch == ' ') {
+		    if (isdigit(UChar(c0))) {
+			wprintw(win, "%c", ch);
+			buffer[length++] = c0 = ch;
+		    } else {
+			beep();
+		    }
+		} else {
+		    beep();
+		}
+	    } else {
+		beep();
+	    }
+	}
+    }
+
+    wmove(stdscr, y0, x0);
+
+    buffer[length] = '\0';
+    if (log_out && length) {
+	fprintf(log_out, "%s\n", buffer);
+    }
+    return (length != 0);
+}
+
+static void
+demo_panels(InitPanel myInit, FillPanel myFill)
+{
+    int itmp;
+    PANEL *px[MAX_PANELS + 1];
+    char buffer[BUFSIZ];
+
+    scrollok(stdscr, FALSE);	/* we don't want stdscr to scroll! */
+    refresh();
+
+    myInit();
+    memset(px, 0, sizeof(px));
+
+    while (get_command(px, buffer, sizeof(buffer))) {
+	int limit = strlen(buffer);
+	for (itmp = 0; itmp < limit; itmp += 3) {
+	    do_panel(px, buffer + itmp, myFill);
+	}
+	pflush();
+    }
+#if NO_LEAKS
+    for (itmp = 1; itmp <= MAX_PANELS; ++itmp) {
+	my_remove_panel(px, itmp);
+    }
+#endif
+}
+
+static void
+usage(void)
+{
+    static const char *const tbl[] =
+    {
+	"Usage: demo_panels [options]"
+	,""
+	,"Options:"
+	,"  -i file  read commands from file"
+	,"  -o file  record commands in file"
+	,"  -m       do not use colors"
+#if USE_WIDEC_SUPPORT
+	,"  -w       use wide-characters in panels and background"
+#endif
+	,"  -x       do not enclose panels in boxes"
+    };
+    size_t n;
+    for (n = 0; n < SIZEOF(tbl); n++)
+	fprintf(stderr, "%s\n", tbl[n]);
+    ExitProgram(EXIT_FAILURE);
+}
+
 int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
-    printf("Not implemented - demo for panel library\n");
-    return EXIT_SUCCESS;
+    int c;
+    bool monochrome = FALSE;
+    InitPanel myInit = init_panel;
+    FillPanel myFill = fill_panel;
+
+    setlocale(LC_ALL, "");
+
+    while ((c = getopt(argc, argv, "i:o:mwx")) != -1) {
+	switch (c) {
+	case 'i':
+	    log_in = fopen(optarg, "r");
+	    break;
+	case 'o':
+	    log_out = fopen(optarg, "w");
+	    break;
+	case 'm':
+	    monochrome = TRUE;
+	    break;
+#if USE_WIDEC_SUPPORT
+	case 'w':
+	    myInit = init_wide_panel;
+	    myFill = fill_wide_panel;
+	    break;
+#endif
+	case 'x':
+	    unboxed = TRUE;
+	    break;
+	default:
+	    usage();
+	}
+    }
+    if (unboxed)
+	myFill = fill_unboxed;
+
+    initscr();
+    cbreak();
+    noecho();
+    keypad(stdscr, TRUE);
+
+    use_colors = monochrome ? FALSE : has_colors();
+    if (use_colors)
+	start_color();
+
+    demo_panels(myInit, myFill);
+    endwin();
+
+    close_input();
+    close_output();
+
+    ExitProgram(EXIT_SUCCESS);
 }
 #else
 int
diff -Naur ncurses-5.6.orig/test/demo_termcap.c ncurses-5.6/test/demo_termcap.c
--- ncurses-5.6.orig/test/demo_termcap.c	2006-05-06 15:06:36.000000000 -0400
+++ ncurses-5.6/test/demo_termcap.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2005,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2005-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,10 +29,11 @@
 /*
  * Author: Thomas E. Dickey
  *
- * $Id: demo_termcap.c,v 1.5 2006/05/06 19:06:36 tom Exp $
+ * $Id: demo_termcap.c,v 1.7 2008/02/09 18:08:36 tom Exp $
  *
  * A simple demo of the termcap interface.
  */
+#define USE_TINFO
 #include <test.priv.h>
 
 #if HAVE_TGETENT
@@ -115,7 +116,7 @@
 }
 
 static void
-demo_termcap(const char *name)
+demo_termcap(char *name)
 {
     char buffer[1024];
 
@@ -152,11 +153,13 @@
     } else if ((name = getenv("TERM")) != 0) {
 	demo_termcap(name);
     } else {
-	demo_termcap("dumb");
+	static char dumb[] = "dumb";
+	demo_termcap(dumb);
     }
 
     ExitProgram(EXIT_SUCCESS);
 }
+
 #else
 int
 main(int argc GCC_UNUSED,
diff -Naur ncurses-5.6.orig/test/ditto.c ncurses-5.6/test/ditto.c
--- ncurses-5.6.orig/test/ditto.c	2005-04-16 12:35:49.000000000 -0400
+++ ncurses-5.6/test/ditto.c	2008-06-18 06:49:52.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,25 +27,78 @@
  ****************************************************************************/
 
 /*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
+ * Author: Thomas E. Dickey (1998-on)
  *
- * $Id: ditto.c,v 1.5 2005/04/16 16:35:49 tom Exp $
+ * $Id: ditto.c,v 1.30 2008/06/14 23:00:26 tom Exp $
  *
  * The program illustrates how to set up multiple screens from a single
- * program.  Invoke the program by specifying another terminal on the same
- * machine by specifying its device, e.g.,
+ * program.
+ *
+ * If openpty() is supported, the command line parameters are titles for
+ * the windows showing each screen's data.
+ *
+ * If openpty() is not supported, you must invoke the program by specifying
+ * another terminal on the same machine by specifying its device, e.g.,
  *	ditto /dev/ttyp1
  */
 #include <test.priv.h>
 #include <sys/stat.h>
 #include <errno.h>
 
+#ifdef USE_PTHREADS
+#include <pthread.h>
+#endif
+
+#ifdef USE_XTERM_PTY
+#include USE_OPENPTY_HEADER
+#endif
+
+#define MAX_FIFO 256
+
+#define THIS_FIFO(n) ((n) % MAX_FIFO)
+#define NEXT_FIFO(n) THIS_FIFO((n) + 1)
+
+typedef struct {
+    unsigned long sequence;
+    int head;
+    int tail;
+    int data[MAX_FIFO];
+} FIFO;
+
+typedef struct {
+    unsigned long sequence;
+} PEEK;
+
+/*
+ * Data "owned" for a single screen.  Each screen is divided into windows that
+ * show the text read from each terminal.  Input from a given screen will also
+ * be read into one window per screen.
+ */
 typedef struct {
     FILE *input;
     FILE *output;
-    SCREEN *screen;
+    SCREEN *screen;		/* this screen - curses internal data */
+    int which1;			/* this screen's index in DITTO[] array */
+    int length;			/* length of windows[] and peeks[] */
+    char **titles;		/* per-window titles */
+    WINDOW **windows;		/* display data from each screen */
+    PEEK *peeks;		/* indices for each screen's fifo */
+    FIFO fifo;			/* fifo for this screen */
+#ifdef USE_PTHREADS
+    pthread_t thread;
+#endif
 } DITTO;
 
+/*
+ * Structure used to pass multiple parameters via the use_screen()
+ * single-parameter interface.
+ */
+typedef struct {
+    int source;			/* which screen did character come from */
+    int target;			/* which screen is character going to */
+    DITTO *ditto;		/* data for all screens */
+} DDATA;
+
 static void
 failed(const char *s)
 {
@@ -60,10 +113,60 @@
     ExitProgram(EXIT_FAILURE);
 }
 
+/* Add to the head of the fifo, checking for overflow. */
+static void
+put_fifo(FIFO * fifo, int value)
+{
+    int next = NEXT_FIFO(fifo->head);
+    if (next == fifo->tail)
+	fifo->tail = NEXT_FIFO(fifo->tail);
+    fifo->data[next] = value;
+    fifo->head = next;
+    fifo->sequence += 1;
+}
+
+/* Get data from the tail (oldest part) of the fifo, returning -1 if no data.
+ * Since each screen can peek into the fifo, we do not update the tail index,
+ * but modify the peek-index.
+ *
+ * FIXME - test/workaround for case where fifo gets more than a buffer
+ * ahead of peek.
+ */
+static int
+peek_fifo(FIFO * fifo, PEEK * peek)
+{
+    int result = -1;
+    if (peek->sequence < fifo->sequence) {
+	peek->sequence += 1;
+	result = fifo->data[THIS_FIFO(peek->sequence)];
+    }
+    return result;
+}
+
 static FILE *
 open_tty(char *path)
 {
     FILE *fp;
+#ifdef USE_XTERM_PTY
+    int amaster;
+    int aslave;
+    char slave_name[1024];
+    char s_option[1024];
+    char *leaf;
+
+    if (openpty(&amaster, &aslave, slave_name, 0, 0) != 0)
+	failed("openpty");
+    if ((leaf = strrchr(slave_name, '/')) == 0) {
+	errno = EISDIR;
+	failed(slave_name);
+    }
+    sprintf(s_option, "-S%s/%d", slave_name, aslave);
+    if (fork()) {
+	execlp("xterm", "xterm", s_option, "-title", path, (char *) 0);
+	_exit(0);
+    }
+    fp = fdopen(amaster, "r+");
+#else
     struct stat sb;
 
     if (stat(path, &sb) < 0)
@@ -72,75 +175,243 @@
 	errno = ENOTTY;
 	failed(path);
     }
-    fp = fopen(path, "a+");
+    fp = fopen(path, "r+");
     if (fp == 0)
 	failed(path);
     printf("opened %s\n", path);
+#endif
     return fp;
 }
 
+static void
+init_screen(SCREEN *sp GCC_UNUSED, void *arg)
+{
+    DITTO *target = (DITTO *) arg;
+    int high, wide;
+    int k;
+
+    cbreak();
+    noecho();
+    scrollok(stdscr, TRUE);
+    box(stdscr, 0, 0);
+
+    target->windows = typeCalloc(WINDOW *, target->length);
+    target->peeks = typeCalloc(PEEK, target->length);
+
+    high = (LINES - 2) / target->length;
+    wide = (COLS - 2);
+    for (k = 0; k < target->length; ++k) {
+	WINDOW *outer = newwin(high, wide, 1 + (high * k), 1);
+	WINDOW *inner = derwin(outer, high - 2, wide - 2, 1, 1);
+
+	box(outer, 0, 0);
+	mvwaddstr(outer, 0, 2, target->titles[k]);
+	wnoutrefresh(outer);
+
+	scrollok(inner, TRUE);
+	keypad(inner, TRUE);
+#ifndef USE_PTHREADS
+	nodelay(inner, TRUE);
+#endif
+
+	target->windows[k] = inner;
+    }
+    doupdate();
+}
+
+static void
+open_screen(DITTO * target, char **source, int length, int which1)
+{
+    if (which1 != 0) {
+	target->input =
+	    target->output = open_tty(source[which1]);
+    } else {
+	target->input = stdin;
+	target->output = stdout;
+    }
+
+    target->which1 = which1;
+    target->titles = source;
+    target->length = length;
+    target->screen = newterm((char *) 0,	/* assume $TERM is the same */
+			     target->output,
+			     target->input);
+
+    if (target->screen == 0)
+	failed("newterm");
+
+    (void) USING_SCREEN(target->screen, init_screen, target);
+}
+
+static int
+close_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
+{
+    (void) sp;
+    (void) arg;
+    return endwin();
+}
+
+/*
+ * Read data from the 'source' screen.
+ */
+static int
+read_screen(SCREEN *sp GCC_UNUSED, void *arg)
+{
+    DDATA *data = (DDATA *) arg;
+    DITTO *ditto = &(data->ditto[data->source]);
+    WINDOW *win = ditto->windows[data->source];
+    int ch = wgetch(win);
+
+    if (ch > 0 && ch < 256)
+	put_fifo(&(ditto->fifo), ch);
+    else
+	ch = ERR;
+
+    return ch;
+}
+
+/*
+ * Write all of the data that's in fifos for the 'target' screen.
+ */
+static int
+write_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
+{
+    DDATA *data = (DDATA *) arg;
+    DITTO *ditto = &(data->ditto[data->target]);
+    bool changed = FALSE;
+    int which;
+
+    for (which = 0; which < ditto->length; ++which) {
+	WINDOW *win = ditto->windows[which];
+	FIFO *fifo = &(data->ditto[which].fifo);
+	PEEK *peek = &(ditto->peeks[which]);
+	int ch;
+
+	while ((ch = peek_fifo(fifo, peek)) > 0) {
+	    changed = TRUE;
+
+	    waddch(win, ch);
+	    wnoutrefresh(win);
+	}
+    }
+
+    if (changed)
+	doupdate();
+    return OK;
+}
+
+static void
+show_ditto(DITTO * data, int count, DDATA * ddata)
+{
+    int n;
+
+    for (n = 0; n < count; n++) {
+	ddata->target = n;
+	USING_SCREEN(data[n].screen, write_screen, (void *) ddata);
+    }
+}
+
+#ifdef USE_PTHREADS
+static void *
+handle_screen(void *arg)
+{
+    DDATA ddata;
+    int ch;
+
+    memset(&ddata, 0, sizeof(ddata));
+    ddata.ditto = (DITTO *) arg;
+    ddata.source = ddata.ditto->which1;
+    ddata.ditto -= ddata.source;	/* -> base of array */
+
+    for (;;) {
+	ch = read_screen(ddata.ditto->screen, &ddata);
+	if (ch == CTRL('D')) {
+	    int later = (ddata.source ? ddata.source : -1);
+	    int j;
+
+	    for (j = ddata.ditto->length - 1; j > 0; --j) {
+		if (j != later) {
+		    pthread_cancel(ddata.ditto[j].thread);
+		}
+	    }
+	    if (later > 0) {
+		pthread_cancel(ddata.ditto[later].thread);
+	    }
+	    break;
+	}
+	show_ditto(ddata.ditto, ddata.ditto->length, &ddata);
+    }
+    return NULL;
+}
+#endif
+
 int
-main(int argc GCC_UNUSED,
-     char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
     int j;
-    int active_tty = 0;
     DITTO *data;
+#ifndef USE_PTHREADS
+    int count;
+#endif
 
     if (argc <= 1)
 	usage();
 
-    if ((data = (DITTO *) calloc((unsigned) argc, sizeof(DITTO))) == 0)
+    if ((data = typeCalloc(DITTO, argc)) == 0)
 	failed("calloc data");
 
-    data[0].input = stdin;
-    data[0].output = stdout;
-    for (j = 1; j < argc; j++) {
-	data[j].input =
-	    data[j].output = open_tty(argv[j]);
+    for (j = 0; j < argc; j++) {
+	open_screen(&data[j], argv, argc, j);
     }
 
+#ifdef USE_PTHREADS
     /*
-     * If we got this far, we have open connection(s) to the terminal(s).
-     * Set up the screens.
+     * For multi-threaded operation, set up a reader for each of the screens.
+     * That uses blocking I/O rather than polling for input, so no calls to
+     * napms() are needed.
      */
     for (j = 0; j < argc; j++) {
-	active_tty++;
-	data[j].screen = newterm((char *) 0,	/* assume $TERM is the same */
-				 data[j].output,
-				 data[j].input);
-	if (data[j].screen == 0)
-	    failed("newterm");
-	cbreak();
-	noecho();
-	scrollok(stdscr, TRUE);
+	(void) pthread_create(&(data[j].thread), NULL, handle_screen, &data[j]);
     }
-
+    pthread_join(data[1].thread, NULL);
+#else
     /*
      * Loop, reading characters from any of the inputs and writing to all
      * of the screens.
      */
-    for (;;) {
+    for (count = 0;; ++count) {
+	DDATA ddata;
 	int ch;
-	set_term(data[0].screen);
-	ch = getch();
-	if (ch == ERR)
-	    continue;
-	if (ch == 4)
+	int which = (count % argc);
+
+	napms(20);
+
+	ddata.source = which;
+	ddata.ditto = data;
+
+	ch = USING_SCREEN(data[which].screen, read_screen, &ddata);
+	if (ch == CTRL('D')) {
 	    break;
-	for (j = 0; j < argc; j++) {
-	    set_term(data[j].screen);
-	    addch(UChar(ch));
-	    refresh();
+	} else if (ch != ERR) {
+	    show_ditto(data, argc, &ddata);
 	}
     }
+#endif
 
     /*
      * Cleanup and exit
      */
     for (j = argc - 1; j >= 0; j--) {
-	set_term(data[j].screen);
-	endwin();
+	USING_SCREEN(data[j].screen, close_screen, 0);
+	fprintf(data[j].output, "**Closed\r\n");
+
+	/*
+	 * Closing before a delscreen() helps ncurses determine that there
+	 * is no valid output buffer, and can remove the setbuf() data.
+	 */
+	fflush(data[j].output);
+	fclose(data[j].output);
+	delscreen(data[j].screen);
     }
     ExitProgram(EXIT_SUCCESS);
 }
diff -Naur ncurses-5.6.orig/test/dots.c ncurses-5.6/test/dots.c
--- ncurses-5.6.orig/test/dots.c	2006-11-04 14:54:42.000000000 -0500
+++ ncurses-5.6/test/dots.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,10 +29,11 @@
 /*
  * Author: Thomas E. Dickey <dickey@clark.net> 1999
  *
- * $Id: dots.c,v 1.15 2006/11/04 19:54:42 tom Exp $
+ * $Id: dots.c,v 1.17 2008/02/09 18:08:50 tom Exp $
  *
  * A simple demo of the terminfo interface.
  */
+#define USE_TINFO
 #include <test.priv.h>
 
 #if HAVE_SETUPTERM
@@ -46,7 +47,7 @@
 static time_t started;
 
 static int
-outc(int c)
+outc(TPUTS_ARG c)
 {
     if (interrupted) {
 	char tmp = c;
diff -Naur ncurses-5.6.orig/test/dots_mvcur.c ncurses-5.6/test/dots_mvcur.c
--- ncurses-5.6.orig/test/dots_mvcur.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/dots_mvcur.c	2008-06-18 06:49:47.000000000 -0400
@@ -0,0 +1,171 @@
+/****************************************************************************
+ * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.              *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/*
+ * Author: Thomas E. Dickey - 2007
+ *
+ * $Id: dots_mvcur.c,v 1.2 2008/02/09 18:08:57 tom Exp $
+ *
+ * A simple demo of the terminfo interface, and mvcur.
+ */
+#define USE_TINFO
+#include <test.priv.h>
+
+#if HAVE_SETUPTERM
+
+#include <time.h>
+
+#define valid(s) ((s != 0) && s != (char *)-1)
+
+static bool interrupted = FALSE;
+static long total_chars = 0;
+static time_t started;
+
+static int
+outc(TPUTS_ARG c)
+{
+    if (interrupted) {
+	char tmp = c;
+	write(STDOUT_FILENO, &tmp, 1);
+    } else {
+	putc(c, stdout);
+    }
+    return 0;
+}
+
+static bool
+outs(char *s)
+{
+    if (valid(s)) {
+	tputs(s, 1, outc);
+	return TRUE;
+    }
+    return FALSE;
+}
+
+static void
+cleanup(void)
+{
+    outs(exit_attribute_mode);
+    if (!outs(orig_colors))
+	outs(orig_pair);
+    outs(clear_screen);
+    outs(cursor_normal);
+
+    printf("\n\n%ld total chars, rate %.2f/sec\n",
+	   total_chars,
+	   ((double) (total_chars) / (time((time_t *) 0) - started)));
+}
+
+static void
+onsig(int n GCC_UNUSED)
+{
+    interrupted = TRUE;
+}
+
+static float
+ranf(void)
+{
+    long r = (rand() & 077777);
+    return ((float) r / 32768.);
+}
+
+int
+main(
+	int argc GCC_UNUSED,
+	char *argv[]GCC_UNUSED)
+{
+    int x0 = 1, y0 = 1;
+    int x, y, z, p;
+    float r;
+    float c;
+    SCREEN *sp;
+
+    CATCHALL(onsig);
+
+    srand((unsigned) time(0));
+    sp = newterm((char *) 0, stdout, stdin);
+    outs(clear_screen);
+    outs(cursor_home);
+    outs(cursor_invisible);
+    if (max_colors > 1) {
+	if (!valid(set_a_foreground)
+	    || !valid(set_a_background)
+	    || (!valid(orig_colors) && !valid(orig_pair)))
+	    max_colors = -1;
+    }
+
+    r = (float) (lines - 4);
+    c = (float) (columns - 4);
+    started = time((time_t *) 0);
+
+    while (!interrupted) {
+	x = (int) (c * ranf()) + 2;
+	y = (int) (r * ranf()) + 2;
+	p = (ranf() > 0.9) ? '*' : ' ';
+
+	if (mvcur(y0, x0, y, x) != ERR) {
+	    x0 = x;
+	    y0 = y;
+	}
+
+	if (max_colors > 0) {
+	    z = (int) (ranf() * max_colors);
+	    if (ranf() > 0.01) {
+		tputs(tparm2(set_a_foreground, z), 1, outc);
+	    } else {
+		tputs(tparm2(set_a_background, z), 1, outc);
+		napms(1);
+	    }
+	} else if (valid(exit_attribute_mode)
+		   && valid(enter_reverse_mode)) {
+	    if (ranf() <= 0.01) {
+		outs((ranf() > 0.6)
+		     ? enter_reverse_mode
+		     : exit_attribute_mode);
+		napms(1);
+	    }
+	}
+	outc(p);
+	fflush(stdout);
+	++total_chars;
+    }
+    cleanup();
+    endwin();
+    delscreen(sp);
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(int argc GCC_UNUSED,
+     char *argv[]GCC_UNUSED)
+{
+    fprintf(stderr, "This program requires terminfo\n");
+    exit(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/echochar.c ncurses-5.6/test/echochar.c
--- ncurses-5.6.orig/test/echochar.c	2006-12-02 19:14:29.000000000 -0500
+++ ncurses-5.6/test/echochar.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: echochar.c,v 1.3 2006/12/03 00:14:29 tom Exp $
+ * $Id: echochar.c,v 1.6 2008/04/12 22:06:04 tom Exp $
  *
  * Demonstrate the echochar function (compare to dots.c).
  * Thomas Dickey - 2006/11/4
@@ -89,7 +89,7 @@
     int last_fg = 0;
     int last_bg = 0;
 
-    while ((ch = getopt(argc, argv, "r")) != EOF) {
+    while ((ch = getopt(argc, argv, "r")) != -1) {
 	switch (ch) {
 	case 'r':
 	    opt_r = TRUE;
@@ -107,7 +107,7 @@
     if (use_colors) {
 	start_color();
 	if (COLOR_PAIRS > 0) {
-	    my_pairs = calloc(COLOR_PAIRS, sizeof(*my_pairs));
+	    my_pairs = typeCalloc(char, COLOR_PAIRS);
 	}
 	use_colors = (my_pairs != 0);
     }
@@ -146,10 +146,10 @@
 	    }
 	}
 	if (opt_r) {
-	    addch(p);
+	    addch(UChar(p));
 	    refresh();
 	} else {
-	    echochar(p);
+	    echochar(UChar(p));
 	}
 	++total_chars;
     }
diff -Naur ncurses-5.6.orig/test/gdc.c ncurses-5.6/test/gdc.c
--- ncurses-5.6.orig/test/gdc.c	2006-05-20 11:37:44.000000000 -0400
+++ ncurses-5.6/test/gdc.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +33,7 @@
  * modified 10-18-89 for curses (jrl)
  * 10-18-89 added signal handling
  *
- * $Id: gdc.c,v 1.28 2006/05/20 15:37:44 tom Exp $
+ * $Id: gdc.c,v 1.29 2007/07/21 17:45:09 tom Exp $
  */
 
 #include <test.priv.h>
@@ -171,7 +171,7 @@
 
     CATCHALL(sighndl);
 
-    while ((k = getopt(argc, argv, "sn")) != EOF) {
+    while ((k = getopt(argc, argv, "sn")) != -1) {
 	switch (k) {
 	case 's':
 	    scrol = TRUE;
diff -Naur ncurses-5.6.orig/test/hashtest.c ncurses-5.6/test/hashtest.c
--- ncurses-5.6.orig/test/hashtest.c	2006-05-20 12:02:16.000000000 -0400
+++ ncurses-5.6/test/hashtest.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -30,17 +30,9 @@
  *
  * Generate timing statistics for vertical-motion optimization.
  *
- * $Id: hashtest.c,v 1.26 2006/05/20 16:02:16 tom Exp $
+ * $Id: hashtest.c,v 1.28 2008/02/23 23:02:41 tom Exp $
  */
 
-#ifdef TRACE
-#define Trace(p) _tracef p
-#define USE_TRACE 1
-#else
-#define Trace(p)		/* nothing */
-#define USE_TRACE 0
-#endif
-
 #include <test.priv.h>
 
 #define LO_CHAR ' '
@@ -190,7 +182,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((c = getopt(argc, argv, "cf:h:l:norsx")) != EOF) {
+    while ((c = getopt(argc, argv, "cf:h:l:norsx")) != -1) {
 	switch (c) {
 	case 'c':
 	    continuous = TRUE;
diff -Naur ncurses-5.6.orig/test/inch_wide.c ncurses-5.6/test/inch_wide.c
--- ncurses-5.6.orig/test/inch_wide.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/inch_wide.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,279 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: inch_wide.c,v 1.6 2007/07/21 18:37:38 tom Exp $
+ */
+/*
+       int in_wch(cchar_t *wcval);
+       int mvin_wch(int y, int x, cchar_t *wcval);
+       int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval);
+       int win_wch(WINDOW *win, cchar_t *wcval);
+       int in_wchstr(cchar_t *wchstr);
+       int in_wchnstr(cchar_t *wchstr, int n);
+       int win_wchstr(WINDOW *win, cchar_t *wchstr);
+       int win_wchnstr(WINDOW *win, cchar_t *wchstr, int n);
+       int mvin_wchstr(int y, int x, cchar_t *wchstr);
+       int mvin_wchnstr(int y, int x, cchar_t *wchstr, int n);
+       int mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wchstr);
+       int mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wchstr, int n);
+*/
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+#define BASE_Y 7
+#define MAX_COLS 1024
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static int
+test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int j;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int limit;
+    cchar_t ch;
+    cchar_t text[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((j = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(j)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (j) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1)
+		txt_y++;
+	    else
+		beep();
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y)
+		txt_y--;
+	    else
+		beep();
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0)
+		txt_x--;
+	    else
+		beep();
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1)
+		txt_x++;
+	    else
+		beep();
+	    break;
+	case 'w':
+	    test_inchs(level + 1, argv, chrwin, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+
+	mvwprintw(chrwin, 0, 0, "char:");
+	wclrtoeol(chrwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+	    if (win_wch(txtwin, &ch) != ERR) {
+		if (wadd_wch(chrwin, &ch) != ERR) {
+		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
+			if (mvwin_wch(txtwin, txt_y, j, &ch) != ERR) {
+			    if (wadd_wch(chrwin, &ch) == ERR) {
+				break;
+			    }
+			} else {
+			    break;
+			}
+		    }
+		}
+	    }
+	} else {
+	    move(txt_y, txt_x);
+	    if (in_wch(&ch) != ERR) {
+		if (wadd_wch(chrwin, &ch) != ERR) {
+		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
+			if (mvin_wch(txt_y, j, &ch) != ERR) {
+			    if (wadd_wch(chrwin, &ch) == ERR) {
+				break;
+			    }
+			} else {
+			    break;
+			}
+		    }
+		}
+	    }
+	}
+	wnoutrefresh(chrwin);
+
+	mvwprintw(strwin, 0, 0, "text:");
+	wclrtobot(strwin);
+
+	limit = getmaxx(strwin) - 5;
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+	    if (win_wchstr(txtwin, text) != ERR) {
+		mvwadd_wchstr(strwin, 0, 5, text);
+	    }
+
+	    wmove(txtwin, txt_y, txt_x);
+	    if (win_wchnstr(txtwin, text, limit) != ERR) {
+		mvwadd_wchstr(strwin, 1, 5, text);
+	    }
+
+	    if (mvwin_wchstr(txtwin, txt_y, txt_x, text) != ERR) {
+		mvwadd_wchstr(strwin, 2, 5, text);
+	    }
+
+	    if (mvwin_wchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
+		mvwadd_wchstr(strwin, 3, 5, text);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+	    if (in_wchstr(text) != ERR) {
+		mvwadd_wchstr(strwin, 0, 5, text);
+	    }
+
+	    move(txt_y, txt_x);
+	    if (in_wchnstr(text, limit) != ERR) {
+		mvwadd_wchstr(strwin, 1, 5, text);
+	    }
+
+	    if (mvin_wchstr(txt_y, txt_x, text) != ERR) {
+		mvwadd_wchstr(strwin, 2, 5, text);
+	    }
+
+	    if (mvin_wchnstr(txt_y, txt_x, text, limit) != ERR) {
+		mvwadd_wchstr(strwin, 3, 5, text);
+	    }
+	}
+
+	wnoutrefresh(strwin);
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *chrwin;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
+    strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
+
+    test_inchs(1, argv, chrwin, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+    printf("This program requires the wide-ncurses library\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/inchs.c ncurses-5.6/test/inchs.c
--- ncurses-5.6.orig/test/inchs.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/inchs.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,272 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: inchs.c,v 1.9 2007/07/21 19:01:43 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ */
+/*
+       chtype inch(void);
+       chtype winch(WINDOW *win);
+       chtype mvinch(int y, int x);
+       chtype mvwinch(WINDOW *win, int y, int x);
+       int inchstr(chtype *chstr);
+       int inchnstr(chtype *chstr, int n);
+       int winchstr(WINDOW *win, chtype *chstr);
+       int winchnstr(WINDOW *win, chtype *chstr, int n);
+       int mvinchstr(int y, int x, chtype *chstr);
+       int mvinchnstr(int y, int x, chtype *chstr, int n);
+       int mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);
+       int mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);
+*/
+
+#include <test.priv.h>
+
+#define BASE_Y 7
+#define MAX_COLS 1024
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static int
+test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch, j;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int limit;
+    chtype text[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((j = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(j)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (j) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1)
+		txt_y++;
+	    else
+		beep();
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y)
+		txt_y--;
+	    else
+		beep();
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0)
+		txt_x--;
+	    else
+		beep();
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1)
+		txt_x++;
+	    else
+		beep();
+	    break;
+	case 'w':
+	    test_inchs(level + 1, argv, chrwin, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+
+	mvwprintw(chrwin, 0, 0, "char:");
+	wclrtoeol(chrwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+
+	    if ((ch = winch(txtwin)) != ERR) {
+		if (waddch(chrwin, (chtype) ch) != ERR) {
+		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
+			if ((ch = mvwinch(txtwin, txt_y, j)) != ERR) {
+			    if (waddch(chrwin, (chtype) ch) == ERR) {
+				break;
+			    }
+			} else {
+			    break;
+			}
+		    }
+		}
+	    }
+	} else {
+	    move(txt_y, txt_x);
+
+	    if ((ch = inch()) != ERR) {
+		if (waddch(chrwin, (chtype) ch) != ERR) {
+		    for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
+			if ((ch = mvinch(txt_y, j)) != ERR) {
+			    if (waddch(chrwin, (chtype) ch) == ERR) {
+				break;
+			    }
+			} else {
+			    break;
+			}
+		    }
+		}
+	    }
+	}
+	wnoutrefresh(chrwin);
+
+	mvwprintw(strwin, 0, 0, "text:");
+	wclrtobot(strwin);
+
+	limit = getmaxx(strwin) - 5;
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+	    if (winchstr(txtwin, text) != ERR) {
+		mvwaddchstr(strwin, 0, 5, text);
+	    }
+
+	    wmove(txtwin, txt_y, txt_x);
+	    if (winchnstr(txtwin, text, limit) != ERR) {
+		mvwaddchstr(strwin, 1, 5, text);
+	    }
+
+	    if (mvwinchstr(txtwin, txt_y, txt_x, text) != ERR) {
+		mvwaddchstr(strwin, 2, 5, text);
+	    }
+
+	    if (mvwinchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
+		mvwaddchstr(strwin, 3, 5, text);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+	    if (inchstr(text) != ERR) {
+		mvwaddchstr(strwin, 0, 5, text);
+	    }
+
+	    move(txt_y, txt_x);
+	    if (inchnstr(text, limit) != ERR) {
+		mvwaddchstr(strwin, 1, 5, text);
+	    }
+
+	    if (mvinchstr(txt_y, txt_x, text) != ERR) {
+		mvwaddchstr(strwin, 2, 5, text);
+	    }
+
+	    if (mvinchnstr(txt_y, txt_x, text, limit) != ERR) {
+		mvwaddchstr(strwin, 3, 5, text);
+	    }
+	}
+
+	wnoutrefresh(strwin);
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *chrwin;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
+    strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
+
+    test_inchs(1, argv, chrwin, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
diff -Naur ncurses-5.6.orig/test/ins_wide.c ncurses-5.6/test/ins_wide.c
--- ncurses-5.6.orig/test/ins_wide.c	2006-04-01 14:08:03.000000000 -0500
+++ ncurses-5.6/test/ins_wide.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: ins_wide.c,v 1.7 2006/04/01 19:08:03 tom Exp $
+ * $Id: ins_wide.c,v 1.9 2007/07/21 17:41:55 tom Exp $
  *
  * Demonstrate the wins_wstr() and wins_wch functions.
  * Thomas Dickey - 2002/11/23
@@ -55,7 +55,7 @@
 #define WInsNStr   wins_nwstr
 #define WInsStr    wins_wstr
 
-#define TABSIZE 8
+#define MY_TABSIZE 8
 
 typedef enum {
     oDefault = 0,
@@ -123,7 +123,7 @@
 		--result;
 	    break;
 	case '\t':
-	    result += (TABSIZE - (result % TABSIZE));
+	    result += (MY_TABSIZE - (result % MY_TABSIZE));
 	    break;
 	case '\177':
 	    result += 2;
@@ -225,7 +225,7 @@
     WINDOW *look = 0;
     WINDOW *work = 0;
     WINDOW *show = 0;
-    int margin = (2 * TABSIZE) - 1;
+    int margin = (2 * MY_TABSIZE) - 1;
     Options option = ((m_opt ? oMove : oDefault)
 		      | ((w_opt || (level > 0)) ? oWindow : oDefault));
 
@@ -255,7 +255,7 @@
     }
     keypad(work, TRUE);
 
-    for (col = margin + 1; col < COLS; col += TABSIZE)
+    for (col = margin + 1; col < COLS; col += MY_TABSIZE)
 	mvwvline(work, row, col, '.', limit - 2);
 
     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
@@ -490,7 +490,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+    while ((ch = getopt(argc, argv, "mn:w")) != -1) {
 	switch (ch) {
 	case 'm':
 	    m_opt = TRUE;
diff -Naur ncurses-5.6.orig/test/inserts.c ncurses-5.6/test/inserts.c
--- ncurses-5.6.orig/test/inserts.c	2006-10-14 16:43:46.000000000 -0400
+++ ncurses-5.6/test/inserts.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: inserts.c,v 1.15 2006/10/14 20:43:46 tom Exp $
+ * $Id: inserts.c,v 1.18 2007/07/21 17:41:55 tom Exp $
  *
  * Demonstrate the winsstr() and winsch functions.
  * Thomas Dickey - 2002/10/19
@@ -50,7 +50,7 @@
 #define MvWInsCh   mvwinsch
 #define WInsCh     winsch
 
-#define TABSIZE 8
+#define MY_TABSIZE 8
 
 typedef enum {
     oDefault = 0,
@@ -116,7 +116,7 @@
 		--result;
 	    break;
 	case '\t':
-	    result += (TABSIZE - (result % TABSIZE));
+	    result += (MY_TABSIZE - (result % MY_TABSIZE));
 	    break;
 	case '\177':
 	    result += 2;
@@ -147,7 +147,7 @@
     WINDOW *look = 0;
     WINDOW *work = 0;
     WINDOW *show = 0;
-    int margin = (2 * TABSIZE) - 1;
+    int margin = (2 * MY_TABSIZE) - 1;
     Options option = (Options) ((unsigned) (m_opt
 					    ? oMove
 					    : oDefault)
@@ -181,7 +181,7 @@
     }
     keypad(work, TRUE);
 
-    for (col = margin + 1; col < COLS; col += TABSIZE)
+    for (col = margin + 1; col < COLS; col += MY_TABSIZE)
 	mvwvline(work, row, col, '.', limit - 2);
 
     mvwvline(work, row, margin, ACS_VLINE, limit - 2);
@@ -405,7 +405,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+    while ((ch = getopt(argc, argv, "mn:w")) != -1) {
 	switch (ch) {
 	case 'm':
 	    m_opt = TRUE;
diff -Naur ncurses-5.6.orig/test/key_names.c ncurses-5.6/test/key_names.c
--- ncurses-5.6.orig/test/key_names.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/key_names.c	2008-06-18 06:49:47.000000000 -0400
@@ -0,0 +1,56 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: key_names.c,v 1.3 2008/02/09 18:09:18 tom Exp $
+ */
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+    int n;
+
+    setlocale(LC_ALL, "");
+    for (n = KEY_MIN; n < KEY_MAX + 512; n++) {
+	const char *result = key_name(n);
+	if (result != 0)
+	    printf("%d(%5o):%s\n", n, n, result);
+    }
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+    printf("This program requires the wide-ncurses library\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/mk-test.awk ncurses-5.6/test/mk-test.awk
--- ncurses-5.6.orig/test/mk-test.awk	2006-10-21 18:56:50.000000000 -0400
+++ ncurses-5.6/test/mk-test.awk	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: mk-test.awk,v 1.4 2006/10/21 22:56:50 tom Exp $
+# $Id: mk-test.awk,v 1.5 2007/01/20 21:28:47 tom Exp $
 ##############################################################################
-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
+# Copyright (c) 2006,2007 Free 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"), #
@@ -34,7 +34,13 @@
 		first = 1;
 		count = 0;
 	}
-!/^#/	{
+/^#/	{
+		next;
+	}
+/^$/	{
+		next;
+	}
+	{
 		if (first) {
 			print "# generated by mk-test.awk\n";
 			first = 0;
diff -Naur ncurses-5.6.orig/test/modules ncurses-5.6/test/modules
--- ncurses-5.6.orig/test/modules	2006-11-04 13:56:08.000000000 -0500
+++ ncurses-5.6/test/modules	2008-06-18 06:49:44.000000000 -0400
@@ -1,7 +1,6 @@
-# Test-Program modules
-# $Id: modules,v 1.28 2006/11/04 18:56:08 tom Exp $
+# $Id: modules,v 1.36 2007/08/18 17:57:08 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2006,2007 Free 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"), #
@@ -28,8 +27,9 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1997-on
+# Author: Thomas E. Dickey	1997-on
 #
+# Test-Program modules
 
 @ base
 background	progs		$(srcdir)	$(HEADER_DEPS)
@@ -40,13 +40,14 @@
 color_set	progs		$(srcdir)	$(HEADER_DEPS)
 demo_altkeys	progs		$(srcdir)	$(HEADER_DEPS)
 demo_defkey	progs		$(srcdir)	$(HEADER_DEPS)
-demo_keyok	progs		$(srcdir)	$(HEADER_DEPS)
 demo_forms	progs		$(srcdir)	$(HEADER_DEPS)	../include/form.h $(srcdir)/edit_field.h
+demo_keyok	progs		$(srcdir)	$(HEADER_DEPS)
 demo_menus	progs		$(srcdir)	$(HEADER_DEPS)	../include/menu.h
 demo_panels	progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h
 demo_termcap	progs		$(srcdir)	$(HEADER_DEPS)
 ditto		progs		$(srcdir)	$(HEADER_DEPS)
 dots		progs		$(srcdir)	$(HEADER_DEPS)
+dots_mvcur	progs		$(srcdir)	$(HEADER_DEPS)
 echochar	progs		$(srcdir)	$(HEADER_DEPS)
 edit_field	progs		$(srcdir)	$(HEADER_DEPS)	$(srcdir)/edit_field.h
 filter		progs		$(srcdir)	$(HEADER_DEPS)	../include/form.h
@@ -56,22 +57,33 @@
 gdc		progs		$(srcdir)	$(HEADER_DEPS)
 hanoi		progs		$(srcdir)	$(HEADER_DEPS)
 hashtest	progs		$(srcdir)	$(HEADER_DEPS)
+inch_wide	progs		$(srcdir)	$(HEADER_DEPS)
+inchs		progs		$(srcdir)	$(HEADER_DEPS)
 ins_wide	progs		$(srcdir)	$(HEADER_DEPS)
 inserts		progs		$(srcdir)	$(HEADER_DEPS)
+key_names	progs		$(srcdir)	$(HEADER_DEPS)
 keynames	progs		$(srcdir)	$(HEADER_DEPS)
 knight		progs		$(srcdir)	$(HEADER_DEPS)
 lrtest		progs		$(srcdir)	$(HEADER_DEPS)
-ncurses		progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h ../include/menu.h ../include/form.h
 movewindow	progs		$(srcdir)	$(HEADER_DEPS)
+ncurses		progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h ../include/menu.h ../include/form.h
 newdemo		progs		$(srcdir)	$(HEADER_DEPS)
 railroad	progs		$(srcdir)	$(HEADER_DEPS)
 rain		progs		$(srcdir)	$(HEADER_DEPS)
 redraw		progs		$(srcdir)	$(HEADER_DEPS)
 savescreen	progs		$(srcdir)	$(HEADER_DEPS)
 tclock		progs		$(srcdir)	$(HEADER_DEPS)
+test_arrays	progs		$(srcdir)	$(HEADER_DEPS)
+test_get_wstr	progs		$(srcdir)	$(HEADER_DEPS)
+test_getstr	progs		$(srcdir)	$(HEADER_DEPS)
+test_instr	progs		$(srcdir)	$(HEADER_DEPS)
+test_inwstr	progs		$(srcdir)	$(HEADER_DEPS)
+test_opaque	progs		$(srcdir)	$(HEADER_DEPS)
 testaddch	progs		$(srcdir)	$(HEADER_DEPS)
 testcurs	progs		$(srcdir)	$(HEADER_DEPS)
 testscanw	progs		$(srcdir)	$(HEADER_DEPS)
 view		progs		$(srcdir)	$(HEADER_DEPS)
 worm		progs		$(srcdir)	$(HEADER_DEPS)
 xmas		progs		$(srcdir)	$(HEADER_DEPS)
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/test/movewindow.c ncurses-5.6/test/movewindow.c
--- ncurses-5.6.orig/test/movewindow.c	2006-06-17 13:43:22.000000000 -0400
+++ ncurses-5.6/test/movewindow.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: movewindow.c,v 1.19 2006/06/17 17:43:22 tom Exp $
+ * $Id: movewindow.c,v 1.22 2008/04/12 22:01:41 tom Exp $
  *
  * Demonstrate move functions for windows and derived windows from the curses
  * library.
@@ -47,6 +47,12 @@
 #undef derwin
 #endif
 
+#ifdef NCURSES_VERSION
+#define CONST_FMT const
+#else
+#define CONST_FMT		/* nothing */
+#endif
+
 #undef LINE_MAX
 
 #define LINE_MIN	2
@@ -63,14 +69,14 @@
     WINDOW *child;		/* the actual value */
 } FRAME;
 
-static void head_line(char *fmt,...) GCC_PRINTFLIKE(1, 2);
-static void tail_line(char *fmt,...) GCC_PRINTFLIKE(1, 2);
+static void head_line(CONST_FMT char *fmt,...) GCC_PRINTFLIKE(1, 2);
+static void tail_line(CONST_FMT char *fmt,...) GCC_PRINTFLIKE(1, 2);
 
 static unsigned num_windows;
 static FRAME *all_windows;
 
 static void
-message(int lineno, char *fmt, va_list argp)
+message(int lineno, CONST_FMT char *fmt, va_list argp)
 {
     int y, x;
 
@@ -93,7 +99,7 @@
 }
 
 static void
-head_line(char *fmt,...)
+head_line(CONST_FMT char *fmt,...)
 {
     va_list argp;
 
@@ -103,7 +109,7 @@
 }
 
 static void
-tail_line(char *fmt,...)
+tail_line(CONST_FMT char *fmt,...)
 {
     va_list argp;
 
@@ -245,7 +251,7 @@
 
     keypad(child, TRUE);
     if (need > have) {
-	all_windows = (FRAME *) realloc(all_windows, need * sizeof(FRAME));
+	all_windows = typeRealloc(FRAME, need, all_windows);
     }
     all_windows[num_windows].parent = parent;
     all_windows[num_windows].child = child;
@@ -511,7 +517,7 @@
     /* *INDENT-OFF* */
     static struct {
 	int	key;
-	char *	msg;
+	CONST_FMT char * msg;
     } help[] = {
 	{ '?',		"Show this screen" },
 	{ 'b',		"Draw a box inside the current window" },
diff -Naur ncurses-5.6.orig/test/ncurses.c ncurses-5.6/test/ncurses.c
--- ncurses-5.6.orig/test/ncurses.c	2006-12-09 19:13:15.000000000 -0500
+++ ncurses-5.6/test/ncurses.c	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -40,7 +40,7 @@
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
-$Id: ncurses.c,v 1.280 2006/12/10 00:13:15 tom Exp $
+$Id: ncurses.c,v 1.313 2008/04/12 22:04:42 tom Exp $
 
 ***************************************************************************/
 
@@ -76,7 +76,7 @@
 #define NCURSES_CONST_PARAM const void
 
 #ifdef TRACE
-static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
+static unsigned save_trace = TRACE_ORDINARY | TRACE_ICALLS | TRACE_CALLS;
 extern unsigned _nc_tracing;
 #endif
 
@@ -118,6 +118,8 @@
 
 #endif
 
+#define ToggleAcs(temp,real) temp = ((temp == real) ? 0 : real)
+
 #define P(string)	printw("%s\n", string)
 
 #define BLANK		' '	/* this is the background character */
@@ -170,7 +172,7 @@
 {
     return ((c) == QUIT || (c) == ESCAPE);
 }
-#define case_QUIT	case QUIT: case ESCAPE
+#define case_QUIT	QUIT: case ESCAPE
 
 /* Common function to allow ^T to toggle trace-mode in the middle of a test
  * so that trace-files can be made smaller.
@@ -183,14 +185,14 @@
     while ((c = wgetch(win)) == CTRL('T')) {
 	if (_nc_tracing) {
 	    save_trace = _nc_tracing;
-	    _tracef("TOGGLE-TRACING OFF");
+	    Trace(("TOGGLE-TRACING OFF"));
 	    _nc_tracing = 0;
 	} else {
 	    _nc_tracing = save_trace;
 	}
 	trace(_nc_tracing);
 	if (_nc_tracing)
-	    _tracef("TOGGLE-TRACING ON");
+	    Trace(("TOGGLE-TRACING ON"));
     }
 #else
     c = wgetch(win);
@@ -268,6 +270,42 @@
 }
 
 #if USE_WIDEC_SUPPORT
+static wchar_t
+fullwidth_of(int ch)
+{
+    return (ch + 0xff10 - '0');
+}
+
+static void
+make_fullwidth_text(wchar_t *target, const char *source)
+{
+    int ch;
+    while ((ch = *source++) != 0) {
+	*target++ = fullwidth_of(ch);
+    }
+    *target = 0;
+}
+
+static void
+make_narrow_text(wchar_t *target, const char *source)
+{
+    int ch;
+    while ((ch = *source++) != 0) {
+	*target++ = ch;
+    }
+    *target = 0;
+}
+
+static void
+make_fullwidth_digit(cchar_t *target, int digit)
+{
+    wchar_t source[2];
+
+    source[0] = fullwidth_of(digit + '0');
+    source[1] = 0;
+    setcchar(target, source, A_NORMAL, 0, 0);
+}
+
 static int
 wGet_wchar(WINDOW *win, wint_t *result)
 {
@@ -276,14 +314,14 @@
     while ((c = wget_wch(win, result)) == CTRL('T')) {
 	if (_nc_tracing) {
 	    save_trace = _nc_tracing;
-	    _tracef("TOGGLE-TRACING OFF");
+	    Trace(("TOGGLE-TRACING OFF"));
 	    _nc_tracing = 0;
 	} else {
 	    _nc_tracing = save_trace;
 	}
 	trace(_nc_tracing);
 	if (_nc_tracing)
-	    _tracef("TOGGLE-TRACING ON");
+	    Trace(("TOGGLE-TRACING ON"));
     }
 #else
     c = wget_wch(win, result);
@@ -599,15 +637,29 @@
 
     if (winstack == 0) {
 	len_winstack = 20;
-	winstack = (WINSTACK *) malloc(len_winstack * sizeof(WINSTACK));
+	winstack = typeMalloc(WINSTACK, len_winstack);
     } else if (need >= len_winstack) {
 	len_winstack = need;
-	winstack = (WINSTACK *) realloc(winstack, len_winstack * sizeof(WINSTACK));
+	winstack = typeRealloc(WINSTACK, len_winstack, winstack);
     }
     winstack[level].text = txt_win;
     winstack[level].frame = box_win;
 }
 
+#if USE_SOFTKEYS && (NCURSES_VERSION_PATCH < 20071229) && NCURSES_EXT_FUNCS
+static void
+slk_repaint(void)
+{
+    /* this chunk is now done in resize_term() */
+    slk_touch();
+    slk_clear();
+    slk_noutrefresh();
+}
+
+#else
+#define slk_repaint()		/* nothing */
+#endif
+
 /*
  * For wgetch_test(), we create pairs of windows - one for a box, one for text.
  * Resize both and paint the box in the parent.
@@ -623,12 +675,7 @@
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
-#if USE_SOFTKEYS
-    /* FIXME: this chunk should be done in resizeterm() */
-    slk_touch();
-    slk_clear();
-    slk_noutrefresh();
-#endif
+    slk_repaint();
 
     for (n = 0; n < level; ++n) {
 	wresize(winstack[n].frame, high, wide);
@@ -829,6 +876,8 @@
 getch_test(void)
 {
     int delay = begin_getch_test();
+
+    slk_restore();
     wgetch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
@@ -836,10 +885,10 @@
 
 #if USE_WIDEC_SUPPORT
 /*
- * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * For wget_wch_test(), we create pairs of windows - one for a box, one for text.
  * Resize both and paint the box in the parent.
  */
-#ifdef KEY_RESIZE
+#if defined(KEY_RESIZE) && HAVE_WRESIZE
 static void
 resize_wide_boxes(unsigned level, WINDOW *win)
 {
@@ -851,12 +900,7 @@
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
-#if USE_SOFTKEYS
-    /* FIXME: this chunk should be done in resizeterm() */
-    slk_touch();
-    slk_clear();
-    slk_noutrefresh();
-#endif
+    slk_repaint();
 
     for (n = 0; n < level; ++n) {
 	wresize(winstack[n].frame, high, wide);
@@ -889,7 +933,7 @@
     memset(&state, 0, sizeof(state));
     if ((need = wcsrtombs(0, &tmp, 0, &state)) > 0) {
 	unsigned have = need;
-	result = (char *) calloc(have + 1, 1);
+	result = typeCalloc(char, have + 1);
 	tmp = src;
 	if (wcsrtombs(result, &tmp, have, &state) != have) {
 	    free(result);
@@ -955,11 +999,11 @@
 		for (n = 0; (wchar_buf[n] = wint_buf[n]) != 0; ++n) ;
 		if ((temp = wcstos(wchar_buf)) != 0) {
 		    wprintw(win, "I saw %d characters:\n\t`%s'.",
-			    wcslen(wchar_buf), temp);
+			    (int) wcslen(wchar_buf), temp);
 		    free(temp);
 		} else {
 		    wprintw(win, "I saw %d characters (cannot convert).",
-			    wcslen(wchar_buf));
+			    (int) wcslen(wchar_buf));
 		}
 	    }
 	    wclrtoeol(win);
@@ -1018,7 +1062,7 @@
 	    } else
 #endif /* NCURSES_MOUSE_VERSION */
 	    if (code == KEY_CODE_YES) {
-#ifdef KEY_RESIZE
+#if defined(KEY_RESIZE) && HAVE_WRESIZE
 		if (c == KEY_RESIZE) {
 		    resize_wide_boxes(level, win);
 		}
@@ -1044,6 +1088,8 @@
 get_wch_test(void)
 {
     int delay = begin_getch_test();
+
+    slk_restore();
     wget_wch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
@@ -1302,7 +1348,7 @@
 }
 /* *INDENT-OFF* */
 static const struct {
-    attr_t			attr;
+    chtype			attr;
     NCURSES_CONST char *	name;
 } attrs_to_test[] = {
     { A_STANDOUT,	"STANDOUT" },
@@ -1368,7 +1414,7 @@
 	    case '>':
 		adjust_attr_string(1);
 		break;
-	      case_QUIT:
+	    case case_QUIT:
 		result = FALSE;
 		break;
 	    default:
@@ -1644,7 +1690,7 @@
 	    case '>':
 		wide_adjust_attr_string(1);
 		break;
-	      case_QUIT:
+	    case case_QUIT:
 		result = FALSE;
 		break;
 	    default:
@@ -1773,7 +1819,7 @@
 }
 
 static void
-color_legend(WINDOW *helpwin)
+color_legend(WINDOW *helpwin, bool wide)
 {
     int row = 1;
     int col = 1;
@@ -1786,18 +1832,30 @@
     mvwprintw(helpwin, row++, col,
 	      "longer than one screen. Control/N and Control/P can be used");
     mvwprintw(helpwin, row++, col,
-	      "in place up up/down arrow.  Use pageup/pagedown to scroll a");
+	      "in place of up/down arrow.  Use pageup/pagedown to scroll a");
     mvwprintw(helpwin, row++, col,
 	      "full screen; control/B and control/F can be used here.");
     ++row;
     mvwprintw(helpwin, row++, col,
 	      "Toggles:");
     mvwprintw(helpwin, row++, col,
+	      "  a/A     toggle altcharset off/on");
+    mvwprintw(helpwin, row++, col,
 	      "  b/B     toggle bold off/on");
     mvwprintw(helpwin, row++, col,
 	      "  n/N     toggle text/number on/off");
     mvwprintw(helpwin, row++, col,
 	      "  w/W     toggle width between 8/16 colors");
+#if USE_WIDEC_SUPPORT
+    if (wide) {
+	mvwprintw(helpwin, row++, col,
+		  "Wide characters:");
+	mvwprintw(helpwin, row++, col,
+		  "  x/X     toggle text between ASCII and wide-character");
+    }
+#else
+    (void) wide;
+#endif
 }
 
 #define set_color_test(name, value) if (name != value) { name = value; base_row = 0; }
@@ -1817,6 +1875,7 @@
     char numbered[80];
     const char *hello;
     bool done = FALSE;
+    bool opt_acsc = FALSE;
     bool opt_bold = FALSE;
     bool opt_wide = FALSE;
     bool opt_nums = FALSE;
@@ -1868,6 +1927,8 @@
 
 		init_pair(pair, fg, bg);
 		attron((attr_t) COLOR_PAIR(pair));
+		if (opt_acsc)
+		    attron((attr_t) A_ALTCHARSET);
 		if (opt_bold)
 		    attron((attr_t) A_BOLD);
 
@@ -1888,6 +1949,12 @@
 	}
 
 	switch (wGetchar(stdscr)) {
+	case 'a':
+	    opt_acsc = FALSE;
+	    break;
+	case 'A':
+	    opt_acsc = TRUE;
+	    break;
 	case 'b':
 	    opt_bold = FALSE;
 	    break;
@@ -1900,7 +1967,7 @@
 	case 'N':
 	    opt_nums = TRUE;
 	    break;
-	  case_QUIT:
+	case case_QUIT:
 	    done = TRUE;
 	    continue;
 	case 'w':
@@ -1951,7 +2018,7 @@
 	case '?':
 	    if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
 		box(helpwin, 0, 0);
-		color_legend(helpwin);
+		color_legend(helpwin, FALSE);
 		wGetchar(helpwin);
 		delwin(helpwin);
 	    }
@@ -1983,9 +2050,12 @@
     char numbered[80];
     const char *hello;
     bool done = FALSE;
+    bool opt_acsc = FALSE;
     bool opt_bold = FALSE;
     bool opt_wide = FALSE;
     bool opt_nums = FALSE;
+    bool opt_xchr = FALSE;
+    wchar_t buffer[10];
     WINDOW *helpwin;
 
     while (!done) {
@@ -2001,6 +2071,13 @@
 	    hello = "Hello";
 	    per_row = 8;
 	}
+	if (opt_xchr) {
+	    make_fullwidth_text(buffer, hello);
+	    width *= 2;
+	    per_row /= 2;
+	} else {
+	    make_narrow_text(buffer, hello);
+	}
 
 	row_limit = (pairs_max + per_row - 1) / per_row;
 
@@ -2028,14 +2105,20 @@
 	    if (row >= 0 && move(row, col) != ERR) {
 		init_pair(pair, i % COLORS, i / COLORS);
 		color_set(pair, NULL);
+		if (opt_acsc)
+		    attr_on((attr_t) A_ALTCHARSET, NULL);
 		if (opt_bold)
 		    attr_on((attr_t) A_BOLD, NULL);
 
 		if (opt_nums) {
 		    sprintf(numbered, "{%02X}", i);
-		    hello = numbered;
+		    if (opt_xchr) {
+			make_fullwidth_text(buffer, numbered);
+		    } else {
+			make_narrow_text(buffer, numbered);
+		    }
 		}
-		printw("%-*.*s", width, width, hello);
+		addnwstr(buffer, width);
 		attr_set(A_NORMAL, 0, NULL);
 
 		if ((i % per_row) == 0 && (i % COLORS) == 0) {
@@ -2048,6 +2131,12 @@
 	}
 
 	switch (c = wGetchar(stdscr)) {
+	case 'a':
+	    opt_acsc = FALSE;
+	    break;
+	case 'A':
+	    opt_acsc = TRUE;
+	    break;
 	case 'b':
 	    opt_bold = FALSE;
 	    break;
@@ -2060,7 +2149,7 @@
 	case 'N':
 	    opt_nums = TRUE;
 	    break;
-	  case_QUIT:
+	case case_QUIT:
 	    done = TRUE;
 	    continue;
 	case 'w':
@@ -2069,6 +2158,12 @@
 	case 'W':
 	    set_color_test(opt_wide, TRUE);
 	    break;
+	case 'x':
+	    opt_xchr = FALSE;
+	    break;
+	case 'X':
+	    opt_xchr = TRUE;
+	    break;
 	case CTRL('p'):
 	case KEY_UP:
 	    if (base_row <= 0) {
@@ -2111,7 +2206,7 @@
 	case '?':
 	    if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
 		box(helpwin, 0, 0);
-		color_legend(helpwin);
+		color_legend(helpwin, TRUE);
 		wGetchar(helpwin);
 		delwin(helpwin);
 	    }
@@ -2328,7 +2423,7 @@
 	    refresh();
 	    break;
 
-	  case_QUIT:
+	case case_QUIT:
 	    break;
 
 	default:
@@ -2498,7 +2593,7 @@
 	    clrtobot();
 	    break;
 
-	  case_QUIT:
+	case case_QUIT:
 	    goto done;
 
 #if HAVE_SLK_COLOR
@@ -2515,12 +2610,16 @@
 	    }
 	    break;
 #endif
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+	case KEY_RESIZE:
+	    wnoutrefresh(stdscr);
+	    break;
+#endif
 
 	default:
 	    beep();
 	}
-    } while
-	((c = Getchar()) != EOF);
+    } while (!isQuit(c = Getchar()));
 
   done:
     slk_clear();
@@ -2627,7 +2726,7 @@
 	    clrtobot();
 	    break;
 
-	  case_QUIT:
+	case case_QUIT:
 	    goto done;
 
 	case 'F':
@@ -2642,12 +2741,15 @@
 		call_slk_color(fg, bg);
 	    }
 	    break;
-
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+	case KEY_RESIZE:
+	    wnoutrefresh(stdscr);
+	    break;
+#endif
 	default:
 	    beep();
 	}
-    } while
-	((c = Getchar()) != EOF);
+    } while (!isQuit(c = Getchar()));
 
   done:
     slk_clear();
@@ -2662,12 +2764,89 @@
  * Alternate character-set stuff
  *
  ****************************************************************************/
+/* *INDENT-OFF* */
+static struct {
+    chtype attr;
+    const char *name;
+} attrs_to_cycle[] = {
+    { A_NORMAL,		"normal" },
+    { A_BOLD,		"bold" },
+    { A_REVERSE,	"reverse" },
+    { A_UNDERLINE,	"underline" },
+};
+/* *INDENT-ON* */
+
+static bool
+cycle_attr(int ch, unsigned *at_code, chtype *attr)
+{
+    bool result = TRUE;
+
+    switch (ch) {
+    case 'v':
+	if ((*at_code += 1) >= SIZEOF(attrs_to_cycle))
+	    *at_code = 0;
+	break;
+    case 'V':
+	if (*at_code == 1)
+	    *at_code = SIZEOF(attrs_to_cycle) - 1;
+	else
+	    *at_code -= 1;
+	break;
+    default:
+	result = FALSE;
+	break;
+    }
+    if (result)
+	*attr = attrs_to_cycle[*at_code].attr;
+    return result;
+}
+
+static bool
+cycle_colors(int ch, int *fg, int *bg, short *pair)
+{
+    bool result = FALSE;
+
+    if (use_colors) {
+	result = TRUE;
+	switch (ch) {
+	case 'F':
+	    if ((*fg -= 1) < 0)
+		*fg = COLORS - 1;
+	    break;
+	case 'f':
+	    if ((*fg += 1) >= COLORS)
+		*fg = 0;
+	    break;
+	case 'B':
+	    if ((*bg -= 1) < 0)
+		*bg = COLORS - 1;
+	    break;
+	case 'b':
+	    if ((*bg += 1) >= COLORS)
+		*bg = 0;
+	    break;
+	default:
+	    result = FALSE;
+	    break;
+	}
+	if (result) {
+	    *pair = (*fg != COLOR_BLACK || *bg != COLOR_BLACK);
+	    if (*pair != 0) {
+		*pair = 1;
+		if (init_pair(*pair, *fg, *bg) == ERR) {
+		    result = FALSE;
+		}
+	    }
+	}
+    }
+    return result;
+}
 
 /* ISO 6429:  codes 0x80 to 0x9f may be control characters that cause the
  * terminal to perform functions.  The remaining codes can be graphic.
  */
 static void
-show_upper_chars(unsigned first)
+show_upper_chars(unsigned first, int repeat, attr_t attr, short pair)
 {
     bool C1 = (first == 128);
     unsigned code;
@@ -2682,27 +2861,33 @@
     refresh();
 
     for (code = first; code <= last; code++) {
+	int count = repeat;
 	int row = 2 + ((code - first) % 16);
 	int col = ((code - first) / 16) * COLS / 2;
 	char tmp[80];
 	sprintf(tmp, "%3u (0x%x)", code, code);
 	mvprintw(row, col, "%*s: ", COLS / 4, tmp);
-	if (C1)
-	    nodelay(stdscr, TRUE);
-	echochar(code);
-	if (C1) {
-	    /* (yes, this _is_ crude) */
-	    while ((reply = Getchar()) != ERR) {
-		addch(UChar(reply));
-		napms(10);
+
+	do {
+	    if (C1)
+		nodelay(stdscr, TRUE);
+	    echochar(code | attr | COLOR_PAIR(pair));
+	    if (C1) {
+		/* (yes, this _is_ crude) */
+		while ((reply = Getchar()) != ERR) {
+		    addch(UChar(reply));
+		    napms(10);
+		}
+		nodelay(stdscr, FALSE);
 	    }
-	    nodelay(stdscr, FALSE);
-	}
+	} while (--count > 0);
     }
 }
 
+#define PC_COLS 4
+
 static void
-show_pc_chars(void)
+show_pc_chars(int repeat, attr_t attr, short pair)
 {
     unsigned code;
 
@@ -2713,35 +2898,41 @@
     refresh();
 
     for (code = 0; code < 16; ++code) {
-	mvprintw(2, (int) code * 3 + 8, "%X", code);
+	mvprintw(2, (int) code * PC_COLS + 8, "%X", code);
     }
     for (code = 0; code < 256; code++) {
+	int count = repeat;
 	int row = 3 + (code / 16) + (code >= 128);
-	int col = 8 + (code % 16) * 3;
+	int col = 8 + (code % 16) * PC_COLS;
 	if ((code % 16) == 0)
 	    mvprintw(row, 0, "0x%02x:", code);
 	move(row, col);
-	switch (code) {
-	case '\n':
-	case '\r':
-	case '\b':
-	case '\f':
-	case '\033':
-	case 0x9b:
-	    /*
-	     * Skip the ones that do not work.
-	     */
-	    break;
-	default:
-	    addch(code | A_ALTCHARSET);
-	    break;
-	}
+	do {
+	    switch (code) {
+	    case '\n':
+	    case '\r':
+	    case '\b':
+	    case '\f':
+	    case '\033':
+	    case 0x9b:
+		/*
+		 * Skip the ones that do not work.
+		 */
+		break;
+	    default:
+		addch(code | A_ALTCHARSET | attr | COLOR_PAIR(pair));
+		break;
+	    }
+	} while (--count > 0);
     }
 }
 
 static void
-show_box_chars(void)
+show_box_chars(int repeat, attr_t attr, short pair)
 {
+    (void) repeat;
+    attr |= COLOR_PAIR(pair);
+
     erase();
     attron(A_BOLD);
     mvaddstr(0, 20, "Display of the ACS Line-Drawing Set");
@@ -2749,35 +2940,38 @@
     refresh();
     box(stdscr, 0, 0);
     /* *INDENT-OFF* */
-    mvhline(LINES / 2, 0,        ACS_HLINE, COLS);
-    mvvline(0,         COLS / 2, ACS_VLINE, LINES);
-    mvaddch(0,         COLS / 2, ACS_TTEE);
-    mvaddch(LINES / 2, COLS / 2, ACS_PLUS);
-    mvaddch(LINES - 1, COLS / 2, ACS_BTEE);
-    mvaddch(LINES / 2, 0,        ACS_LTEE);
-    mvaddch(LINES / 2, COLS - 1, ACS_RTEE);
+    mvhline(LINES / 2, 0,        ACS_HLINE | attr, COLS);
+    mvvline(0,         COLS / 2, ACS_VLINE | attr, LINES);
+    mvaddch(0,         COLS / 2, ACS_TTEE | attr);
+    mvaddch(LINES / 2, COLS / 2, ACS_PLUS | attr);
+    mvaddch(LINES - 1, COLS / 2, ACS_BTEE | attr);
+    mvaddch(LINES / 2, 0,        ACS_LTEE | attr);
+    mvaddch(LINES / 2, COLS - 1, ACS_RTEE | attr);
     /* *INDENT-ON* */
 
 }
 
 static int
-show_1_acs(int n, const char *name, chtype code)
+show_1_acs(int n, int repeat, const char *name, chtype code)
 {
     const int height = 16;
     int row = 2 + (n % height);
     int col = (n / height) * COLS / 2;
+
     mvprintw(row, col, "%*s : ", COLS / 4, name);
-    addch(code);
+    do {
+	addch(code);
+    } while (--repeat > 0);
     return n + 1;
 }
 
 static void
-show_acs_chars(void)
+show_acs_chars(int repeat, attr_t attr, short pair)
 /* display the ACS character set */
 {
     int n;
 
-#define BOTH(name) #name, name
+#define BOTH(name) #name, (name | attr | COLOR_PAIR(pair))
 
     erase();
     attron(A_BOLD);
@@ -2785,48 +2979,48 @@
     attroff(A_BOLD);
     refresh();
 
-    n = show_1_acs(0, BOTH(ACS_ULCORNER));
-    n = show_1_acs(n, BOTH(ACS_URCORNER));
-    n = show_1_acs(n, BOTH(ACS_LLCORNER));
-    n = show_1_acs(n, BOTH(ACS_LRCORNER));
-
-    n = show_1_acs(n, BOTH(ACS_LTEE));
-    n = show_1_acs(n, BOTH(ACS_RTEE));
-    n = show_1_acs(n, BOTH(ACS_TTEE));
-    n = show_1_acs(n, BOTH(ACS_BTEE));
+    n = show_1_acs(0, repeat, BOTH(ACS_ULCORNER));
+    n = show_1_acs(n, repeat, BOTH(ACS_URCORNER));
+    n = show_1_acs(n, repeat, BOTH(ACS_LLCORNER));
+    n = show_1_acs(n, repeat, BOTH(ACS_LRCORNER));
+
+    n = show_1_acs(n, repeat, BOTH(ACS_LTEE));
+    n = show_1_acs(n, repeat, BOTH(ACS_RTEE));
+    n = show_1_acs(n, repeat, BOTH(ACS_TTEE));
+    n = show_1_acs(n, repeat, BOTH(ACS_BTEE));
 
-    n = show_1_acs(n, BOTH(ACS_HLINE));
-    n = show_1_acs(n, BOTH(ACS_VLINE));
+    n = show_1_acs(n, repeat, BOTH(ACS_HLINE));
+    n = show_1_acs(n, repeat, BOTH(ACS_VLINE));
 
     /*
      * HPUX's ACS definitions are broken here.  Just give up.
      */
 #if !(defined(__hpux) && !defined(NCURSES_VERSION))
-    n = show_1_acs(n, BOTH(ACS_LARROW));
-    n = show_1_acs(n, BOTH(ACS_RARROW));
-    n = show_1_acs(n, BOTH(ACS_UARROW));
-    n = show_1_acs(n, BOTH(ACS_DARROW));
-
-    n = show_1_acs(n, BOTH(ACS_BLOCK));
-    n = show_1_acs(n, BOTH(ACS_BOARD));
-    n = show_1_acs(n, BOTH(ACS_LANTERN));
-    n = show_1_acs(n, BOTH(ACS_BULLET));
-    n = show_1_acs(n, BOTH(ACS_CKBOARD));
-    n = show_1_acs(n, BOTH(ACS_DEGREE));
-    n = show_1_acs(n, BOTH(ACS_DIAMOND));
-    n = show_1_acs(n, BOTH(ACS_PLMINUS));
-    n = show_1_acs(n, BOTH(ACS_PLUS));
-
-    n = show_1_acs(n, BOTH(ACS_GEQUAL));
-    n = show_1_acs(n, BOTH(ACS_NEQUAL));
-    n = show_1_acs(n, BOTH(ACS_LEQUAL));
-
-    n = show_1_acs(n, BOTH(ACS_STERLING));
-    n = show_1_acs(n, BOTH(ACS_PI));
-    n = show_1_acs(n, BOTH(ACS_S1));
-    n = show_1_acs(n, BOTH(ACS_S3));
-    n = show_1_acs(n, BOTH(ACS_S7));
-    n = show_1_acs(n, BOTH(ACS_S9));
+    n = show_1_acs(n, repeat, BOTH(ACS_LARROW));
+    n = show_1_acs(n, repeat, BOTH(ACS_RARROW));
+    n = show_1_acs(n, repeat, BOTH(ACS_UARROW));
+    n = show_1_acs(n, repeat, BOTH(ACS_DARROW));
+
+    n = show_1_acs(n, repeat, BOTH(ACS_BLOCK));
+    n = show_1_acs(n, repeat, BOTH(ACS_BOARD));
+    n = show_1_acs(n, repeat, BOTH(ACS_LANTERN));
+    n = show_1_acs(n, repeat, BOTH(ACS_BULLET));
+    n = show_1_acs(n, repeat, BOTH(ACS_CKBOARD));
+    n = show_1_acs(n, repeat, BOTH(ACS_DEGREE));
+    n = show_1_acs(n, repeat, BOTH(ACS_DIAMOND));
+    n = show_1_acs(n, repeat, BOTH(ACS_PLMINUS));
+    n = show_1_acs(n, repeat, BOTH(ACS_PLUS));
+
+    n = show_1_acs(n, repeat, BOTH(ACS_GEQUAL));
+    n = show_1_acs(n, repeat, BOTH(ACS_NEQUAL));
+    n = show_1_acs(n, repeat, BOTH(ACS_LEQUAL));
+
+    n = show_1_acs(n, repeat, BOTH(ACS_STERLING));
+    n = show_1_acs(n, repeat, BOTH(ACS_PI));
+    n = show_1_acs(n, repeat, BOTH(ACS_S1));
+    n = show_1_acs(n, repeat, BOTH(ACS_S3));
+    n = show_1_acs(n, repeat, BOTH(ACS_S7));
+    n = show_1_acs(n, repeat, BOTH(ACS_S9));
 #endif
 }
 
@@ -2838,6 +3032,14 @@
     const char *pch_kludge = ((term != 0 && strstr(term, "linux"))
 			      ? "p=PC, "
 			      : "");
+    chtype attr = A_NORMAL;
+    int digit = 0;
+    int repeat = 1;
+    int fg = COLOR_BLACK;
+    int bg = COLOR_BLACK;
+    unsigned at_code = 0;
+    short pair = 0;
+    void (*last_show_acs) (int, attr_t, short) = 0;
 
     do {
 	switch (c) {
@@ -2845,29 +3047,77 @@
 	    Repaint();
 	    break;
 	case 'a':
-	    show_acs_chars();
+	    ToggleAcs(last_show_acs, show_acs_chars);
+	    break;
+	case 'p':
+	    if (*pch_kludge)
+		ToggleAcs(last_show_acs, show_pc_chars);
+	    else
+		beep();
 	    break;
 	case 'x':
-	    show_box_chars();
+	    ToggleAcs(last_show_acs, show_box_chars);
 	    break;
 	case '0':
 	case '1':
 	case '2':
 	case '3':
-	    show_upper_chars((unsigned) ((c - '0') * 32 + 128));
+	    digit = (c - '0');
+	    last_show_acs = 0;
 	    break;
-	case 'p':
-	    show_pc_chars();
+	case '-':
+	    if (digit > 0) {
+		--digit;
+		last_show_acs = 0;
+	    } else {
+		beep();
+	    }
+	    break;
+	case '+':
+	    if (digit < 3) {
+		++digit;
+		last_show_acs = 0;
+	    } else {
+		beep();
+	    }
+	    break;
+	case '>':
+	    if (repeat < (COLS / 4))
+		++repeat;
+	    break;
+	case '<':
+	    if (repeat > 1)
+		--repeat;
 	    break;
 	default:
-	    beep();
+	    if (cycle_attr(c, &at_code, &attr)
+		|| cycle_colors(c, &fg, &bg, &pair)) {
+		break;
+	    } else {
+		beep();
+	    }
 	    break;
 	}
+	if (last_show_acs != 0)
+	    last_show_acs(repeat, attr, pair);
+	else
+	    show_upper_chars(digit * 32 + 128, repeat, attr, pair);
+
 	mvprintw(LINES - 3, 0,
 		 "Note: ANSI terminals may not display C1 characters.");
 	mvprintw(LINES - 2, 0,
-		 "Select: a=ACS, x=box, %s0=C1, 1,2,3=GR characters, ESC=quit",
+		 "Select: a=ACS, x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
 		 pch_kludge);
+	if (use_colors) {
+	    mvprintw(LINES - 1, 0,
+		     "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
+		     attrs_to_cycle[at_code].name,
+		     fg, bg);
+	} else {
+	    mvprintw(LINES - 1, 0,
+		     "v/V cycles through video attributes (%s).",
+		     attrs_to_cycle[at_code].name);
+	}
 	refresh();
     } while (!isQuit(c = Getchar()));
 
@@ -2878,7 +3128,7 @@
 
 #if USE_WIDEC_SUPPORT
 static cchar_t *
-merge_wide_attr(cchar_t *dst, cchar_t *src, attr_t attr, short pair)
+merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair)
 {
     int count = getcchar(src, NULL, NULL, NULL, 0);
     wchar_t *wch = 0;
@@ -2887,7 +3137,7 @@
 
     *dst = *src;
     if (count > 0) {
-	if ((wch = typeMalloc(wchar_t, count)) != 0) {
+	if ((wch = typeMalloc(wchar_t, count + 1)) != 0) {
 	    if (getcchar(src, wch, &ignore_attr, &ignore_pair, 0) != ERR) {
 		attr |= (ignore_attr & A_ALTCHARSET);
 		setcchar(dst, wch, attr, pair, 0);
@@ -2950,20 +3200,23 @@
 }
 
 static int
-show_1_wacs(int n, const char *name, const cchar_t *code)
+show_1_wacs(int n, int repeat, const char *name, const cchar_t *code)
 {
     const int height = 16;
     int row = 2 + (n % height);
     int col = (n / height) * COLS / 2;
+
     mvprintw(row, col, "%*s : ", COLS / 4, name);
-    add_wchnstr(code, 1);
+    while (repeat-- >= 0) {
+	add_wch(code);
+    }
     return n + 1;
 }
 
 #define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
 
 static void
-show_wacs_chars(attr_t attr, short pair)
+show_wacs_chars(int repeat, attr_t attr, short pair)
 /* display the wide-ACS character set */
 {
     cchar_t temp;
@@ -2979,45 +3232,45 @@
     attroff(A_BOLD);
     refresh();
 
-    n = show_1_wacs(0, BOTH2(WACS_ULCORNER));
-    n = show_1_wacs(n, BOTH2(WACS_URCORNER));
-    n = show_1_wacs(n, BOTH2(WACS_LLCORNER));
-    n = show_1_wacs(n, BOTH2(WACS_LRCORNER));
-
-    n = show_1_wacs(n, BOTH2(WACS_LTEE));
-    n = show_1_wacs(n, BOTH2(WACS_RTEE));
-    n = show_1_wacs(n, BOTH2(WACS_TTEE));
-    n = show_1_wacs(n, BOTH2(WACS_BTEE));
-
-    n = show_1_wacs(n, BOTH2(WACS_HLINE));
-    n = show_1_wacs(n, BOTH2(WACS_VLINE));
-
-    n = show_1_wacs(n, BOTH2(WACS_LARROW));
-    n = show_1_wacs(n, BOTH2(WACS_RARROW));
-    n = show_1_wacs(n, BOTH2(WACS_UARROW));
-    n = show_1_wacs(n, BOTH2(WACS_DARROW));
-
-    n = show_1_wacs(n, BOTH2(WACS_BLOCK));
-    n = show_1_wacs(n, BOTH2(WACS_BOARD));
-    n = show_1_wacs(n, BOTH2(WACS_LANTERN));
-    n = show_1_wacs(n, BOTH2(WACS_BULLET));
-    n = show_1_wacs(n, BOTH2(WACS_CKBOARD));
-    n = show_1_wacs(n, BOTH2(WACS_DEGREE));
-    n = show_1_wacs(n, BOTH2(WACS_DIAMOND));
-    n = show_1_wacs(n, BOTH2(WACS_PLMINUS));
-    n = show_1_wacs(n, BOTH2(WACS_PLUS));
+    n = show_1_wacs(0, repeat, BOTH2(WACS_ULCORNER));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_URCORNER));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LLCORNER));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LRCORNER));
+
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LTEE));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_RTEE));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_TTEE));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_BTEE));
+
+    n = show_1_wacs(n, repeat, BOTH2(WACS_HLINE));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_VLINE));
+
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LARROW));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_RARROW));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_UARROW));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_DARROW));
+
+    n = show_1_wacs(n, repeat, BOTH2(WACS_BLOCK));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_BOARD));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LANTERN));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_BULLET));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_CKBOARD));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_DEGREE));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_DIAMOND));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_PLMINUS));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_PLUS));
 
 #ifdef CURSES_WACS_ARRAY
-    n = show_1_wacs(n, BOTH2(WACS_GEQUAL));
-    n = show_1_wacs(n, BOTH2(WACS_NEQUAL));
-    n = show_1_wacs(n, BOTH2(WACS_LEQUAL));
-
-    n = show_1_wacs(n, BOTH2(WACS_STERLING));
-    n = show_1_wacs(n, BOTH2(WACS_PI));
-    n = show_1_wacs(n, BOTH2(WACS_S1));
-    n = show_1_wacs(n, BOTH2(WACS_S3));
-    n = show_1_wacs(n, BOTH2(WACS_S7));
-    n = show_1_wacs(n, BOTH2(WACS_S9));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_GEQUAL));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_NEQUAL));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_LEQUAL));
+
+    n = show_1_wacs(n, repeat, BOTH2(WACS_STERLING));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_PI));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_S1));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_S3));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_S7));
+    n = show_1_wacs(n, repeat, BOTH2(WACS_S9));
 #endif
 }
 
@@ -3026,10 +3279,11 @@
 #define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
 
 static void
-show_wbox_chars(attr_t attr, short pair)
+show_wbox_chars(int repeat, attr_t attr, short pair)
 {
     cchar_t temp;
 
+    (void) repeat;
     erase();
     attron(A_BOLD);
     mvaddstr(0, 20, "Display of the Wide-ACS Line-Drawing Set");
@@ -3071,10 +3325,11 @@
 #define SHOW_UTF8(n, name, code) show_2_wacs(n, name, code, attr, pair)
 
 static void
-show_utf8_chars(attr_t attr, short pair)
+show_utf8_chars(int repeat, attr_t attr, short pair)
 {
     int n;
 
+    (void) repeat;
     erase();
     attron(A_BOLD);
     mvaddstr(0, 20, "Display of the Wide-ACS Character Set");
@@ -3121,83 +3376,6 @@
     /* *INDENT-ON* */
 
 }
-/* *INDENT-OFF* */
-static struct {
-    attr_t attr;
-    char *name;
-} attrs_to_cycle[] = {
-    { A_NORMAL,		"normal" },
-    { A_BOLD,		"bold" },
-    { A_REVERSE,	"reverse" },
-    { A_UNDERLINE,	"underline" },
-};
-/* *INDENT-ON* */
-
-static bool
-cycle_attr(int ch, unsigned *at_code, chtype *attr)
-{
-    bool result = TRUE;
-
-    switch (ch) {
-    case 'v':
-	if ((*at_code += 1) >= SIZEOF(attrs_to_cycle))
-	    *at_code = 0;
-	break;
-    case 'V':
-	if (*at_code == 1)
-	    *at_code = SIZEOF(attrs_to_cycle) - 1;
-	else
-	    *at_code -= 1;
-	break;
-    default:
-	result = FALSE;
-	break;
-    }
-    if (result)
-	*attr = attrs_to_cycle[*at_code].attr;
-    return result;
-}
-
-static bool
-cycle_colors(int ch, int *fg, int *bg, short *pair)
-{
-    bool result = FALSE;
-
-    if (use_colors) {
-	result = TRUE;
-	switch (ch) {
-	case 'F':
-	    if ((*fg -= 1) < 0)
-		*fg = COLORS - 1;
-	    break;
-	case 'f':
-	    if ((*fg += 1) >= COLORS)
-		*fg = 0;
-	    break;
-	case 'B':
-	    if ((*bg -= 1) < 0)
-		*bg = COLORS - 1;
-	    break;
-	case 'b':
-	    if ((*bg += 1) < 0)
-		*bg = 0;
-	    break;
-	default:
-	    result = FALSE;
-	    break;
-	}
-	if (result) {
-	    *pair = (*fg != COLOR_BLACK || *bg != COLOR_BLACK);
-	    if (*pair != 0) {
-		*pair = 1;
-		if (init_pair(*pair, *fg, *bg) == ERR) {
-		    result = FALSE;
-		}
-	    }
-	}
-    }
-    return result;
-}
 
 /* display the wide-ACS character set */
 static void
@@ -3205,14 +3383,14 @@
 {
     int c = 'a';
     int digit = 0;
-    int repeat = 0;
+    int repeat = 1;
     int space = ' ';
     chtype attr = A_NORMAL;
     int fg = COLOR_BLACK;
     int bg = COLOR_BLACK;
     unsigned at_code = 0;
     short pair = 0;
-    void (*last_show_wacs) (attr_t, short) = 0;
+    void (*last_show_wacs) (int, attr_t, short) = 0;
 
     do {
 	switch (c) {
@@ -3220,27 +3398,31 @@
 	    Repaint();
 	    break;
 	case 'a':
-	    last_show_wacs = show_wacs_chars;
+	    ToggleAcs(last_show_wacs, show_wacs_chars);
 	    break;
 	case 'x':
-	    last_show_wacs = show_wbox_chars;
+	    ToggleAcs(last_show_wacs, show_wbox_chars);
 	    break;
 	case 'u':
-	    last_show_wacs = show_utf8_chars;
+	    ToggleAcs(last_show_wacs, show_utf8_chars);
 	    break;
 	default:
 	    if (c < 256 && isdigit(c)) {
 		digit = (c - '0');
+		last_show_wacs = 0;
 	    } else if (c == '+') {
 		++digit;
+		last_show_wacs = 0;
 	    } else if (c == '-' && digit > 0) {
 		--digit;
+		last_show_wacs = 0;
 	    } else if (c == '>' && repeat < (COLS / 4)) {
 		++repeat;
-	    } else if (c == '<' && repeat > 0) {
+	    } else if (c == '<' && repeat > 1) {
 		--repeat;
 	    } else if (c == '_') {
 		space = (space == ' ') ? '_' : ' ';
+		last_show_wacs = 0;
 	    } else if (cycle_attr(c, &at_code, &attr)
 		       || cycle_colors(c, &fg, &bg, &pair)) {
 		if (last_show_wacs != 0)
@@ -3249,12 +3431,12 @@
 		beep();
 		break;
 	    }
-	    last_show_wacs = 0;
-	    show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair);
 	    break;
 	}
 	if (last_show_wacs != 0)
-	    last_show_wacs(attr, pair);
+	    last_show_wacs(repeat, attr, pair);
+	else
+	    show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair);
 
 	mvprintw(LINES - 3, 0,
 		 "Select: a WACS, x box, u UTF-8, 0-9,+/- non-ASCII, </> repeat, ESC=quit");
@@ -3379,12 +3561,17 @@
     WINDOW *wind;
 };
 
-#ifdef NCURSES_VERSION
-#define keypad_active(win) (win)->_use_keypad
-#define scroll_active(win) (win)->_scroll
+#if defined(NCURSES_VERSION)
+#if (NCURSES_VERSION_PATCH < 20070331) && NCURSES_EXT_FUNCS
+#define is_keypad(win)   (win)->_use_keypad
+#define is_scrollok(win) (win)->_scroll
+#elif !defined(is_keypad)
+#define is_keypad(win)   FALSE
+#define is_scrollok(win) FALSE
+#endif
 #else
-#define keypad_active(win) FALSE
-#define scroll_active(win) FALSE
+#define is_keypad(win)   FALSE
+#define is_scrollok(win) FALSE
 #endif
 
 /* We need to know if these flags are actually set, so don't look in FRAME.
@@ -3395,14 +3582,16 @@
 HaveKeypad(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
-    return keypad_active(win);
+    (void) win;
+    return is_keypad(win);
 }
 
 static bool
 HaveScroll(FRAME * curp)
 {
     WINDOW *win = (curp ? curp->wind : stdscr);
-    return scroll_active(win);
+    (void) win;
+    return is_scrollok(win);
 }
 
 static void
@@ -3540,7 +3729,7 @@
 	case KEY_RIGHT:
 	    j++;
 	    break;
-	  case_QUIT:
+	case case_QUIT:
 	    return ((pair *) 0);
 #ifdef NCURSES_MOUSE_VERSION
 	case KEY_MOUSE:
@@ -3665,7 +3854,7 @@
 acs_and_scroll(void)
 /* Demonstrate windows */
 {
-    int c, i;
+    int c;
     FRAME *current = (FRAME *) 0, *neww;
     WINDOW *usescr = stdscr;
 #if HAVE_PUTWIN && HAVE_GETWIN
@@ -3683,7 +3872,7 @@
 	transient((FRAME *) 0, (char *) 0);
 	switch (c) {
 	case CTRL('C'):
-	    neww = (FRAME *) calloc(1, sizeof(FRAME));
+	    neww = typeCalloc(FRAME, 1);
 	    if ((neww->wind = getwindow()) == (WINDOW *) 0)
 		goto breakout;
 
@@ -3759,7 +3948,7 @@
 	    if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) {
 		transient(current, "Can't open screen dump file");
 	    } else {
-		neww = (FRAME *) calloc(1, sizeof(FRAME));
+		neww = typeCalloc(FRAME, 1);
 
 		neww->next = current->next;
 		neww->last = current;
@@ -3778,7 +3967,7 @@
 	case CTRL('X'):	/* resize window */
 	    if (current) {
 		pair *tmp, ul, lr;
-		int mx, my;
+		int i, mx, my;
 
 		move(0, 0);
 		clrtoeol();
@@ -3945,7 +4134,11 @@
 {
     wmove(stdscr, LINES - 1, 0);
     wclrtoeol(stdscr);
-    waddstr(stdscr, text);
+    if (text != 0 && *text != '\0') {
+	waddstr(stdscr, text);
+	waddstr(stdscr, "; ");
+    }
+    waddstr(stdscr, "press any key to continue");
 }				/* end of saywhat */
 
 /*+-------------------------------------------------------------------------
@@ -3998,6 +4191,17 @@
 	fill_panel(win)
 --------------------------------------------------------------------------*/
 static void
+init_panel(void)
+{
+    register int y, x;
+
+    for (y = 0; y < LINES - 1; y++) {
+	for (x = 0; x < COLS; x++)
+	    wprintw(stdscr, "%d", (y + x) % 10);
+    }
+}
+
+static void
 fill_panel(PANEL * pan)
 {
     WINDOW *win = panel_window(pan);
@@ -4014,217 +4218,204 @@
 	    waddch(win, UChar(num));
 	}
     }
-}				/* end of fill_panel */
+}
 
+#if USE_WIDEC_SUPPORT
 static void
-demo_panels(void)
+init_wide_panel(void)
 {
-    int itmp;
-    register int y, x;
+    int digit;
+    cchar_t temp[10];
 
-    refresh();
+    for (digit = 0; digit < 10; ++digit)
+	make_fullwidth_digit(&temp[digit], digit);
 
-    for (y = 0; y < LINES - 1; y++) {
-	for (x = 0; x < COLS; x++)
-	    wprintw(stdscr, "%d", (y + x) % 10);
-    }
-    for (y = 0; y < 5; y++) {
-	PANEL *p1;
-	PANEL *p2;
-	PANEL *p3;
-	PANEL *p4;
-	PANEL *p5;
-
-	p1 = mkpanel(COLOR_RED,
-		     LINES / 2 - 2,
-		     COLS / 8 + 1,
-		     0,
-		     0);
-	set_panel_userptr(p1, (NCURSES_CONST void *) "p1");
-
-	p2 = mkpanel(COLOR_GREEN,
-		     LINES / 2 + 1,
-		     COLS / 7,
-		     LINES / 4,
-		     COLS / 10);
-	set_panel_userptr(p2, (NCURSES_CONST void *) "p2");
-
-	p3 = mkpanel(COLOR_YELLOW,
-		     LINES / 4,
-		     COLS / 10,
-		     LINES / 2,
-		     COLS / 9);
-	set_panel_userptr(p3, (NCURSES_CONST void *) "p3");
-
-	p4 = mkpanel(COLOR_BLUE,
-		     LINES / 2 - 2,
-		     COLS / 8,
-		     LINES / 2 - 2,
-		     COLS / 3);
-	set_panel_userptr(p4, (NCURSES_CONST void *) "p4");
-
-	p5 = mkpanel(COLOR_MAGENTA,
-		     LINES / 2 - 2,
-		     COLS / 8,
-		     LINES / 2,
-		     COLS / 2 - 2);
-	set_panel_userptr(p5, (NCURSES_CONST void *) "p5");
-
-	fill_panel(p1);
-	fill_panel(p2);
-	fill_panel(p3);
-	fill_panel(p4);
-	fill_panel(p5);
-	hide_panel(p4);
-	hide_panel(p5);
-	pflush();
-	saywhat("press any key to continue");
-	wait_a_while(nap_msec);
+    do {
+	int y, x;
+	getyx(stdscr, y, x);
+	digit = (y + x / 2) % 10;
+    } while (add_wch(&temp[digit]) != ERR);
+}
 
-	saywhat("h3 s1 s2 s4 s5; press any key to continue");
-	move_panel(p1, 0, 0);
-	hide_panel(p3);
-	show_panel(p1);
-	show_panel(p2);
-	show_panel(p4);
-	show_panel(p5);
-	pflush();
-	wait_a_while(nap_msec);
+static void
+fill_wide_panel(PANEL * pan)
+{
+    WINDOW *win = panel_window(pan);
+    int num = ((const char *) panel_userptr(pan))[1];
+    int y, x;
 
-	saywhat("s1; press any key to continue");
-	show_panel(p1);
-	pflush();
-	wait_a_while(nap_msec);
+    wmove(win, 1, 1);
+    wprintw(win, "-pan%c-", num);
+    wclrtoeol(win);
+    box(win, 0, 0);
+    for (y = 2; y < getmaxy(win) - 1; y++) {
+	for (x = 1; x < getmaxx(win) - 1; x++) {
+	    wmove(win, y, x);
+	    waddch(win, UChar(num));
+	}
+    }
+}
+#endif
 
-	saywhat("s2; press any key to continue");
-	show_panel(p2);
-	pflush();
-	wait_a_while(nap_msec);
+#define MAX_PANELS 5
 
-	saywhat("m2; press any key to continue");
-	move_panel(p2, LINES / 3 + 1, COLS / 8);
-	pflush();
-	wait_a_while(nap_msec);
+static void
+canned_panel(PANEL * px[MAX_PANELS + 1], NCURSES_CONST char *cmd)
+{
+    int which = cmd[1] - '0';
 
-	saywhat("s3;");
-	show_panel(p3);
-	pflush();
-	wait_a_while(nap_msec);
+    saywhat(cmd);
+    switch (*cmd) {
+    case 'h':
+	hide_panel(px[which]);
+	break;
+    case 's':
+	show_panel(px[which]);
+	break;
+    case 't':
+	top_panel(px[which]);
+	break;
+    case 'b':
+	bottom_panel(px[which]);
+	break;
+    case 'd':
+	rmpanel(px[which]);
+	break;
+    }
+    pflush();
+    wait_a_while(nap_msec);
+}
 
-	saywhat("m3; press any key to continue");
-	move_panel(p3, LINES / 4 + 1, COLS / 15);
-	pflush();
-	wait_a_while(nap_msec);
+static void
+demo_panels(void (*InitPanel) (void), void (*FillPanel) (PANEL *))
+{
+    int count;
+    int itmp;
+    PANEL *px[MAX_PANELS + 1];
 
-	saywhat("b3; press any key to continue");
-	bottom_panel(p3);
-	pflush();
-	wait_a_while(nap_msec);
+    scrollok(stdscr, FALSE);	/* we don't want stdscr to scroll! */
+    refresh();
 
-	saywhat("s4; press any key to continue");
-	show_panel(p4);
-	pflush();
-	wait_a_while(nap_msec);
+    InitPanel();
+    for (count = 0; count < 5; count++) {
+	px[1] = mkpanel(COLOR_RED,
+			LINES / 2 - 2,
+			COLS / 8 + 1,
+			0,
+			0);
+	set_panel_userptr(px[1], (NCURSES_CONST void *) "p1");
+
+	px[2] = mkpanel(COLOR_GREEN,
+			LINES / 2 + 1,
+			COLS / 7,
+			LINES / 4,
+			COLS / 10);
+	set_panel_userptr(px[2], (NCURSES_CONST void *) "p2");
+
+	px[3] = mkpanel(COLOR_YELLOW,
+			LINES / 4,
+			COLS / 10,
+			LINES / 2,
+			COLS / 9);
+	set_panel_userptr(px[3], (NCURSES_CONST void *) "p3");
+
+	px[4] = mkpanel(COLOR_BLUE,
+			LINES / 2 - 2,
+			COLS / 8,
+			LINES / 2 - 2,
+			COLS / 3);
+	set_panel_userptr(px[4], (NCURSES_CONST void *) "p4");
+
+	px[5] = mkpanel(COLOR_MAGENTA,
+			LINES / 2 - 2,
+			COLS / 8,
+			LINES / 2,
+			COLS / 2 - 2);
+	set_panel_userptr(px[5], (NCURSES_CONST void *) "p5");
+
+	FillPanel(px[1]);
+	FillPanel(px[2]);
+	FillPanel(px[3]);
+	FillPanel(px[4]);
+	FillPanel(px[5]);
 
-	saywhat("s5; press any key to continue");
-	show_panel(p5);
+	hide_panel(px[4]);
+	hide_panel(px[5]);
 	pflush();
+	saywhat("");
 	wait_a_while(nap_msec);
 
-	saywhat("t3; press any key to continue");
-	top_panel(p3);
+	saywhat("h3 s1 s2 s4 s5");
+	move_panel(px[1], 0, 0);
+	hide_panel(px[3]);
+	show_panel(px[1]);
+	show_panel(px[2]);
+	show_panel(px[4]);
+	show_panel(px[5]);
 	pflush();
 	wait_a_while(nap_msec);
 
-	saywhat("t1; press any key to continue");
-	top_panel(p1);
-	pflush();
-	wait_a_while(nap_msec);
+	canned_panel(px, "s1");
+	canned_panel(px, "s2");
 
-	saywhat("t2; press any key to continue");
-	top_panel(p2);
+	saywhat("m2");
+	move_panel(px[2], LINES / 3 + 1, COLS / 8);
 	pflush();
 	wait_a_while(nap_msec);
 
-	saywhat("t3; press any key to continue");
-	top_panel(p3);
-	pflush();
-	wait_a_while(nap_msec);
+	canned_panel(px, "s3");
 
-	saywhat("t4; press any key to continue");
-	top_panel(p4);
+	saywhat("m3");
+	move_panel(px[3], LINES / 4 + 1, COLS / 15);
 	pflush();
 	wait_a_while(nap_msec);
 
+	canned_panel(px, "b3");
+	canned_panel(px, "s4");
+	canned_panel(px, "s5");
+	canned_panel(px, "t3");
+	canned_panel(px, "t1");
+	canned_panel(px, "t2");
+	canned_panel(px, "t3");
+	canned_panel(px, "t4");
+
 	for (itmp = 0; itmp < 6; itmp++) {
-	    WINDOW *w4 = panel_window(p4);
-	    WINDOW *w5 = panel_window(p5);
+	    WINDOW *w4 = panel_window(px[4]);
+	    WINDOW *w5 = panel_window(px[5]);
 
-	    saywhat("m4; press any key to continue");
+	    saywhat("m4");
 	    wmove(w4, LINES / 8, 1);
 	    waddstr(w4, mod[itmp]);
-	    move_panel(p4, LINES / 6, itmp * (COLS / 8));
+	    move_panel(px[4], LINES / 6, itmp * (COLS / 8));
 	    wmove(w5, LINES / 6, 1);
 	    waddstr(w5, mod[itmp]);
 	    pflush();
 	    wait_a_while(nap_msec);
 
-	    saywhat("m5; press any key to continue");
+	    saywhat("m5");
 	    wmove(w4, LINES / 6, 1);
 	    waddstr(w4, mod[itmp]);
-	    move_panel(p5, LINES / 3 - 1, (itmp * 10) + 6);
+	    move_panel(px[5], LINES / 3 - 1, (itmp * 10) + 6);
 	    wmove(w5, LINES / 8, 1);
 	    waddstr(w5, mod[itmp]);
 	    pflush();
 	    wait_a_while(nap_msec);
 	}
 
-	saywhat("m4; press any key to continue");
-	move_panel(p4, LINES / 6, itmp * (COLS / 8));
+	saywhat("m4");
+	move_panel(px[4], LINES / 6, itmp * (COLS / 8));
 	pflush();
 	wait_a_while(nap_msec);
 
-	saywhat("t5; press any key to continue");
-	top_panel(p5);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("t2; press any key to continue");
-	top_panel(p2);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("t1; press any key to continue");
-	top_panel(p1);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("d2; press any key to continue");
-	rmpanel(p2);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("h3; press any key to continue");
-	hide_panel(p3);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("d1; press any key to continue");
-	rmpanel(p1);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("d4; press any key to continue");
-	rmpanel(p4);
-	pflush();
-	wait_a_while(nap_msec);
-
-	saywhat("d5; press any key to continue");
-	rmpanel(p5);
-	pflush();
-
-	rmpanel(p3);
-	pflush();
+	canned_panel(px, "t5");
+	canned_panel(px, "t2");
+	canned_panel(px, "t1");
+	canned_panel(px, "d2");
+	canned_panel(px, "h3");
+	canned_panel(px, "d1");
+	canned_panel(px, "d4");
+	canned_panel(px, "d5");
+	canned_panel(px, "d3");
 
 	wait_a_while(nap_msec);
 	if (nap_msec == 1)
@@ -4625,7 +4816,7 @@
 		c = KEY_DC;
 		break;
 	    case ERR:		/* FALLTHRU */
-	      case_QUIT:
+	    case case_QUIT:
 		count = 0;
 		c = KEY_EXIT;
 		break;
@@ -4815,7 +5006,7 @@
     }
 }
 
-static const char *animals[] =
+static CONST_MENUS char *animals[] =
 {
     "Lions",
     "Tigers",
@@ -4839,7 +5030,7 @@
     MENU *m;
     ITEM *items[SIZEOF(animals)];
     ITEM **ip = items;
-    const char **ap;
+    CONST_MENUS char **ap;
     int mrows, mcols, c;
     WINDOW *menuwin;
 
@@ -4934,7 +5125,7 @@
 	size_t need = 12;
 	for (n = 0; t_tbl[n].name != 0; n++)
 	    need += strlen(t_tbl[n].name) + 2;
-	buf = (char *) malloc(need);
+	buf = typeMalloc(char, need);
     }
     sprintf(buf, "0x%02x = {", tlevel);
     if (tlevel == 0) {
@@ -5045,7 +5236,7 @@
 	if (item_value(*ip))
 	    newtrace |= t_tbl[item_index(*ip)].mask;
     trace(newtrace);
-    _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
+    Trace(("trace level interactively set to %s", tracetrace(_nc_tracing)));
 
     (void) mvprintw(LINES - 2, 0,
 		    "Trace level is %s\n", tracetrace(_nc_tracing));
@@ -5389,6 +5580,10 @@
     int finished = 0, c;
     unsigned n = 0;
 
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
     move(18, 0);
     addstr("Defined edit/traversal keys:   ^Q/ESC- exit form\n");
     addstr("^N   -- go to next field       ^P  -- go to previous field\n");
@@ -5462,6 +5657,10 @@
     free_fieldtype(fty_passwd);
     noraw();
     nl();
+
+#ifdef NCURSES_MOUSE_VERSION
+    mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
 }
 #endif /* USE_LIBFORM */
 
@@ -5884,7 +6083,13 @@
 
 #if USE_LIBPANEL
     case 'o':
-	demo_panels();
+	demo_panels(init_panel, fill_panel);
+	break;
+#endif
+
+#if USE_WIDEC_SUPPORT && USE_LIBPANEL
+    case 'O':
+	demo_panels(init_wide_panel, fill_wide_panel);
 	break;
 #endif
 
@@ -5996,7 +6201,7 @@
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "footer: %d columns", cols);
+    wprintw(win, "footer: window %p, %d columns", win, cols);
     wnoutrefresh(win);
     return OK;
 }
@@ -6007,7 +6212,7 @@
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "header: %d columns", cols);
+    wprintw(win, "header: window %p, %d columns", win, cols);
     wnoutrefresh(win);
     return OK;
 }
@@ -6052,9 +6257,12 @@
 #endif
 #if USE_LIBPANEL
 	(void) puts("o = exercise panels library");
+#if USE_WIDEC_SUPPORT
+	(void) puts("O = exercise panels with wide-characters");
+#endif
+#endif
 	(void) puts("p = exercise pad features");
 	(void) puts("q = quit");
-#endif
 #if USE_LIBFORM
 	(void) puts("r = exercise forms code");
 #endif
@@ -6143,7 +6351,7 @@
 
     setlocale(LC_ALL, "");
 
-    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != EOF) {
+    while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
 	switch (c) {
 #ifdef NCURSES_VERSION
 	case 'a':
@@ -6246,7 +6454,7 @@
 
 	if (can_change_color()) {
 	    short cp;
-	    all_colors = (RGB_DATA *) malloc(max_colors * sizeof(RGB_DATA));
+	    all_colors = typeMalloc(RGB_DATA, max_colors);
 	    for (cp = 0; cp < max_colors; ++cp) {
 		color_content(cp,
 			      &all_colors[cp].red,
diff -Naur ncurses-5.6.orig/test/newdemo.c ncurses-5.6/test/newdemo.c
--- ncurses-5.6.orig/test/newdemo.c	2006-12-02 19:15:28.000000000 -0500
+++ ncurses-5.6/test/newdemo.c	2008-06-18 06:49:47.000000000 -0400
@@ -2,7 +2,7 @@
  *  newdemo.c	-	A demo program using PDCurses. The program illustrate
  *  	 		the use of colours for text output.
  *
- * $Id: newdemo.c,v 1.29 2006/12/03 00:15:28 tom Exp $
+ * $Id: newdemo.c,v 1.30 2008/02/09 16:41:29 tom Exp $
  */
 
 #include <test.priv.h>
@@ -12,7 +12,7 @@
 /*
  *  The Australian map
  */
-static const char *AusMap[16] =
+static CONST_MENUS char *AusMap[16] =
 {
     "           A           A ",
     "    N.T. AAAAA       AAAA ",
diff -Naur ncurses-5.6.orig/test/programs ncurses-5.6/test/programs
--- ncurses-5.6.orig/test/programs	2006-11-04 13:56:49.000000000 -0500
+++ ncurses-5.6/test/programs	2008-06-18 06:49:44.000000000 -0400
@@ -1,6 +1,6 @@
-# $Id: programs,v 1.5 2006/11/04 18:56:49 tom Exp $
+# $Id: programs,v 1.13 2007/08/18 17:57:00 tom Exp $
 ##############################################################################
-# Copyright (c) 2006 Free Software Foundation, Inc.                          #
+# Copyright (c) 2006,2007 Free 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"), #
@@ -45,6 +45,7 @@
 demo_termcap	$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	demo_termcap
 ditto		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	ditto
 dots		$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	dots
+dots_mvcur	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	dots_mvcur
 echochar	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	echochar
 filter		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	filter
 firework	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	firework
@@ -53,8 +54,11 @@
 gdc		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	gdc
 hanoi		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	hanoi
 hashtest	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	hashtest
+inch_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inch_wide
+inchs		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inchs
 ins_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	ins_wide
 inserts		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inserts
+key_names	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	key_names
 keynames	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	keynames
 knight		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	knight
 lrtest		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	lrtest
@@ -66,9 +70,17 @@
 redraw		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	redraw
 savescreen	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	savescreen
 tclock		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	tclock
+test_arrays	$(LDFLAGS_TINFO)	$(LOCAL_LIBS)	test_arrays
+test_get_wstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_get_wstr
+test_getstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_getstr
+test_instr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_instr
+test_inwstr	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_inwstr
+test_opaque	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	test_opaque
 testaddch	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testaddch
 testcurs	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testcurs
 testscanw	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	testscanw
 view		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	view
 worm		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	worm
 xmas		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	xmas
+
+# vile:makemode
diff -Naur ncurses-5.6.orig/test/railroad.c ncurses-5.6/test/railroad.c
--- ncurses-5.6.orig/test/railroad.c	2006-05-20 12:02:04.000000000 -0400
+++ ncurses-5.6/test/railroad.c	2008-06-18 06:49:47.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2000-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 2000-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,10 +29,11 @@
 /*
  * Author: Thomas E. Dickey - 2000
  *
- * $Id: railroad.c,v 1.14 2006/05/20 16:02:04 tom Exp $
+ * $Id: railroad.c,v 1.16 2008/02/09 18:08:43 tom Exp $
  *
  * A simple demo of the termcap interface.
  */
+#define USE_TINFO
 #include <test.priv.h>
 
 #if HAVE_TGETENT
@@ -55,7 +56,7 @@
 static bool interrupted = FALSE;
 
 static int
-outc(int c)
+outc(TPUTS_ARG c)
 {
     if (interrupted) {
 	char tmp = c;
diff -Naur ncurses-5.6.orig/test/rain.c ncurses-5.6/test/rain.c
--- ncurses-5.6.orig/test/rain.c	2006-05-20 11:34:27.000000000 -0400
+++ ncurses-5.6/test/rain.c	2008-06-18 06:49:51.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,20 +26,78 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: rain.c,v 1.22 2006/05/20 15:34:27 tom Exp $
+ * $Id: rain.c,v 1.34 2008/05/24 23:34:34 tom Exp $
  */
 #include <test.priv.h>
 
 /* rain 11/3/1980 EPS/CITHEP */
 
-static float ranf(void);
-static void onsig(int sig);
+#ifdef USE_PTHREADS
+#include <pthread.h>
+#endif
+
+WANT_USE_WINDOW();
+
+#define MAX_THREADS	10
+#define MAX_DROP	5
+
+struct DATA;
+
+typedef void (*DrawPart) (struct DATA *);
+
+typedef struct DATA {
+    int y, x;
+#ifdef USE_PTHREADS
+    DrawPart func;
+    int state;
+#endif
+} DATA;
+
+#ifdef USE_PTHREADS
+pthread_cond_t cond_next_drop;
+pthread_mutex_t mutex_next_drop;
+static int used_threads;
+
+typedef struct {
+    pthread_t myself;
+    long counter;
+} STATS;
+
+static STATS drop_threads[MAX_THREADS];
+#endif
+
+static void
+onsig(int n GCC_UNUSED)
+{
+    curs_set(1);
+    endwin();
+    ExitProgram(EXIT_FAILURE);
+}
+
+static float
+ranf(void)
+{
+    long r = (rand() & 077777);
+    return ((float) r / 32768.);
+}
+
+static int
+random_x(void)
+{
+    return (((float) (COLS - 4) * ranf()) + 2);
+}
+
+static int
+random_y(void)
+{
+    return (((float) (LINES - 4) * ranf()) + 2);
+}
 
 static int
 next_j(int j)
 {
     if (j == 0)
-	j = 4;
+	j = MAX_DROP - 1;
     else
 	--j;
     if (has_colors()) {
@@ -52,15 +110,193 @@
     return j;
 }
 
+static void
+part1(DATA * drop)
+{
+    mvaddch(drop->y, drop->x, '.');
+}
+
+static void
+part2(DATA * drop)
+{
+    mvaddch(drop->y, drop->x, 'o');
+}
+
+static void
+part3(DATA * drop)
+{
+    mvaddch(drop->y, drop->x, 'O');
+}
+
+static void
+part4(DATA * drop)
+{
+    mvaddch(drop->y - 1, drop->x, '-');
+    mvaddstr(drop->y, drop->x - 1, "|.|");
+    mvaddch(drop->y + 1, drop->x, '-');
+}
+
+static void
+part5(DATA * drop)
+{
+    mvaddch(drop->y - 2, drop->x, '-');
+    mvaddstr(drop->y - 1, drop->x - 1, "/ \\");
+    mvaddstr(drop->y, drop->x - 2, "| O |");
+    mvaddstr(drop->y + 1, drop->x - 1, "\\ /");
+    mvaddch(drop->y + 2, drop->x, '-');
+}
+
+static void
+part6(DATA * drop)
+{
+    mvaddch(drop->y - 2, drop->x, ' ');
+    mvaddstr(drop->y - 1, drop->x - 1, "   ");
+    mvaddstr(drop->y, drop->x - 2, "     ");
+    mvaddstr(drop->y + 1, drop->x - 1, "   ");
+    mvaddch(drop->y + 2, drop->x, ' ');
+}
+
+#ifdef USE_PTHREADS
+static void
+napsome(void)
+{
+    napms(60);
+}
+
+/*
+ * This runs inside the use_window() mutex.
+ */
+static int
+really_draw(WINDOW *win, void *arg)
+{
+    DATA *data = (DATA *) arg;
+
+    (void) win;
+    next_j(data->state);
+    data->func(data);
+    refresh();
+    return OK;
+}
+
+static void
+draw_part(void (*func) (DATA *), int state, DATA * data)
+{
+    data->func = func;
+    data->state = state;
+    use_window(stdscr, really_draw, (void *) data);
+    napsome();
+}
+
+/*
+ * Tell the threads that one of them can start work on a new raindrop.
+ * They may all be busy if we're sending requests too rapidly.
+ */
+static int
+put_next_drop(void)
+{
+    pthread_cond_signal(&cond_next_drop);
+    pthread_mutex_unlock(&mutex_next_drop);
+
+    return 0;
+}
+
+/*
+ * Wait until we're assigned the task of drawing a new raindrop.
+ */
+static int
+get_next_drop(void)
+{
+    pthread_mutex_lock(&mutex_next_drop);
+    pthread_cond_wait(&cond_next_drop, &mutex_next_drop);
+
+    return TRUE;
+}
+
+static void *
+draw_drop(void *arg)
+{
+    DATA mydata;
+    int mystats;
+
+    /*
+     * Find myself in the list of threads so we can count the number of loops.
+     */
+    for (mystats = 0; mystats < MAX_THREADS; ++mystats) {
+	if (drop_threads[mystats].myself == pthread_self())
+	    break;
+    }
+
+    do {
+	if (mystats < MAX_THREADS)
+	    drop_threads[mystats].counter++;
+
+	/*
+	 * Make a copy of caller's data.  We're cheating for the cases after
+	 * the first loop since we still have a pointer into the main thread
+	 * to the data which it uses for setting up this thread (but it has
+	 * been modified to use different coordinates).
+	 */
+	mydata = *(DATA *) arg;
+
+	draw_part(part1, 0, &mydata);
+	draw_part(part2, 1, &mydata);
+	draw_part(part3, 2, &mydata);
+	draw_part(part4, 3, &mydata);
+	draw_part(part5, 4, &mydata);
+	draw_part(part6, 0, &mydata);
+    } while (get_next_drop());
+
+    return NULL;
+}
+
+/*
+ * The description of pthread_create() is misleading, since it implies that
+ * threads will exit cleanly after their function returns.
+ * 
+ * Since they do not (and the number of threads is limited by system
+ * resources), make a limited number of threads, and signal any that are
+ * waiting when we want a thread past that limit.
+ */
+static int
+start_drop(DATA * data)
+{
+    int rc;
+
+    if (!used_threads) {
+	/* mutex and condition for signalling thread */
+	pthread_mutex_init(&mutex_next_drop, NULL);
+	pthread_cond_init(&cond_next_drop, NULL);
+    }
+
+    if (used_threads < MAX_THREADS) {
+	rc = pthread_create(&(drop_threads[used_threads].myself),
+			    NULL,
+			    draw_drop,
+			    data);
+	++used_threads;
+    } else {
+	rc = put_next_drop();
+    }
+    return rc;
+}
+#endif
+
+static int
+get_input(void)
+{
+    return USING_WINDOW(stdscr, wgetch);
+}
+
 int
-main(
-	int argc GCC_UNUSED,
-	char *argv[]GCC_UNUSED)
-{
-    int x, y, j;
-    static int xpos[5], ypos[5];
-    float r;
-    float c;
+main(int argc GCC_UNUSED,
+     char *argv[]GCC_UNUSED)
+{
+    bool done = FALSE;
+    DATA drop;
+#ifndef USE_PTHREADS
+    DATA last[MAX_DROP];
+#endif
+    int j = 0;
 
     setlocale(LC_ALL, "");
 
@@ -82,52 +318,50 @@
     curs_set(0);
     timeout(0);
 
-    r = (float) (LINES - 4);
-    c = (float) (COLS - 4);
-    for (j = 5; --j >= 0;) {
-	xpos[j] = (int) (c * ranf()) + 2;
-	ypos[j] = (int) (r * ranf()) + 2;
+#ifndef USE_PTHREADS
+    for (j = MAX_DROP; --j >= 0;) {
+	last[j].x = random_x();
+	last[j].y = random_y();
     }
+    j = 0;
+#endif
 
-    for (j = 0;;) {
-	x = (int) (c * ranf()) + 2;
-	y = (int) (r * ranf()) + 2;
-
-	mvaddch(y, x, '.');
+    while (!done) {
+	drop.x = random_x();
+	drop.y = random_y();
+
+#ifdef USE_PTHREADS
+	if (start_drop(&drop) != 0) {
+	    beep();
+	}
+#else
+	/*
+	 * The non-threaded code draws parts of each drop on each loop.
+	 */
+	part1(&drop);
 
-	mvaddch(ypos[j], xpos[j], 'o');
+	part2(&last[j]);
 
 	j = next_j(j);
-	mvaddch(ypos[j], xpos[j], 'O');
+	part3(&last[j]);
 
 	j = next_j(j);
-	mvaddch(ypos[j] - 1, xpos[j], '-');
-	mvaddstr(ypos[j], xpos[j] - 1, "|.|");
-	mvaddch(ypos[j] + 1, xpos[j], '-');
+	part4(&last[j]);
 
 	j = next_j(j);
-	mvaddch(ypos[j] - 2, xpos[j], '-');
-	mvaddstr(ypos[j] - 1, xpos[j] - 1, "/ \\");
-	mvaddstr(ypos[j], xpos[j] - 2, "| O |");
-	mvaddstr(ypos[j] + 1, xpos[j] - 1, "\\ /");
-	mvaddch(ypos[j] + 2, xpos[j], '-');
+	part5(&last[j]);
 
 	j = next_j(j);
-	mvaddch(ypos[j] - 2, xpos[j], ' ');
-	mvaddstr(ypos[j] - 1, xpos[j] - 1, "   ");
-	mvaddstr(ypos[j], xpos[j] - 2, "     ");
-	mvaddstr(ypos[j] + 1, xpos[j] - 1, "   ");
-	mvaddch(ypos[j] + 2, xpos[j], ' ');
+	part6(&last[j]);
 
-	xpos[j] = x;
-	ypos[j] = y;
+	last[j] = drop;
+#endif
 
-	switch (getch()) {
+	switch (get_input()) {
 	case ('q'):
 	case ('Q'):
-	    curs_set(1);
-	    endwin();
-	    ExitProgram(EXIT_SUCCESS);
+	    done = TRUE;
+	    break;
 	case 's':
 	    nodelay(stdscr, FALSE);
 	    break;
@@ -136,26 +370,17 @@
 	    break;
 #ifdef KEY_RESIZE
 	case (KEY_RESIZE):
-	    r = (float) (LINES - 4);
-	    c = (float) (COLS - 4);
 	    break;
 #endif
 	}
 	napms(50);
     }
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
     curs_set(1);
     endwin();
-    ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
-    long r = (rand() & 077777);
-    return ((float) r / 32768.);
+#ifdef USE_PTHREADS
+    printf("Counts per thread:\n");
+    for (j = 0; j < MAX_THREADS; ++j)
+	printf("  %d:%ld\n", j, drop_threads[j].counter);
+#endif
+    ExitProgram(EXIT_SUCCESS);
 }
diff -Naur ncurses-5.6.orig/test/redraw.c ncurses-5.6/test/redraw.c
--- ncurses-5.6.orig/test/redraw.c	2006-11-04 18:20:27.000000000 -0500
+++ ncurses-5.6/test/redraw.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: redraw.c,v 1.3 2006/11/04 23:20:27 tom Exp $
+ * $Id: redraw.c,v 1.4 2007/06/30 17:55:06 tom Exp $
  *
  * Demonstrate the redrawwin() and wredrawln() functions.
  * Thomas Dickey - 2006/11/4
@@ -148,7 +148,7 @@
 	    if (ch > KEY_MIN) {
 		waddstr(win, keyname(ch));
 	    } else {
-		waddstr(win, unctrl(ch));
+		waddstr(win, unctrl(UChar(ch)));
 	    }
 	    break;
 	}
diff -Naur ncurses-5.6.orig/test/savescreen.c ncurses-5.6/test/savescreen.c
--- ncurses-5.6.orig/test/savescreen.c	2006-04-01 14:08:03.000000000 -0500
+++ ncurses-5.6/test/savescreen.c	2008-06-18 06:49:44.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -26,23 +26,291 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: savescreen.c,v 1.2 2006/04/01 19:08:03 tom Exp $
+ * $Id: savescreen.c,v 1.10 2007/07/21 17:57:37 tom Exp $
  *
  * Demonstrate save/restore functions from the curses library.
- * Thomas Dickey - 2006/2/11
+ * Thomas Dickey - 2007/7/14
  */
-/*
-scr_dump			-
-scr_init			-
-scr_restore			-
-scr_set				-
-*/
 
 #include <test.priv.h>
 
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
+static bool use_init = FALSE;
+
+static void
+setup_next(void)
+{
+    curs_set(1);
+    reset_shell_mode();
+}
+
+static void
+cleanup(char *files[])
+{
+    int n;
+
+    for (n = 0; files[n] != 0; ++n) {
+	unlink(files[n]);
+    }
+}
+
+static int
+load_screen(char *filename)
+{
+    int result;
+
+    if (use_init) {
+	if ((result = scr_init(filename)) != ERR)
+	    result = scr_restore(filename);
+    } else {
+	result = scr_set(filename);
+    }
+    return result;
+}
+
+/*
+ * scr_restore() or scr_set() operates on curscr.  If we read a character using
+ * getch() that will refresh stdscr, wiping out the result.  To avoid that,
+ * copy the data back from curscr to stdscr.
+ */
+static void
+after_load(void)
+{
+    overwrite(curscr, stdscr);
+    doupdate();
+}
+
+static void
+show_what(int which, int last)
+{
+    int y, x;
+    time_t now = time((time_t *) 0);
+
+    getyx(stdscr, y, x);
+
+    move(0, 0);
+    printw("Saved %d of %d - %s", which, last + 1, ctime(&now));
+
+    move(y, x);
+
+    refresh();
+}
+
+static int
+get_command(int which, int last)
+{
+    int ch;
+
+    timeout(100);
+
+    do {
+	show_what(which, last);
+	ch = getch();
+    } while (ch == ERR);
+
+    return ch;
+}
+
+static void
+usage(void)
+{
+    static const char *msg[] =
+    {
+	"Usage: savescreen [-r] files",
+	"",
+	"Options:",
+	" -i  use scr_init/scr_restore rather than scr_set",
+	" -r  replay the screen-dump files"
+    };
+    unsigned n;
+    for (n = 0; n < SIZEOF(msg); ++n) {
+	fprintf(stderr, "%s\n", msg[n]);
+    }
+    ExitProgram(EXIT_FAILURE);
+}
+
 int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
-    printf("Not implemented - demo for screen save/restore\n");
-    return EXIT_SUCCESS;
+    int ch;
+    int which = 0;
+    int last;
+    bool replaying = FALSE;
+    bool done = FALSE;
+    char **files;
+
+    while ((ch = getopt(argc, argv, "ir")) != -1) {
+	switch (ch) {
+	case 'i':
+	    use_init = TRUE;
+	    break;
+	case 'r':
+	    replaying = TRUE;
+	    break;
+	default:
+	    usage();
+	    break;
+	}
+    }
+
+    initscr();
+    cbreak();
+    noecho();
+    keypad(stdscr, TRUE);
+    curs_set(0);
+    if (has_colors()) {
+	start_color();
+	for (ch = 0; ch < COLOR_PAIRS; ++ch) {
+	    short pair = ch % COLOR_PAIRS;
+	    init_pair(pair, COLOR_WHITE, ch % COLORS);
+	}
+    }
+
+    files = argv + optind;
+    last = argc - optind - 1;
+    if (replaying) {
+
+	/*
+	 * Use the last file as the initial/current screen.
+	 */
+	if (last < 0) {
+	    endwin();
+	    printf("No screen-dumps given\n");
+	    ExitProgram(EXIT_FAILURE);
+	}
+
+	which = last;
+	if (load_screen(files[which]) == ERR) {
+	    endwin();
+	    printf("Cannot load screen-dump %s\n", files[which]);
+	    ExitProgram(EXIT_FAILURE);
+	}
+	after_load();
+
+	while (!done && (ch = getch()) != ERR) {
+	    switch (ch) {
+	    case 'n':
+		/*
+		 * If we got a "next" here, skip to the final screen before
+		 * moving to the next process.
+		 */
+		setup_next();
+		which = last;
+		done = TRUE;
+		break;
+	    case 'q':
+		endwin();
+		cleanup(files);
+		done = TRUE;
+		break;
+	    case KEY_BACKSPACE:
+	    case '\b':
+		if (--which < 0)
+		    which = last;
+		break;
+	    case ' ':
+		if (++which > last)
+		    which = 0;
+		break;
+	    default:
+		beep();
+		continue;
+	    }
+
+	    if (ch == 'q') {
+		;
+	    } else if (scr_restore(files[which]) == ERR) {
+		endwin();
+		printf("Cannot load screen-dump %s\n", files[which]);
+		cleanup(files);
+		ExitProgram(EXIT_FAILURE);
+	    } else {
+		wrefresh(curscr);
+	    }
+	}
+    } else {
+	int y;
+	int x;
+
+	move(2, 0);
+	printw("Use h,j,k,l or arrows to move around the screen\n");
+	printw("Press 'q' to quit, ' ' to dump a screen\n");
+	printw("When the last screen has been dumped, press 'n' to run the\n");
+	printw("screen-loader.  That allows only 'q', backspace and ' ' for\n");
+	printw("stepping through the dumped/restored screens.\n");
+	getyx(stdscr, y, x);
+
+	while (!done) {
+	    switch (ch = get_command(which, last)) {
+	    case 'n':
+		setup_next();
+		done = TRUE;
+		break;
+	    case 'q':
+		endwin();
+		cleanup(files);
+		done = TRUE;
+		break;
+	    case ' ':
+		if (files[which] != 0) {
+		    show_what(which + 1, last);
+		    if (scr_dump(files[which]) == ERR) {
+			endwin();
+			printf("Cannot write screen-dump %s\n", files[which]);
+			cleanup(files);
+			done = TRUE;
+			break;
+		    }
+		    ++which;
+		    if (has_colors()) {
+			short pair = which % COLOR_PAIRS;
+			bkgd(COLOR_PAIR(pair));
+		    }
+		} else {
+		    beep();
+		}
+		break;
+	    case KEY_LEFT:
+	    case 'h':
+		if (--x < 0)
+		    x = COLS - 1;
+		break;
+	    case KEY_DOWN:
+	    case 'j':
+		if (++y >= LINES)
+		    y = 1;
+		break;
+	    case KEY_UP:
+	    case 'k':
+		if (--y < 1)
+		    y = LINES - 1;
+		break;
+	    case KEY_RIGHT:
+	    case 'l':
+		if (++x >= COLS)
+		    x = 0;
+		break;
+	    }
+	    if (!done) {
+		time_t now = time((time_t *) 0);
+
+		move(0, 0);
+		addstr(ctime(&now));
+		move(y, x);
+		addch('#' | A_REVERSE);
+		move(y, x);
+	    }
+	}
+    }
+    ExitProgram(EXIT_SUCCESS);
 }
diff -Naur ncurses-5.6.orig/test/savescreen.sh ncurses-5.6/test/savescreen.sh
--- ncurses-5.6.orig/test/savescreen.sh	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/savescreen.sh	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,55 @@
+#!/bin/sh
+##############################################################################
+# Copyright (c) 2007 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+# $Id: savescreen.sh,v 1.3 2007/07/14 21:50:26 tom Exp $
+#
+# Use this script to exercise "savescreen".
+# It starts by generating a series of temporary-filenames, which are passed
+# to the test-program.  Loop as long as the first file named exists.
+PARAMS=
+NFILES=4
+PREFIX=savescreen-$$
+n=0
+BEGINS=$PREFIX-$n.tmp
+while test $n != $NFILES
+do
+	LATEST=$PREFIX-$n.tmp
+	PARAMS="$PARAMS $LATEST"
+	n=`expr $n + 1`
+done
+
+./savescreen $PARAMS
+if test -f $BEGINS
+then
+	while test -f $BEGINS
+	do
+		./savescreen -r $PARAMS
+	done
+else
+	echo "No screens were saved"
+fi
diff -Naur ncurses-5.6.orig/test/test.priv.h ncurses-5.6/test/test.priv.h
--- ncurses-5.6.orig/test/test.priv.h	2006-07-15 14:27:24.000000000 -0400
+++ ncurses-5.6/test/test.priv.h	2008-06-18 06:49:49.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.63 2006/07/15 18:27:24 tom Exp $ */
+/* $Id: test.priv.h,v 1.77 2008/04/12 19:25:48 tom Exp $ */
 
 #ifndef __TEST_PRIV_H
 #define __TEST_PRIV_H 1
@@ -59,6 +59,14 @@
 #define HAVE_CURSES_VERSION 0
 #endif
 
+#ifndef HAVE_CHGAT
+#define HAVE_CHGAT 0
+#endif
+
+#ifndef HAVE_COLOR_SET
+#define HAVE_COLOR_SET 0
+#endif
+
 #ifndef HAVE_FILTER
 #define HAVE_FILTER 0
 #endif
@@ -83,6 +91,10 @@
 #define HAVE_GETOPT_H 0
 #endif
 
+#ifndef HAVE_GETPARX
+#define HAVE_GETPARX 0
+#endif
+
 #ifndef HAVE_GETWIN
 #define HAVE_GETWIN 0
 #endif
@@ -235,9 +247,18 @@
 #include <term.h>
 #endif
 
-#ifdef NCURSES_VERSION
-#define HAVE_COLOR_SET 1
-#define HAVE_CHGAT 1
+/*
+ * Not all curses.h implementations include unctrl.h,
+ * Solaris 10 xpg4 for example.
+ */
+#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
+#if defined(HAVE_NCURSESW_NCURSES_H)
+#include <ncursesw/unctrl.h>
+#elif defined(HAVE_NCURSES_NCURSES_H)
+#include <ncurses/unctrl.h>
+#else
+#include <unctrl.h>
+#endif
 #endif
 
 #if HAVE_GETOPT_H
@@ -308,8 +329,8 @@
 #endif
 
 #ifndef HAVE_TYPE_ATTR_T
-#if !USE_WIDEC_SUPPORT
-#define attr_t long
+#if !USE_WIDEC_SUPPORT && !defined(attr_t)
+#define attr_t chtype
 #endif
 #endif
 
@@ -320,13 +341,16 @@
 #define NCURSES_CH_T cchar_t
 #endif
 
+#ifndef NCURSES_OPAQUE
+#define NCURSES_OPAQUE 0
+#endif
+
 #ifndef CCHARW_MAX
 #define CCHARW_MAX 5
 #endif
 
-#ifndef CTRL
-#define CTRL(x)		((x) & 0x1f)
-#endif
+#undef CTRL
+#define CTRL(x)	((x) & 0x1f)
 
 #define QUIT		CTRL('Q')
 #define ESCAPE		CTRL('[')
@@ -367,6 +391,21 @@
 #define getmaxy(win)            ((win)?((win)->_maxy + 1):ERR)
 #endif
 
+/*
+ * Solaris 10 xpg4:
+#define	__m_getparx(w)		((w)->_parent == (WINDOW *) 0 ? -1 \
+				: (w)->_begx - (w)->_parent->_begx)
+ */
+#if !defined(getparx) && !HAVE_GETPARX
+#ifdef __m_getparx
+#define getparx(win)            __m_getparx(win)
+#define getpary(win)            __m_getpary(win)
+#else
+#define getparx(win)            ((win)?((win)->_parx + 1):ERR)
+#define getpary(win)            ((win)?((win)->_pary + 1):ERR)
+#endif
+#endif
+
 #if !defined(mvwvline) && !HAVE_MVWVLINE
 #define mvwvline(w,y,x,ch,n)    (move(y,x) == ERR ? ERR : wvline(w,ch,n))
 #define mvwhline(w,y,x,ch,n)    (move(y,x) == ERR ? ERR : whline(w,ch,n))
@@ -404,8 +443,13 @@
 
 #if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
 #include <nc_alloc.h>
+#if HAVE_NC_FREEALL && defined(USE_TINFO)
+#undef ExitProgram
+#define ExitProgram(code) _nc_free_tinfo(code)
+#endif
 #else
 #define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
+#define typeCalloc(type,elts) (type *) calloc((elts), sizeof(type))
 #define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
 #endif
 
@@ -451,4 +495,79 @@
 			signal(nsig, handler); \
 	    }
 
+/*
+ * Workaround for clean(er) compile with Solaris's legacy curses.
+ * The same would be needed for HPUX 10.20
+ */
+#ifndef TPUTS_ARG
+#if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
+#define TPUTS_ARG char
+extern char *tgoto(char *, int, int);	/* available, but not prototyped */
+#else
+#define TPUTS_ARG int
+#endif
+#endif
+
+/*
+ * Workarounds for Solaris's X/Open curses
+ */
+#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
+#if !defined(KEY_MIN) && defined(__KEY_MIN)
+#define KEY_MIN __KEY_MIN
+#endif
+#if !defined(KEY_MAX) && defined(__KEY_MIN)
+#define KEY_MAX __KEY_MAX
+#endif
+#endif
+
+/*
+ * ncurses uses const in some places where X/Open does (or did) not allow.
+ */
+#ifdef NCURSES_VERSION
+#define CONST_MENUS const
+#else
+#define CONST_MENUS /* nothing */
+#endif
+
+#ifndef HAVE_USE_WINDOW
+#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS
+#define HAVE_USE_WINDOW 0
+#else
+#define HAVE_USE_WINDOW 1
+#endif
+#endif
+
+/*
+ * Simplify setting up demo of threading with these macros.
+ */
+
+#if !HAVE_USE_WINDOW
+typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
+typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
+#endif
+
+#if HAVE_USE_WINDOW
+#define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w)
+#define WANT_USE_WINDOW() extern void _nc_want_use_window(void)
+#else
+#define USING_WINDOW(w,func) func(w)
+#define WANT_USE_WINDOW() extern void _nc_want_use_window(void)
+#endif
+
+#if HAVE_USE_WINDOW
+#define USING_SCREEN(s,func,data) use_screen(s, (NCURSES_SCREEN_CB) func, data)
+#define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
+#else
+#define USING_SCREEN(s,func,data) func(data)
+#define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
+#endif
+
+#ifdef TRACE
+#define Trace(p) _tracef p
+#define USE_TRACE 1
+#else
+#define Trace(p)		/* nothing */
+#define USE_TRACE 0
+#endif
+
 #endif /* __TEST_PRIV_H */
diff -Naur ncurses-5.6.orig/test/test_arrays.c ncurses-5.6/test/test_arrays.c
--- ncurses-5.6.orig/test/test_arrays.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_arrays.c	2008-06-18 06:49:47.000000000 -0400
@@ -0,0 +1,90 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_arrays.c,v 1.3 2008/02/09 18:09:43 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the public arrays from the terminfo library.
+
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];
+extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];
+
+ */
+
+#define USE_TINFO
+#include <test.priv.h>
+
+#if defined(NCURSES_VERSION) || !defined(_XOPEN_CURSES)
+
+#define DUMP(name) dump_array(#name, name)
+
+static void
+dump_array(const char *name, NCURSES_CONST char *const *list)
+{
+    int n;
+
+    printf("%s:\n", name);
+    for (n = 0; list[n] != 0; ++n) {
+	printf("%5d:%s\n", n, list[n]);
+    }
+}
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+    DUMP(boolnames);
+    DUMP(boolcodes);
+    DUMP(boolfnames);
+
+    DUMP(numnames);
+    DUMP(numcodes);
+    DUMP(numfnames);
+
+    DUMP(strnames);
+    DUMP(strcodes);
+    DUMP(strfnames);
+
+    ExitProgram(EXIT_SUCCESS);
+}
+
+#else
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+    printf("This program requires the terminfo arrays\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/test_get_wstr.c ncurses-5.6/test/test_get_wstr.c
--- ncurses-5.6.orig/test/test_get_wstr.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_get_wstr.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,361 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_get_wstr.c,v 1.5 2007/08/11 17:01:43 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the get_wstr functions from the curses library.
+
+       int get_wstr(wint_t *wstr);
+       int getn_wstr(wint_t *wstr, int n);
+       int wget_wstr(WINDOW *win, wint_t *wstr);
+       int wgetn_wstr(WINDOW *win, wint_t *wstr, int n);
+       int mvget_wstr(int y, int x, wint_t *wstr);
+       int mvgetn_wstr(int y, int x, wint_t *wstr, int n);
+       int mvwget_wstr(WINDOW *win, int y, int x, wint_t *wstr);
+       int mvwgetn_wstr(WINDOW *win, int y, int x, wint_t *wstr, int n);
+ */
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+#define BASE_Y 6
+#define MAX_COLS 1024
+
+typedef enum {
+    eGetStr = 0,
+    eGetNStr,
+    eMvGetStr,
+    eMvGetNStr,
+    eMaxFlavor
+} Flavors;
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static int
+Remainder(WINDOW *txtwin)
+{
+    int result = getmaxx(txtwin) - getcurx(txtwin);
+    return (result > 0) ? result : 0;
+}
+
+/*
+ * Show a highlighted line in the place where input will happen.
+ */
+static void
+ShowPrompt(WINDOW *txtwin, int limit)
+{
+    wchgat(txtwin, limit, A_REVERSE, 0, NULL);
+    wnoutrefresh(txtwin);
+}
+
+static void
+MovePrompt(WINDOW *txtwin, int limit, int y, int x)
+{
+    wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
+    wmove(txtwin, y, x);
+    ShowPrompt(txtwin, limit);
+}
+
+static int
+ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
+{
+    const char *name = "?";
+    bool limited = FALSE;
+    bool wins = (txtwin != stdscr);
+    int result;
+
+    switch (flavor) {
+    case eGetStr:
+	name = wins ? "wget_wstr" : "get_wstr";
+	break;
+    case eGetNStr:
+	limited = TRUE;
+	name = wins ? "wgetn_wstr" : "getn_wstr";
+	break;
+    case eMvGetStr:
+	name = wins ? "mvwget_wstr" : "mvget_wstr";
+	break;
+    case eMvGetNStr:
+	limited = TRUE;
+	name = wins ? "mvwgetn_wstr" : "mvgetn_wstr";
+	break;
+    case eMaxFlavor:
+	break;
+    }
+
+    wmove(strwin, 0, 0);
+    werase(strwin);
+
+    if (limited) {
+	wprintw(strwin, "%s(%d):", name, limit);
+    } else {
+	wprintw(strwin, "%s:", name);
+    }
+    result = limited ? limit : Remainder(txtwin);
+    ShowPrompt(txtwin, result);
+
+    wnoutrefresh(strwin);
+    return result;
+}
+
+static int
+test_get_wstr(int level, char **argv, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch;
+    int rc;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int flavor = 0;
+    int limit = getmaxx(strwin) - 5;
+    int actual;
+    wint_t buffer[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((ch = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(ch)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    wmove(txtwin, txt_y, txt_x);
+    actual = ShowFlavor(strwin, txtwin, flavor, limit);
+    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (ch) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1) {
+		MovePrompt(txtwin, actual, ++txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y) {
+		MovePrompt(txtwin, actual, --txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0) {
+		MovePrompt(txtwin, actual, txt_y, --txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1) {
+		MovePrompt(txtwin, actual, txt_y, ++txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case 'w':
+	    test_get_wstr(level + 1, argv, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+
+	case '-':
+	    if (limit > 0) {
+		actual = ShowFlavor(strwin, txtwin, flavor, --limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case '+':
+	    actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
+	    MovePrompt(txtwin, actual, txt_y, txt_x);
+	    break;
+
+	case '<':
+	    if (flavor > 0) {
+		actual = ShowFlavor(strwin, txtwin, --flavor, limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case '>':
+	    if (flavor + 1 < eMaxFlavor) {
+		actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case ':':
+	    actual = ShowFlavor(strwin, txtwin, flavor, limit);
+	    *buffer = '\0';
+	    rc = ERR;
+	    echo();
+	    wattrset(txtwin, A_REVERSE);
+	    switch (flavor) {
+	    case eGetStr:
+		if (txtwin != stdscr) {
+		    wmove(txtwin, txt_y, txt_x);
+		    rc = wget_wstr(txtwin, buffer);
+		} else {
+		    move(txt_y, txt_x);
+		    rc = get_wstr(buffer);
+		}
+		break;
+	    case eGetNStr:
+		if (txtwin != stdscr) {
+		    wmove(txtwin, txt_y, txt_x);
+		    rc = wgetn_wstr(txtwin, buffer, limit);
+		} else {
+		    move(txt_y, txt_x);
+		    rc = getn_wstr(buffer, limit);
+		}
+		break;
+	    case eMvGetStr:
+		if (txtwin != stdscr) {
+		    rc = mvwget_wstr(txtwin, txt_y, txt_x, buffer);
+		} else {
+		    rc = mvget_wstr(txt_y, txt_x, buffer);
+		}
+		break;
+	    case eMvGetNStr:
+		if (txtwin != stdscr) {
+		    rc = mvwgetn_wstr(txtwin, txt_y, txt_x, buffer, limit);
+		} else {
+		    rc = mvgetn_wstr(txt_y, txt_x, buffer, limit);
+		}
+		break;
+	    case eMaxFlavor:
+		break;
+	    }
+	    noecho();
+	    wattrset(txtwin, A_NORMAL);
+	    wprintw(strwin, "%d", rc);
+	    waddwstr(strwin, (wchar_t *) buffer);
+	    wnoutrefresh(strwin);
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+	doupdate();
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
+
+    test_get_wstr(1, argv, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+    printf("This program requires the wide-ncurses library\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/test_getstr.c ncurses-5.6/test/test_getstr.c
--- ncurses-5.6.orig/test/test_getstr.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_getstr.c	2008-06-18 06:49:47.000000000 -0400
@@ -0,0 +1,363 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_getstr.c,v 1.8 2008/02/09 18:09:35 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the getstr functions from the curses library.
+
+       int getstr(char *str);
+       int getnstr(char *str, int n);
+       int wgetstr(WINDOW *win, char *str);
+       int wgetnstr(WINDOW *win, char *str, int n);
+       int mvgetstr(int y, int x, char *str);
+       int mvwgetstr(WINDOW *win, int y, int x, char *str);
+       int mvgetnstr(int y, int x, char *str, int n);
+       int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);
+ */
+
+#include <test.priv.h>
+
+#if HAVE_CHGAT
+/* Solaris SVr4 curses lacks wchgat, mvgetnstr, mvwgetnstr */
+
+#define BASE_Y 6
+#define MAX_COLS 1024
+
+typedef enum {
+    eGetStr = 0,
+    eGetNStr,
+    eMvGetStr,
+    eMvGetNStr,
+    eMaxFlavor
+} Flavors;
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static int
+Remainder(WINDOW *txtwin)
+{
+    int result = getmaxx(txtwin) - getcurx(txtwin);
+    return (result > 0) ? result : 0;
+}
+
+/*
+ * Show a highlighted line in the place where input will happen.
+ */
+static void
+ShowPrompt(WINDOW *txtwin, int limit)
+{
+    wchgat(txtwin, limit, A_REVERSE, 0, NULL);
+    wnoutrefresh(txtwin);
+}
+
+static void
+MovePrompt(WINDOW *txtwin, int limit, int y, int x)
+{
+    wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
+    wmove(txtwin, y, x);
+    ShowPrompt(txtwin, limit);
+}
+
+static int
+ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
+{
+    const char *name = "?";
+    bool limited = FALSE;
+    bool wins = (txtwin != stdscr);
+    int result;
+
+    switch (flavor) {
+    case eGetStr:
+	name = wins ? "wgetstr" : "getstr";
+	break;
+    case eGetNStr:
+	limited = TRUE;
+	name = wins ? "wgetnstr" : "getnstr";
+	break;
+    case eMvGetStr:
+	name = wins ? "mvwgetstr" : "mvgetstr";
+	break;
+    case eMvGetNStr:
+	limited = TRUE;
+	name = wins ? "mvwgetnstr" : "mvgetnstr";
+	break;
+    case eMaxFlavor:
+	break;
+    }
+
+    wmove(strwin, 0, 0);
+    werase(strwin);
+
+    if (limited) {
+	wprintw(strwin, "%s(%d):", name, limit);
+    } else {
+	wprintw(strwin, "%s:", name);
+    }
+    result = limited ? limit : Remainder(txtwin);
+    ShowPrompt(txtwin, result);
+
+    wnoutrefresh(strwin);
+    return result;
+}
+
+static int
+test_getstr(int level, char **argv, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch;
+    int rc;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int flavor = 0;
+    int limit = getmaxx(strwin) - 5;
+    int actual;
+
+    char buffer[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((ch = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(ch)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    wmove(txtwin, txt_y, txt_x);
+    actual = ShowFlavor(strwin, txtwin, flavor, limit);
+    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (ch) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1) {
+		MovePrompt(txtwin, actual, ++txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y) {
+		MovePrompt(txtwin, actual, --txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0) {
+		MovePrompt(txtwin, actual, txt_y, --txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1) {
+		MovePrompt(txtwin, actual, txt_y, ++txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case 'w':
+	    test_getstr(level + 1, argv, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+
+	case '-':
+	    if (limit > 0) {
+		actual = ShowFlavor(strwin, txtwin, flavor, --limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case '+':
+	    actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
+	    MovePrompt(txtwin, actual, txt_y, txt_x);
+	    break;
+
+	case '<':
+	    if (flavor > 0) {
+		actual = ShowFlavor(strwin, txtwin, --flavor, limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case '>':
+	    if (flavor + 1 < eMaxFlavor) {
+		actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
+		MovePrompt(txtwin, actual, txt_y, txt_x);
+	    } else {
+		beep();
+	    }
+	    break;
+
+	case ':':
+	    actual = ShowFlavor(strwin, txtwin, flavor, limit);
+	    *buffer = '\0';
+	    rc = ERR;
+	    echo();
+	    wattrset(txtwin, A_REVERSE);
+	    switch (flavor) {
+	    case eGetStr:
+		if (txtwin != stdscr) {
+		    wmove(txtwin, txt_y, txt_x);
+		    rc = wgetstr(txtwin, buffer);
+		} else {
+		    move(txt_y, txt_x);
+		    rc = getstr(buffer);
+		}
+		break;
+	    case eGetNStr:
+		if (txtwin != stdscr) {
+		    wmove(txtwin, txt_y, txt_x);
+		    rc = wgetnstr(txtwin, buffer, limit);
+		} else {
+		    move(txt_y, txt_x);
+		    rc = getnstr(buffer, limit);
+		}
+		break;
+	    case eMvGetStr:
+		if (txtwin != stdscr) {
+		    rc = mvwgetstr(txtwin, txt_y, txt_x, buffer);
+		} else {
+		    rc = mvgetstr(txt_y, txt_x, buffer);
+		}
+		break;
+	    case eMvGetNStr:
+		if (txtwin != stdscr) {
+		    rc = mvwgetnstr(txtwin, txt_y, txt_x, buffer, limit);
+		} else {
+		    rc = mvgetnstr(txt_y, txt_x, buffer, limit);
+		}
+		break;
+	    case eMaxFlavor:
+		break;
+	    }
+	    noecho();
+	    wattrset(txtwin, A_NORMAL);
+	    wprintw(strwin, "%d:%s", rc, buffer);
+	    wnoutrefresh(strwin);
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+	doupdate();
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
+
+    test_getstr(1, argv, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
+
+#else
+int
+main(void)
+{
+    printf("This program requires the curses chgat function\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/test_instr.c ncurses-5.6/test/test_instr.c
--- ncurses-5.6.orig/test/test_instr.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_instr.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,260 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_instr.c,v 1.4 2007/07/21 19:38:04 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the instr functions from the curses library.
+
+       int instr(char *str);
+       int innstr(char *str, int n);
+       int winstr(WINDOW *win, char *str);
+       int winnstr(WINDOW *win, char *str, int n);
+       int mvinstr(int y, int x, char *str);
+       int mvinnstr(int y, int x, char *str, int n);
+       int mvwinstr(WINDOW *win, int y, int x, char *str);
+       int mvwinnstr(WINDOW *win, int y, int x, char *str, int n);
+ */
+
+#include <test.priv.h>
+
+#define BASE_Y 6
+#define MAX_COLS 1024
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static void
+show_1st(WINDOW *win, int line, char *buffer)
+{
+    mvwaddstr(win, line, 5, buffer);
+}
+
+static void
+showmore(WINDOW *win, int line, char *buffer)
+{
+    wmove(win, line, 0);
+    wclrtoeol(win);
+    show_1st(win, line, buffer);
+}
+
+static int
+test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int limit = getmaxx(strwin) - 5;
+
+    char buffer[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((ch = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(ch)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (ch) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1)
+		txt_y++;
+	    else
+		beep();
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y)
+		txt_y--;
+	    else
+		beep();
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0)
+		txt_x--;
+	    else
+		beep();
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1)
+		txt_x++;
+	    else
+		beep();
+	    break;
+	case 'w':
+	    test_inchs(level + 1, argv, chrwin, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+	case '-':
+	    if (limit > 0) {
+		--limit;
+	    } else {
+		beep();
+	    }
+	    break;
+	case '+':
+	    ++limit;
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+
+	mvwprintw(chrwin, 0, 0, "line:");
+	wclrtoeol(chrwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+
+	    if (winstr(txtwin, buffer) != ERR) {
+		show_1st(chrwin, 0, buffer);
+	    }
+	    if (mvwinstr(txtwin, txt_y, txt_x, buffer) != ERR) {
+		showmore(chrwin, 1, buffer);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+
+	    if (instr(buffer) != ERR) {
+		show_1st(chrwin, 0, buffer);
+	    }
+	    if (mvinstr(txt_y, txt_x, buffer) != ERR) {
+		showmore(chrwin, 1, buffer);
+	    }
+	}
+	wnoutrefresh(chrwin);
+
+	mvwprintw(strwin, 0, 0, "%4d:", limit);
+	wclrtobot(strwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+	    if (winnstr(txtwin, buffer, limit) != ERR) {
+		show_1st(strwin, 0, buffer);
+	    }
+
+	    if (mvwinnstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
+		showmore(strwin, 1, buffer);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+	    if (innstr(buffer, limit) != ERR) {
+		show_1st(strwin, 0, buffer);
+	    }
+
+	    if (mvinnstr(txt_y, txt_x, buffer, limit) != ERR) {
+		showmore(strwin, 1, buffer);
+	    }
+	}
+
+	wnoutrefresh(strwin);
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *chrwin;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
+    strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
+
+    test_inchs(1, argv, chrwin, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
diff -Naur ncurses-5.6.orig/test/test_inwstr.c ncurses-5.6/test/test_inwstr.c
--- ncurses-5.6.orig/test/test_inwstr.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_inwstr.c	2008-06-18 06:49:44.000000000 -0400
@@ -0,0 +1,269 @@
+/****************************************************************************
+ * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_inwstr.c,v 1.3 2007/07/21 22:47:42 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the inwstr functions from the curses library.
+
+       int inwstr(wchar_t *str);
+       int innwstr(wchar_t *str, int n);
+       int winwstr(WINDOW *win, wchar_t *str);
+       int winnwstr(WINDOW *win, wchar_t *str, int n);
+       int mvinwstr(int y, int x, wchar_t *str);
+       int mvinnwstr(int y, int x, wchar_t *str, int n);
+       int mvwinwstr(WINDOW *win, int y, int x, wchar_t *str);
+       int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *str, int n);
+ */
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+#define BASE_Y 6
+#define MAX_COLS 1024
+
+static bool
+Quit(int ch)
+{
+    return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+static void
+show_1st(WINDOW *win, int line, wchar_t *buffer)
+{
+    mvwaddwstr(win, line, 5, buffer);
+}
+
+static void
+showmore(WINDOW *win, int line, wchar_t *buffer)
+{
+    wmove(win, line, 0);
+    wclrtoeol(win);
+    show_1st(win, line, buffer);
+}
+
+static int
+test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    int limit = getmaxx(strwin) - 5;
+    wchar_t buffer[MAX_COLS];
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((ch = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(ch)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
+	switch (ch) {
+	case KEY_DOWN:
+	case 'j':
+	    if (txt_y < getmaxy(txtwin) - 1)
+		txt_y++;
+	    else
+		beep();
+	    break;
+	case KEY_UP:
+	case 'k':
+	    if (txt_y > base_y)
+		txt_y--;
+	    else
+		beep();
+	    break;
+	case KEY_LEFT:
+	case 'h':
+	    if (txt_x > 0)
+		txt_x--;
+	    else
+		beep();
+	    break;
+	case KEY_RIGHT:
+	case 'l':
+	    if (txt_x < getmaxx(txtwin) - 1)
+		txt_x++;
+	    else
+		beep();
+	    break;
+	case 'w':
+	    test_inchs(level + 1, argv, chrwin, strwin);
+	    if (txtbox != 0) {
+		touchwin(txtbox);
+		wnoutrefresh(txtbox);
+	    } else {
+		touchwin(txtwin);
+		wnoutrefresh(txtwin);
+	    }
+	    break;
+	case '-':
+	    if (limit > 0) {
+		--limit;
+	    } else {
+		beep();
+	    }
+	    break;
+	case '+':
+	    ++limit;
+	    break;
+	default:
+	    beep();
+	    break;
+	}
+
+	mvwprintw(chrwin, 0, 0, "line:");
+	wclrtoeol(chrwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+
+	    if (winwstr(txtwin, buffer) != ERR) {
+		show_1st(chrwin, 0, buffer);
+	    }
+	    if (mvwinwstr(txtwin, txt_y, txt_x, buffer) != ERR) {
+		showmore(chrwin, 1, buffer);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+
+	    if (inwstr(buffer) != ERR) {
+		show_1st(chrwin, 0, buffer);
+	    }
+	    if (mvinwstr(txt_y, txt_x, buffer) != ERR) {
+		showmore(chrwin, 1, buffer);
+	    }
+	}
+	wnoutrefresh(chrwin);
+
+	mvwprintw(strwin, 0, 0, "%4d:", limit);
+	wclrtobot(strwin);
+
+	if (txtwin != stdscr) {
+	    wmove(txtwin, txt_y, txt_x);
+	    if (winnwstr(txtwin, buffer, limit) != ERR) {
+		show_1st(strwin, 0, buffer);
+	    }
+
+	    if (mvwinnwstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
+		showmore(strwin, 1, buffer);
+	    }
+	} else {
+	    move(txt_y, txt_x);
+	    if (innwstr(buffer, limit) != ERR) {
+		show_1st(strwin, 0, buffer);
+	    }
+
+	    if (mvinnwstr(txt_y, txt_x, buffer, limit) != ERR) {
+		showmore(strwin, 1, buffer);
+	    }
+	}
+
+	wnoutrefresh(strwin);
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *chrbox;
+    WINDOW *chrwin;
+    WINDOW *strwin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(chrbox, 0, 0);
+    wnoutrefresh(chrbox);
+
+    chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
+    strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
+
+    test_inchs(1, argv, chrwin, strwin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+    printf("This program requires the wide-ncurses library\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/test_opaque.c ncurses-5.6/test/test_opaque.c
--- ncurses-5.6.orig/test/test_opaque.c	1969-12-31 19:00:00.000000000 -0500
+++ ncurses-5.6/test/test_opaque.c	2008-06-18 06:49:49.000000000 -0400
@@ -0,0 +1,474 @@
+/****************************************************************************
+ * Copyright (c) 2007,2008 Free Software Foundation, Inc.                   *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+/*
+ * $Id: test_opaque.c,v 1.6 2008/04/05 18:03:57 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+ * Demonstrate the opaque functions from the curses library.
+
+       WINDOW * wgetparent (const WINDOW *);
+       bool is_cleared(const WINDOW *win);
+       bool is_idcok(const WINDOW *win);
+       bool is_idlok(const WINDOW *win);
+       bool is_immedok(const WINDOW *win);
+       bool is_keypad(const WINDOW *win);
+       bool is_leaveok(const WINDOW *win);
+       bool is_nodelay(const WINDOW *win);
+       bool is_notimeout(const WINDOW *win);
+       bool is_scrollok(const WINDOW *win);
+       bool is_syncok(const WINDOW *win);
+       int wgetscrreg (const WINDOW *, int *, int *);
+ */
+
+#include <test.priv.h>
+
+#define BASE_Y 6
+#define MAX_COLS 1024
+
+#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20080119) && NCURSES_EXT_FUNCS
+
+static bool
+Quit(int ch)
+{
+    return (ch == 'q' || ch == QUIT || ch == ESCAPE);
+}
+
+typedef bool(*BoolOpaque) (WINDOW *, int);
+
+static bool
+test_opaque_cleared(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	if (mode)
+	    wclear(win);
+    }
+    return is_cleared(win);
+}
+
+static bool
+test_opaque_idcok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	idcok(win, mode);
+    }
+    return is_idcok(win);
+}
+
+static bool
+test_opaque_idlok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	idlok(win, mode);
+    }
+    return is_idlok(win);
+}
+
+static bool
+test_opaque_immedok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	immedok(win, mode);
+    }
+    return is_immedok(win);
+}
+
+static bool
+test_opaque_keypad(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	keypad(win, mode);
+    }
+    return is_keypad(win);
+}
+
+static bool
+test_opaque_leaveok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	leaveok(win, mode);
+    }
+    return is_leaveok(win);
+}
+
+static bool
+test_opaque_nodelay(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	nodelay(win, mode);
+    }
+    return is_nodelay(win);
+}
+
+static bool
+test_opaque_notimeout(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	notimeout(win, mode);
+    }
+    return is_notimeout(win);
+}
+
+static bool
+test_opaque_scrollok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	scrollok(win, mode);
+    }
+    return is_scrollok(win);
+}
+
+static bool
+test_opaque_syncok(WINDOW *win, int mode)
+{
+    if (mode >= 0) {
+	syncok(win, mode);
+    }
+    return is_syncok(win);
+}
+
+static int
+status_y(WINDOW *stswin, int cell)
+{
+    return (cell % getmaxy(stswin));
+}
+
+static int
+status_x(WINDOW *stswin, int cell)
+{
+    return (15 * (cell / getmaxy(stswin)));
+}
+
+static void
+to_keyword(WINDOW *stswin, int cell)
+{
+    wmove(stswin, status_y(stswin, cell), status_x(stswin, cell));
+}
+
+static void
+to_result(WINDOW *stswin, int cell, bool before)
+{
+    int y = status_y(stswin, cell);
+    int x = status_x(stswin, cell) + 11;
+    if (!before)
+	++x;
+    wmove(stswin, y, x);
+}
+
+static void
+show_keyword(WINDOW *stswin, int cell, int active, const char *name)
+{
+    to_keyword(stswin, cell);
+    if (active == cell)
+	wstandout(stswin);
+    wprintw(stswin, "%s:", name);
+    if (active == cell)
+	wstandend(stswin);
+}
+/* *INDENT-OFF* */
+static struct {
+    const char *name;
+    BoolOpaque func;
+} bool_funcs[] = {
+    { "cleared",   test_opaque_cleared },
+    { "idcok",     test_opaque_idcok },
+    { "idlok",     test_opaque_idlok },
+    { "immedok",   test_opaque_immedok },
+    { "keypad",    test_opaque_keypad },
+    { "leaveok",   test_opaque_leaveok },
+    { "nodelay",   test_opaque_nodelay },
+    { "notimeout", test_opaque_notimeout },
+    { "scrollok",  test_opaque_scrollok },
+    { "syncok",    test_opaque_syncok }
+};
+/* *INDENT-ON* */
+
+/*
+ * Display and/or allow update for the properties accessed in the opaque
+ * window.  Some may change state after refreshing the window, so we
+ * distinguish between them using the 'before' parameter.
+ */
+static int
+show_opaque(WINDOW *stswin, WINDOW *txtwin, bool before, int active)
+{
+    int n;
+    int top, bottom;
+
+    if (before) {
+	werase(stswin);
+    }
+    for (n = 0; n < (int) SIZEOF(bool_funcs); ++n) {
+	show_keyword(stswin, n, active, bool_funcs[n].name);
+
+	to_result(stswin, n, before);
+	wprintw(stswin, "%c", bool_funcs[n].func(txtwin, -1) ? 'T' : 'F');
+    }
+
+    show_keyword(stswin, n, active, "wgetparent");
+    to_result(stswin, n, TRUE);
+    wprintw(stswin, "%p", wgetparent(txtwin));
+
+    ++n;
+    show_keyword(stswin, n, active, "wgetscrreg");
+    to_result(stswin, n, TRUE);
+    if (wgetscrreg(txtwin, &top, &bottom) == OK)
+	wprintw(stswin, "%d,%d", top, bottom);
+
+    wnoutrefresh(stswin);
+    return active;
+}
+
+static int
+test_opaque(int level, char **argv, WINDOW *stswin)
+{
+    WINDOW *txtbox = 0;
+    WINDOW *txtwin = 0;
+    FILE *fp;
+    int ch;
+    int txt_x = 0, txt_y = 0;
+    int base_y;
+    bool in_status = FALSE;
+    int active = 0;
+
+    if (argv[level] == 0) {
+	beep();
+	return FALSE;
+    }
+
+    if (level > 1) {
+	txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
+	box(txtbox, 0, 0);
+	wnoutrefresh(txtbox);
+
+	txtwin = derwin(txtbox,
+			getmaxy(txtbox) - 2,
+			getmaxx(txtbox) - 2,
+			1, 1);
+	base_y = 0;
+    } else {
+	txtwin = stdscr;
+	base_y = BASE_Y;
+    }
+
+    keypad(txtwin, TRUE);	/* enable keyboard mapping */
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    txt_y = base_y;
+    txt_x = 0;
+    wmove(txtwin, txt_y, txt_x);
+
+    if ((fp = fopen(argv[level], "r")) != 0) {
+	while ((ch = fgetc(fp)) != EOF) {
+	    if (waddch(txtwin, UChar(ch)) != OK) {
+		break;
+	    }
+	}
+	fclose(fp);
+    } else {
+	wprintw(txtwin, "Cannot open:\n%s", argv[1]);
+    }
+
+    for (;;) {
+	if (in_status) {
+	    to_keyword(stswin, active);
+
+	    ch = wgetch(stswin);
+	    show_opaque(stswin, txtwin, TRUE, active);
+	    if (Quit(ch))
+		break;
+
+	    switch (ch) {
+	    case '\t':
+		in_status = FALSE;
+		break;
+	    case KEY_DOWN:
+	    case 'j':
+		if (active < (int) SIZEOF(bool_funcs) - 1)
+		    active++;
+		else
+		    beep();
+		break;
+	    case KEY_UP:
+	    case 'k':
+		if (active > 0)
+		    active--;
+		else
+		    beep();
+		break;
+	    case ' ':
+		bool_funcs[active].func(txtwin,
+					!bool_funcs[active].func(txtwin, -1));
+		break;
+	    default:
+		beep();
+		break;
+	    }
+	    show_opaque(stswin, txtwin, FALSE, in_status ? active : -1);
+	} else {
+	    ch = mvwgetch(txtwin, txt_y, txt_x);
+	    show_opaque(stswin, txtwin, TRUE, -1);
+	    if (Quit(ch))
+		break;
+
+	    switch (ch) {
+	    case '\t':
+		in_status = TRUE;
+		break;
+	    case KEY_DOWN:
+	    case 'j':
+		if (txt_y < getmaxy(txtwin) - 1)
+		    txt_y++;
+		else
+		    beep();
+		break;
+	    case KEY_UP:
+	    case 'k':
+		if (txt_y > base_y)
+		    txt_y--;
+		else
+		    beep();
+		break;
+	    case KEY_LEFT:
+	    case 'h':
+		if (txt_x > 0)
+		    txt_x--;
+		else
+		    beep();
+		break;
+	    case KEY_RIGHT:
+	    case 'l':
+		if (txt_x < getmaxx(txtwin) - 1)
+		    txt_x++;
+		else
+		    beep();
+		break;
+	    case 'w':
+		test_opaque(level + 1, argv, stswin);
+		if (txtbox != 0) {
+		    touchwin(txtbox);
+		    wnoutrefresh(txtbox);
+		} else {
+		    touchwin(txtwin);
+		    wnoutrefresh(txtwin);
+		}
+		break;
+	    default:
+		beep();
+		napms(100);
+		break;
+	    }
+
+	    show_opaque(stswin, txtwin, FALSE, -1);
+	}
+    }
+    if (level > 1) {
+	delwin(txtwin);
+	delwin(txtbox);
+    }
+    return TRUE;
+}
+
+static void
+test_set_escdelay(void)
+{
+    set_escdelay((100 + ESCDELAY) / 2);
+}
+
+static void
+test_set_tabsize(void)
+{
+    int y0, x0;
+    int y, x;
+    int save_tabsize = TABSIZE;
+    bool done = FALSE;
+
+    (void) cbreak();		/* take input chars one at a time, no wait for \n */
+    (void) noecho();		/* don't echo input */
+
+    for (y = 0; y < LINES; ++y) {
+	set_tabsize(y + 1);
+	if (move(y, 0) == ERR)
+	    break;
+	for (x = 0; x < COLS;) {
+	    addch('\t');
+	    if (addch('*') == ERR) {
+		done = TRUE;
+		break;
+	    }
+	    getyx(stdscr, y0, x0);
+	    if (y0 != y || x0 == x) {
+		done = TRUE;
+		break;
+	    }
+	}
+    }
+    getch();
+    erase();
+
+    set_tabsize(save_tabsize);
+}
+
+int
+main(int argc, char *argv[])
+{
+    WINDOW *stsbox;
+    WINDOW *stswin;
+
+    setlocale(LC_ALL, "");
+
+    if (argc < 2) {
+	fprintf(stderr, "usage: %s file\n", argv[0]);
+	return EXIT_FAILURE;
+    }
+
+    initscr();
+
+    test_set_escdelay();
+    test_set_tabsize();
+
+    stsbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
+    box(stsbox, 0, 0);
+    wnoutrefresh(stsbox);
+
+    stswin = derwin(stsbox, BASE_Y - 2, COLS - 2, 1, 1);
+    keypad(stswin, TRUE);
+
+    test_opaque(1, argv, stswin);
+
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+    printf("This program requires the ncurses library\n");
+    ExitProgram(EXIT_FAILURE);
+}
+#endif
diff -Naur ncurses-5.6.orig/test/testcurs.c ncurses-5.6/test/testcurs.c
--- ncurses-5.6.orig/test/testcurs.c	2005-12-31 15:23:09.000000000 -0500
+++ ncurses-5.6/test/testcurs.c	2008-06-18 06:49:49.000000000 -0400
@@ -7,7 +7,7 @@
  *  wrs(5/28/93) -- modified to be consistent (perform identically) with either
  *                  PDCurses or under Unix System V, R4
  *
- * $Id: testcurs.c,v 1.37 2005/12/31 20:23:09 tom Exp $
+ * $Id: testcurs.c,v 1.38 2008/04/12 22:00:27 tom Exp $
  */
 
 #include <test.priv.h>
@@ -51,7 +51,7 @@
 static char *
 strdup(char *s)
 {
-    char *p = (char *) malloc(strlen(s) + 1);
+    char *p = typeMalloc(char, strlen(s) + 1);
     if (p)
 	strcpy(p, s);
     return (p);
diff -Naur ncurses-5.6.orig/test/view.c ncurses-5.6/test/view.c
--- ncurses-5.6.orig/test/view.c	2006-05-20 11:37:03.000000000 -0400
+++ ncurses-5.6/test/view.c	2008-06-18 06:49:46.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -50,7 +50,7 @@
  * scroll operation worked, and the refresh() code only had to do a
  * partial repaint.
  *
- * $Id: view.c,v 1.64 2006/05/20 15:37:03 tom Exp $
+ * $Id: view.c,v 1.67 2008/01/19 21:01:21 tom Exp $
  */
 
 #include <test.priv.h>
@@ -229,7 +229,7 @@
     (void) signal(SIGINT, finish);	/* arrange interrupts to terminate */
 #endif
 
-    while ((i = getopt(argc, argv, "cin:rtT:")) != EOF) {
+    while ((i = getopt(argc, argv, "cin:rtT:")) != -1) {
 	switch (i) {
 	case 'c':
 	    try_color = TRUE;
@@ -374,7 +374,7 @@
 		    lptr++;
 		else
 		    break;
-	    wscrl(stdscr, lptr - olptr);
+	    scrl(lptr - olptr);
 	    break;
 
 	case KEY_UP:
@@ -385,7 +385,7 @@
 		    lptr--;
 		else
 		    break;
-	    wscrl(stdscr, lptr - olptr);
+	    scrl(lptr - olptr);
 	    break;
 
 	case 'h':
@@ -512,6 +512,7 @@
     i = strlen(temp);
     sprintf(temp + i, "view %.*s", (int) (sizeof(temp) - 7 - i), fname);
 #else
+    (void) tag;
     sprintf(temp, "view %.*s", (int) sizeof(temp) - 7, fname);
 #endif
     move(0, 0);
diff -Naur ncurses-5.6.orig/test/worm.c ncurses-5.6/test/worm.c
--- ncurses-5.6.orig/test/worm.c	2006-07-01 18:57:24.000000000 -0400
+++ ncurses-5.6/test/worm.c	2008-06-18 06:49:48.000000000 -0400
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -61,11 +61,20 @@
   traces will be dumped.  The program stops and waits for one character of
   input at the beginning and end of the interval.
 
-  $Id: worm.c,v 1.41 2006/07/01 22:57:24 tom Exp $
+  $Id: worm.c,v 1.57 2008/03/02 01:43:35 tom Exp $
 */
 
 #include <test.priv.h>
 
+#ifdef USE_PTHREADS
+#include <pthread.h>
+#endif
+
+WANT_USE_WINDOW();
+
+#define MAX_WORMS	40
+#define MAX_LENGTH	1024
+
 static chtype flavor[] =
 {
     'O', '*', '#', '$', '%', '0', '@',
@@ -77,17 +86,32 @@
 {
     -1, 0, 1, 1, 1, 0, -1, -1
 };
-static struct worm {
-    int orientation, head;
-    short *xpos, *ypos;
-} worm[40];
+
+typedef struct worm {
+    int orientation;
+    int head;
+    short *xpos;
+    short *ypos;
+    chtype attrs;
+#ifdef USE_PTHREADS
+    pthread_t thread;
+#endif
+} WORM;
+
+static unsigned long sequence = 0;
+static bool quitting = FALSE;
+
+static WORM worm[MAX_WORMS];
+static short **refs;
+static int last_x, last_y;
 
 static const char *field;
 static int length = 16, number = 3;
 static chtype trail = ' ';
 
+static unsigned pending;
 #ifdef TRACE
-static int generation, trace_start, trace_end, singlestep;
+static int generation, trace_start, trace_end;
 #endif /* TRACE */
 /* *INDENT-OFF* */
 static const struct options {
@@ -180,8 +204,7 @@
 static void
 cleanup(void)
 {
-    standend();
-    refresh();
+    USING_WINDOW(stdscr, wrefresh);
     curs_set(1);
     endwin();
 }
@@ -200,17 +223,191 @@
     return ((float) r / 32768.);
 }
 
+static int
+draw_worm(WINDOW *win, void *data)
+{
+    WORM *w = (WORM *) data;
+    const struct options *op;
+    unsigned mask = ~(1 << (w - worm));
+    chtype attrs = w->attrs | ((mask & pending) ? A_REVERSE : 0);
+
+    int x;
+    int y;
+    int h;
+
+    bool done = FALSE;
+
+    if ((x = w->xpos[h = w->head]) < 0) {
+	wmove(win, y = w->ypos[h] = last_y, x = w->xpos[h] = 0);
+	waddch(win, attrs);
+	refs[y][x]++;
+    } else {
+	y = w->ypos[h];
+    }
+
+    if (x > last_x)
+	x = last_x;
+    if (y > last_y)
+	y = last_y;
+
+    if (++h == length)
+	h = 0;
+
+    if (w->xpos[w->head = h] >= 0) {
+	int x1, y1;
+	x1 = w->xpos[h];
+	y1 = w->ypos[h];
+	if (y1 < LINES
+	    && x1 < COLS
+	    && --refs[y1][x1] == 0) {
+	    wmove(win, y1, x1);
+	    waddch(win, trail);
+	}
+    }
+
+    op = &(x == 0
+	   ? (y == 0
+	      ? upleft
+	      : (y == last_y
+		 ? lowleft
+		 : left))
+	   : (x == last_x
+	      ? (y == 0
+		 ? upright
+		 : (y == last_y
+		    ? lowright
+		    : right))
+	      : (y == 0
+		 ? upper
+		 : (y == last_y
+		    ? lower
+		    : normal))))[w->orientation];
+
+    switch (op->nopts) {
+    case 0:
+	done = TRUE;
+	break;
+    case 1:
+	w->orientation = op->opts[0];
+	break;
+    default:
+	w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
+	break;
+    }
+
+    if (!done) {
+	x += xinc[w->orientation];
+	y += yinc[w->orientation];
+	wmove(win, y, x);
+
+	if (y < 0)
+	    y = 0;
+	waddch(win, attrs);
+
+	w->ypos[h] = y;
+	w->xpos[h] = x;
+	refs[y][x]++;
+    }
+
+    return done;
+}
+
+#ifdef USE_PTHREADS
+static bool
+quit_worm(int bitnum)
+{
+    pending |= (1 << bitnum);
+    napms(10);			/* let the other thread(s) have a chance */
+    pending &= ~(1 << bitnum);
+    return quitting;
+}
+
+static void *
+start_worm(void *arg)
+{
+    unsigned long compare = 0;
+    Trace(("start_worm"));
+    while (!quit_worm(((struct worm *) arg) - worm)) {
+	while (compare < sequence) {
+	    ++compare;
+	    use_window(stdscr, draw_worm, arg);
+	}
+    }
+    Trace(("...start_worm (done)"));
+    return NULL;
+}
+#endif
+
+static bool
+draw_all_worms(void)
+{
+    bool done = FALSE;
+    int n;
+    struct worm *w;
+
+#ifdef USE_PTHREADS
+    static bool first = TRUE;
+    if (first) {
+	first = FALSE;
+	for (n = 0, w = &worm[0]; n < number; n++, w++) {
+	    int rc;
+	    rc = pthread_create(&(w->thread), NULL, start_worm, w);
+	}
+    }
+#else
+    for (n = 0, w = &worm[0]; n < number; n++, w++) {
+	if (use_window(stdscr, draw_worm, w))
+	    done = TRUE;
+    }
+#endif
+    return done;
+}
+
+static int
+get_input(void)
+{
+    int ch;
+    ch = USING_WINDOW(stdscr, wgetch);
+    return ch;
+}
+
+#ifdef KEY_RESIZE
+static int
+update_refs(WINDOW *win)
+{
+    int x, y;
+
+    (void) win;
+    if (last_x != COLS - 1) {
+	for (y = 0; y <= last_y; y++) {
+	    refs[y] = typeRealloc(short, COLS, refs[y]);
+	    for (x = last_x + 1; x < COLS; x++)
+		refs[y][x] = 0;
+	}
+	last_x = COLS - 1;
+    }
+    if (last_y != LINES - 1) {
+	for (y = LINES; y <= last_y; y++)
+	    free(refs[y]);
+	refs = typeRealloc(short *, LINES, refs);
+	for (y = last_y + 1; y < LINES; y++) {
+	    refs[y] = typeMalloc(short, COLS);
+	    for (x = 0; x < COLS; x++)
+		refs[y][x] = 0;
+	}
+	last_y = LINES - 1;
+    }
+    return OK;
+}
+#endif
+
 int
 main(int argc, char *argv[])
 {
-    short **ref;
     int x, y;
     int n;
     struct worm *w;
-    const struct options *op;
-    int h;
     short *ip;
-    int last, bottom;
     bool done = FALSE;
 
     setlocale(LC_ALL, "");
@@ -227,7 +424,7 @@
 	case 'l':
 	    if (++x == argc)
 		goto usage;
-	    if ((length = atoi(argv[x])) < 2 || length > 1024) {
+	    if ((length = atoi(argv[x])) < 2 || length > MAX_LENGTH) {
 		fprintf(stderr, "%s: Invalid length\n", *argv);
 		ExitProgram(EXIT_FAILURE);
 	    }
@@ -235,7 +432,7 @@
 	case 'n':
 	    if (++x == argc)
 		goto usage;
-	    if ((number = atoi(argv[x])) < 1 || number > 40) {
+	    if ((number = atoi(argv[x])) < 1 || number > MAX_WORMS) {
 		fprintf(stderr, "%s: Invalid number of worms\n", *argv);
 		ExitProgram(EXIT_FAILURE);
 	    }
@@ -244,9 +441,6 @@
 	    trail = '.';
 	    break;
 #ifdef TRACE
-	case 'S':
-	    singlestep = TRUE;
-	    break;
 	case 'T':
 	    trace_start = atoi(argv[++x]);
 	    trace_end = atoi(argv[++x]);
@@ -271,8 +465,8 @@
 
     curs_set(0);
 
-    bottom = LINES - 1;
-    last = COLS - 1;
+    last_y = LINES - 1;
+    last_x = COLS - 1;
 
 #ifdef A_COLOR
     if (has_colors()) {
@@ -297,21 +491,24 @@
     }
 #endif /* A_COLOR */
 
-    ref = typeMalloc(short *, LINES);
+    refs = typeMalloc(short *, LINES);
     for (y = 0; y < LINES; y++) {
-	ref[y] = typeMalloc(short, COLS);
+	refs[y] = typeMalloc(short, COLS);
 	for (x = 0; x < COLS; x++) {
-	    ref[y][x] = 0;
+	    refs[y][x] = 0;
 	}
     }
 
 #ifdef BADCORNER
     /* if addressing the lower right corner doesn't work in your curses */
-    ref[bottom][last] = 1;
+    refs[last_y][last_x] = 1;
 #endif /* BADCORNER */
 
     for (n = number, w = &worm[0]; --n >= 0; w++) {
-	w->orientation = w->head = 0;
+	w->attrs = flavor[n % SIZEOF(flavor)];
+	w->orientation = 0;
+	w->head = 0;
+
 	if (!(ip = typeMalloc(short, (length + 1)))) {
 	    fprintf(stderr, "%s: out of memory\n", *argv);
 	    ExitProgram(EXIT_FAILURE);
@@ -330,7 +527,7 @@
     if (field) {
 	const char *p;
 	p = field;
-	for (y = bottom; --y >= 0;) {
+	for (y = last_y; --y >= 0;) {
 	    for (x = COLS; --x >= 0;) {
 		addch((chtype) (*p++));
 		if (!*p)
@@ -338,60 +535,40 @@
 	    }
 	}
     }
-    napms(10);
-    refresh();
-#ifndef TRACE
+    USING_WINDOW(stdscr, wrefresh);
     nodelay(stdscr, TRUE);
-#endif
 
     while (!done) {
-#ifdef TRACE
-	if (trace_start || trace_end) {
-	    if (generation == trace_start) {
-		trace(TRACE_CALLS);
-		getch();
-	    } else if (generation == trace_end) {
-		trace(0);
-		getch();
-	    }
+	int ch;
 
-	    if (singlestep && generation > trace_start && generation < trace_end)
-		getch();
+	++sequence;
+	if ((ch = get_input()) > 0) {
+#ifdef TRACE
+	    if (trace_start || trace_end) {
+		if (generation == trace_start) {
+		    trace(TRACE_CALLS);
+		    get_input();
+		} else if (generation == trace_end) {
+		    trace(0);
+		    get_input();
+		}
 
-	    generation++;
-	}
-#else
-	int ch;
+		generation++;
+	    }
+#endif
 
-	if ((ch = getch()) > 0) {
 #ifdef KEY_RESIZE
 	    if (ch == KEY_RESIZE) {
-		if (last != COLS - 1) {
-		    for (y = 0; y <= bottom; y++) {
-			ref[y] = typeRealloc(short, COLS, ref[y]);
-			for (x = last + 1; x < COLS; x++)
-			    ref[y][x] = 0;
-		    }
-		    last = COLS - 1;
-		}
-		if (bottom != LINES - 1) {
-		    for (y = LINES; y <= bottom; y++)
-			free(ref[y]);
-		    ref = typeRealloc(short *, LINES, ref);
-		    for (y = bottom + 1; y < LINES; y++) {
-			ref[y] = typeMalloc(short, COLS);
-			for (x = 0; x < COLS; x++)
-			    ref[y][x] = 0;
-		    }
-		    bottom = LINES - 1;
-		}
+		USING_WINDOW(stdscr, update_refs);
 	    }
 #endif
+
 	    /*
 	     * Make it simple to put this into single-step mode, or resume
 	     * normal operation -T.Dickey
 	     */
 	    if (ch == 'q') {
+		quitting = TRUE;
 		done = TRUE;
 		continue;
 	    } else if (ch == 's') {
@@ -400,69 +577,32 @@
 		nodelay(stdscr, TRUE);
 	    }
 	}
-#endif /* TRACE */
 
-	for (n = 0, w = &worm[0]; n < number; n++, w++) {
-	    if ((x = w->xpos[h = w->head]) < 0) {
-		move(y = w->ypos[h] = bottom, x = w->xpos[h] = 0);
-		addch(flavor[n % SIZEOF(flavor)]);
-		ref[y][x]++;
-	    } else {
-		y = w->ypos[h];
-	    }
-	    if (x > last)
-		x = last;
-	    if (y > bottom)
-		y = bottom;
-	    if (++h == length)
-		h = 0;
-	    if (w->xpos[w->head = h] >= 0) {
-		int x1, y1;
-		x1 = w->xpos[h];
-		y1 = w->ypos[h];
-		if (y1 < LINES
-		    && x1 < COLS
-		    && --ref[y1][x1] == 0) {
-		    move(y1, x1);
-		    addch(trail);
-		}
-	    }
-	    op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
-						left)) :
-		   (x == last ? (y == 0 ? upright : (y == bottom ? lowright :
-						     right)) :
-		    (y == 0 ? upper : (y == bottom ? lower : normal))))[w->orientation];
-	    switch (op->nopts) {
-	    case 0:
-		done = TRUE;
-		continue;
-	    case 1:
-		w->orientation = op->opts[0];
-		break;
-	    default:
-		w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
-	    }
-	    move(y += yinc[w->orientation], x += xinc[w->orientation]);
-
-	    if (y < 0)
-		y = 0;
-	    addch(flavor[n % SIZEOF(flavor)]);
-	    ref[w->ypos[h] = y][w->xpos[h] = x]++;
-	}
+	done = draw_all_worms();
 	napms(10);
-	refresh();
+	USING_WINDOW(stdscr, wrefresh);
     }
 
+    Trace(("Cleanup"));
     cleanup();
 #ifdef NO_LEAKS
     for (y = 0; y < LINES; y++) {
-	free(ref[y]);
+	free(refs[y]);
     }
-    free(ref);
+    free(refs);
     for (n = number, w = &worm[0]; --n >= 0; w++) {
 	free(w->xpos);
 	free(w->ypos);
     }
 #endif
+#ifdef USE_PTHREADS
+    /*
+     * Do this just in case one of the threads did not really exit.
+     */
+    Trace(("join all threads"));
+    for (n = 0; n < number; n++) {
+	pthread_join(worm[n].thread, NULL);
+    }
+#endif
     ExitProgram(EXIT_SUCCESS);
 }
diff -Naur ncurses-5.6.orig/test/xmas.c ncurses-5.6/test/xmas.c
--- ncurses-5.6.orig/test/xmas.c	2006-05-20 11:35:47.000000000 -0400
+++ ncurses-5.6/test/xmas.c	2008-06-18 06:49:49.000000000 -0400
@@ -92,7 +92,7 @@
 /******************************************************************************/
 
 /*
- * $Id: xmas.c,v 1.22 2006/05/20 15:35:47 tom Exp $
+ * $Id: xmas.c,v 1.23 2008/04/12 22:05:04 tom Exp $
  */
 #include <test.priv.h>
 
@@ -156,7 +156,7 @@
     if (has_colors()) {
 	int n = (color + 1);
 	if (my_pairs == 0)
-	    my_pairs = (bool *) calloc((unsigned) (COLORS + 1), sizeof(bool));
+	    my_pairs = typeCalloc(bool, COLORS + 1);
 	if (!my_pairs[n]) {
 	    init_pair(n, color, my_bg);
 	    my_pairs[n] = TRUE;
